
多业务综合实例
架构图
- 关闭防火墙
systemctl disable firewalld
systemctl stop firewalld
setenforce 0
NGINX
# nginx配置文件默认位置
/etc/nginx/nginx.conf
# 编译安装 【自定义】
/apps/nginx/conf/nginx.conf
# 启动并开机自挂载
systemctl enable --now nginx
# 查看状态
systemctl status nginx
# 代理
正向代理,(内部上网) 客户端<-->代理->服务端 【个人】
反向代理,用于公司集群架构中,客户端->代理<-->服务端 【企业】
# 配置文件【在nginx.conf末尾追加】
include /apps/nginx/conf/conf.d/*.conf;
# 创建 conf.d 配置文件
[root@myx conf.d]$ pwd
/apps/nginx/conf/conf.d
# 配置文件
【一】
[root@myx conf.d]$ cat sgame.conf
server {
listen 81; # 指定访问端口
server_name localhost;
location / {
root /var/www/html/sgame; # 指定文件路径
}
}
【二】
[root@myx conf.d]$ cat text.conf
server {
listen 82; # 指定客户端IP,端口
server_name localhost;
location / {
proxy_pass http://10.0.0.10:81; # 指定服务端IP,端口
}
}
Apache
# 启动并开机自挂载
systemctl enable --now httpd
# 查看状态
systemctl status httpd
# yum安装 默认配置文件
/etc/httpd/conf/httpd.conf
# 内容 /var/www/html
Apache支持PHP
[root@ops ~]#yum install gcc make libxml2-devel bzip2-devel libmcrypt-devel -y
[root@ops ~]#wget http://mirrors.sohu.com/php/php-7.3.29.tar.xz
[root@ops ~]#tar xf php-7.3.29.tar.xz -C /usr/local/src/
[root@ops ~]#cd /usr/local/src/php-7.3.29/
[root@ops ~]#./configure --prefix=/app/php \
--enable-mysqlnd --with-mysqli=mysqlnd --with-openssl \
--with-pdo-mysql=mysqlnd --enable-mbstring \
--with-freetype-dir --with-jpeg-dir --with-png-dir \
--with-zlib --with-libxml-dir=/usr --enable-xml \
--enable-sockets --with-apxs2=/app/httpd24/bin/apxs \
--with-config-file-path=/etc --with-config-file-scan-dir=/etc/php.d \
--enable-maintainer-zts --disable-fileinfo
make -j 4 && make install
#说明:
#--enable-maintainer-zts 仅针对mpm为event和worker的情况,编译成zts模块,如果是prefork则不需要
#php-7.0 以上版本使用--enable-mysqlnd --with-mysqli=mysqlnd ,原--with-mysql不再支持
[root@ops ~]#cp /usr/local/src/php-7.3.29/php.ini-production /etc/php.ini
[root@ops ~]#vim /app/httpd24/conf/httpd.conf
#在文件尾部加两行
AddType application/x-httpd-php .php
AddType application/x-httpd-php-source .phps
#修改下面行
<IfModule dir_module>
DirectoryIndex index.php index.html
</IfModule>
#开启opcache加速
[root@ops ~]#vim /etc/php.ini
[opcache]
zend_extension=opcache.so
opcache.enable=1
# 重启httpd
[root@ops ~]#systemctl restart httpd24.service
Tomcat
[jdk和tomcat安装脚本] https://myx.mynatapp.cc/archives/installtomcatsh
# 刷新配置文件
systemctl daemon-reload
# 启动tomcat,并加入开机自启
systemctl enable --now tomcat
# 查看状态
systemctl status tomcat
# 安装tomcat 前必须先部署JDK
原因: Tomcat 是用 Java 语言编写的,它需要 Java 运行环境来执行。
Java下载官网
https://www.oracle.com/java/technologies/downloads/
#添加环境变量
[root@myx ~]# vim /etc/profile.d/jdk.sh
export JAVA_HOME=/usr/local/jdk
export PATH=$PATH:$JAVA_HOME/bin
#以下两项非必须项
#export JRE_HOME=$JAVA_HOME/jre
#export CLASSPATH=.:$JAVA_HOME/lib/:$JRE_HOME/lib/
[root@myx ~]# . /etc/profile.d/jdk.sh
#注意:JAVA_HOME变量必须设置,否则tomcat启动时会出下面错误
[root@myx ~]# catalina.sh
[root@myx ~]# startup.sh
# 验证安装
[root@myx ~]# java -version
# Java安装路径
[root@myx ~]# which java
/usr/local/jdk/bin/java
#创建tomcat专用帐户
[root@myx ~]$ useradd -r -s /sbin/nologin tomcat
[root@myx ~]$ find / -name java
[root@myx ~]$ cat /usr/local/tomcat/conf/tomcat.conf
JAVA_HOME=/usr/local/jdk
# 递归授权
[root@myx ~]$ chown -R tomcat.tomcat /usr/local/tomcat/
#查看日志
[root@myx ~]$ tail /var/log/messages
# 主配置文件
[root@myx ~]$ /usr/local/apache-tomcat-9.0.64/conf/server.xml
Jpress
官方网站: http://www.jpress.io/
Halo官网: https://halo.run/
注意:
JPress 使用Java1.8版本
Halo 使用Java11版本
【Halo开机自启】
https://myx.mynatapp.cc/archives/halo-jiao-ben-zi-qi-dong-jiao-cheng
NFS
# 查看状态
systemctl status rpcbind
# 添加共享网段
vim /etc/exports
/data 10.0.0.0/24(rw) *
# 查看
exportfs -v
# 使用详情
https://myx.mynatapp.cc/archives/nfs-duo-wang-zhan-dai-li-fang-wen--shu-ju-gong-xiang-an-li
***注意:共享的目录一定要授权***
PG
https://myx.mynatapp.cc/archives/pg123yi-ji-duo-shi-li-ji-qun-bu-shu
搭建pg主库
# 创建postgres用户,用户组
[postgres@myx02 data]$ useradd postgres && echo 123456 --stdin postgres && id postgres
# 下载PG源码包
wget -c https://ftp.postgresql.org/pub/source/v12.3/postgresql-12.3.tar.gz --no-check-certificate
# 解压到指定目录
[root@myx02 ~]# mkdir -p /home/postgres/
[root@myx02 ~]# tar xf postgresql-12.3.tar.gz -C /home/postgres/
# 下载依赖包
[root@myx02 ~]# yum install make gcc -y
# 查看隐藏文件
[root@myx02 ~]# ll /etc/skel/ -a
总用量 24
drwxr-xr-x. 2 root root 62 7月 4 08:51 .
drwxr-xr-x. 81 root root 8192 8月 14 14:57 ..
-rw-r--r--. 1 root root 18 4月 1 2020 .bash_logout
-rw-r--r--. 1 root root 193 4月 1 2020 .bash_profile
-rw-r--r--. 1 root root 231 4月 1 2020 .bashrc
# 创建目录
mkdir -p /data/pg12 /data/pgdata5432 && chown postgres.postgres /data/pg12 /data/pgdata5432/
# 切换用户
[root@myx02 ~]# su postgres
# 切换用户,查看当前用户
[postgres@myx02 ~]$ pwd
/home/postgres
[postgres@myx02 ~]$ cd postgresql-12.3/
# 创建数据目录
[postgres@myx02 postgresql-12.3]$ ./configure --prefix=/data/pg12 --without-readline --without-zlib
make -j 4 && make install
# 配置用户环境变量
[postgres@myx02 ~]$ pwd
/home/postgres
[postgres@myx02 ~]$ vi .bash_profile
PGHOME=/data/pg12
PATH=$PATH:$HOME/.local/bin:$HOME/bin:$PGHOME/bin
# 刷新配置文件
source ~/.bash_profile
# 初始化
[postgres@myx02 ~]$ initdb /data/pgdata5432
(数据文件的存放路径:/data/pgdata5432)
[postgres@myx02 root]$ cd /data/pgdata5432
[postgres@myx02 pgdata5432]$ ls
base pg_hba.conf pg_notify pg_stat pg_twophase postgresql.auto.conf
global pg_ident.conf pg_replslot pg_stat_tmp PG_VERSION postgresql.conf
pg_commit_ts pg_logical pg_serial pg_subtrans pg_wal
pg_dynshmem pg_multixact pg_snapshots pg_tblspc pg_xact
# 修改监听地、服务端口、权限
[postgres@myx05 pgdata5432]$ vim /data/pgdata5432/postgresql.conf
listen_addresses = '*'
port = 5432

# 启动
[postgres@myx02 pgdata5432]$ pg_ctl -D /data/pgdata5432 -l logfile start
waiting for server to start.... done
server started
# 查看状态
[postgres@myx02 pgdata5432]$ pg_ctl -D /data/pgdata5432 -l logfile status
pg_ctl: server is running (PID: 21065)
/data/pg12/bin/postgres "-D" "/data/pgdata5432"
# 修改数据库密码和创建流复制操作的用户:
[postgres@myx02 pgdata5432]$ psql -U postgres -p 5432
psql (12.3)
Type "help" for help.
postgres=# ALTER USER postgres WITH PASSWORD '123456';
ALTER ROLE
postgres=# CREATE ROLE replica login replication encrypted password '123456';
CREATE ROLE
postgres=#
# 最后一行追加
[postgres@myx02 pgdata5432]$ vim /data/pgdata5432/pg_hba.conf
host replication replica 10.0.0.0/24 md5
# 重启数据库,查看端口
[postgres@myx02 pgdata5432]$ pg_ctl -D /data/pgdata5432 -l logfile restart
waiting for server to shut down.... done
server stopped
waiting for server to start.... done
server started
[postgres@myx02 pgdata5432]$ ss -ntlp | grep 543*
LISTEN 0 128 *:5432 *:* users:(("postgres",pid=21115,fd=3))
LISTEN 0 128 [::]:5432 [::]:* users:(("postgres",pid=21115,fd=4))
# 查看复制流用户是否创建:
[postgres@myx05 pgdata5432]$ psql -U
postgres=# \du
List of roles
Role name | Attributes | Member of
-----------+------------------------------------------------------------+-----------
postgres | Superuser, Create role, Create DB, Replication, Bypass RLS | {}
replica | Replication | {}
从库配置
# 创建用户
[postgres@myx03 data]$ useradd postgres && echo 123456 --stdin postgres && id postgres
# 用scp将主库的pg12和pgdata5432拉取到本地
[root@myx03 data]$ scp -r 10.0.0.9:/data/pg12 /data/
[root@myx03 data]$ scp -r 10.0.0.9:/data/pgdata5432 /data/
### 一定要授权 ###
[root@myx03 pgdata5433]$ chmod -R 777 *
# 修改
[root@myx03 data]$ mv pgdata5432/ pgdata5433
[root@myx03 data]$ vim +63 /data/pgdata5433/postgresql.conf
listen_addresses = '*'
port = 5433
# 授权
[root@myx03 ~]$ chmod 750 /etc/bashrc
[root@myx03 ~]$ chmod 777 .bash_profile
# 刷新配置文件
[postgres@myx03 ~]$ source .bash_profile
# 配置用户环境变量
[postgres@myx03 ~]$ pwd
/home/postgres
vi .bash_profile
PGHOME=/data/pg12
PATH=$PATH:$HOME/.local/bin:$HOME/bin:$PGHOME/bin
source ~/.bash_profile
[postgres@myx03 data]$ psql -U postgres -p 5433
psql (12.3)
Type "help" for help.
postgres=# DROP ROLE replica;
DROP ROLE
postgres=# CREATE ROLE replica login replication encrypted password '123456';
CREATE ROLE
=================== 流复制 ===================
# 停止数据库
[postgres@myx03 pgdata5433]$ pg_ctl -D /data/pgdata5433/ -l logfile stop
# 删除pgdata5433下的所有数据
[postgres@myx03 pgdata5433]$ rm -rf *
# 切回主目录
[postgres@myx03 pgdata5433]$ cd
# 拷贝主库数据
[postgres@myx03 ~]$ pg_basebackup -h 10.0.0.12 -p 5432 -D /data/pgdata5433 -U replica -P -v -R -X stream -C -S pgstandby7
# 修改启动端口
[postgres@myx05 pgdata5433]$ vim postgresql.conf
port = 5433
# 启动数据库
[postgres@myx03 pgdata5433]$ pg_ctl -D /data/pgdata5433/ -l logfile start
# 切回主库查看
[postgres@myx05 pgdata5433]$ psql -U postgres -p 5433
psql (12.3)
Type "help" for help.
postgres=# select usename , application_name , client_addr,sync_state from pg_stat_replication;
usename | application_name | client_addr | sync_state
---------+------------------+-------------+------------
replica | walreceiver | 10.0.0.10 | sync
(1 row)
QQ农场
【MySQL数据库】 https://myx.mynatapp.cc/archives/gitlabmysql-shu-ju-ku---ji-qun-cluster
# 在mysql主库创建远程登录账户‘myx’
mysql> GRANT ALL PRIVILEGES ON *.* TO 'myx'@'10.0.0.%' IDENTIFIED BY '123456';
Query OK, 0 rows affected, 1 warning (0.00 sec)
mysql> SELECT Host, User FROM mysql.user;
+-------------+---------------+
| Host | User |
+-------------+---------------+
| % | wordpress |
| 10.0.0.% | myx |
| localhost | mysql.session |
| localhost | mysql.sys |
| localhost | root |
| localhost | ucenter |
+-------------+---------------+
6 rows in set (0.00 sec)
# 远程登录测试
[root@myx03 ~]$ mysql -umyx -h10.0.0.12 -p123456 -P3306
访问IP地址
Git上传下载代码
https://myx.mynatapp.cc/archives/gitlabmysql-shu-ju-ku---ji-qun-cluster
- 感谢你赐予我前进的力量
赞赏者名单
因为你们的支持让我意识到写文章的价值🙏
本文是原创文章,采用 CC BY-NC-ND 4.0 协议,完整转载请注明来自 梦缘羲
评论
匿名评论
隐私政策
你无需删除空行,直接评论以获取最佳展示效果