企业级部署 (基于tomcat与nginx)
一、基础环境准备
1. 服务器初始化(所有节点)
[root@everyone ~]# systemctl disable --now firewalld
[root@everyone ~]# setenforce 0
二、按角色部署
1、挂载点
[root@elk-nfs ~]# yum install -y nfs-utils
[root@elk-nfs ~]# vim /etc/exports
[root@elk-nfs ~]# exportfs -arv
2、应用服务器
web-01:192.168.11.75
web-02:192.168.11.76
[root@web-01 ~]# yum install -y nfs-utils nginx php-mysqlnd php php-fpm
nginx
挂载
配置文件
创建登录用户
mysql> create user 'ultrax'@'192.168.11.%' identified by 'Q1w2e3@123!!!!!';mysql> grant all on ultrax.* to 'ultrax'@'192.168.11.%';mysql> create database ultrax;mysql> flush privileges;
域名访问
tomcat
[root@web-02 tomcat]# ln -s /usr/local/tomcat/tomcat/apache-tomcat-8.5.40/bin/startup.sh /usr/local/bin/tomcat_start
[root@web-02 tomcat]# ln -s /usr/local/tomcat/tomcat/apache-tomcat-8.5.40/bin/shutdown.sh /usr/local/bin/tomcat_stop
[root@web-02 tomcat]# yum install -y java-1.8.0-openjdk-devel
[root@web-02 webapps]# tomcat_start
创建登录用户
创建库并导库
修改配置
[root@web-02 biyesheji]# pwd
/usr/local/tomcat/tomcat/apache-tomcat-8.5.40/webapps/biyesheji
[root@web-02 biyesheji]# vim WEB-INF/classes/jdbc.properties
[root@web-02 biyesheji]# pwd
/usr/local/tomcat/tomcat/apache-tomcat-8.5.40/webapps/biyesheji
[root@web-02 biyesheji]# vim index.jsp
添加域名
默认访问端口号,访问路径
[root@web-02 conf]# pwd
/usr/local/tomcat/tomcat/apache-tomcat-8.5.40/conf
[root@web-02 conf]# vim server.xml
web每台都配置 nginx与tomcat 访问文件指向相同
nginx端配置 tomcat
拷贝tomcat文件 更改访问路径
3、Redis高可用
redis-01: 192.168.11.77
redis-02: 192.168.11.78
[root@redis-01/redis-02 ~]# yum install -y redis
主从复制
redis-01端
[root@redis-01 ~]# vim /etc/redis/redis.conf
redis-02端
[root@redis-02 ~]# vim /etc/redis/redis.conf
验证
故障转移
脚本
[root@redis-01 ~]# vim /etc/keepalived/check_redis.sh
[root@redis-01 ~]# chmod +x /etc/keepalived/check_redis.sh
[root@redis-01 ~]# vim /etc/keepalived/keepalived.conf
主
从
修改论坛 redis 缓存
4、MySQL高可用
db-01: 192.168.11.79
db-02: 192.168.11.80
[root@db-01/db-02 ~]# cat <<e >> /etc/yum.repos.d/mysql-wsrep.repo
[galera]
name=galera
baseurl=http://releases.galeracluster.com/mysql-wsrep-8.0/redhat/8/x86_64/
enabled=1
gpgcheck=0
e
[root@db-01/db-02 ~]# yum install -y mysql-wsrep-8.0 galera
Galera配置
db-01端
[root@db-01 ~]# systemctl start mysqld
[root@db-01 ~]# password=$(cat /var/log/mysqld.log | awk '/[^_]password/{print $NF}' | tr -d ' ')
[root@db-01 ~]# echo $password
up2Rco62N&2Z
[root@db-01 ~]# mysqladmin -p password 'Q1w2e3@123!!!!!'
[root@db-01 ~]# vim /etc/hosts
[root@db-01 ~]# mysql -uroot -p'Q1w2e3@123!!!!!'mysql> CREATE USER 'syncuser'@'%' IDENTIFIED BY 'Q1w2e3@123!!!!!';mysql> GRANT ALL PRIVILEGES ON *.* TO 'syncuser'@'%';mysql> FLUSH PRIVILEGES;
server-id=1 # 服务器 ID,用于唯一标识 MySQL 服务器
binlog_format=row # 二进制日志格式,行级别
innodb_file_per_table=1 # 为每个 InnoDB 表使用一个独立的表空间文件
innodb_autoinc_lock_mode=2 # 自增锁模式,2表示更高效的锁模式wsrep_on=ON # 启用 Galera 集群
wsrep_provider=/usr/lib64/galera/libgalera_smm.so # Galera 提供者库的路径
wsrep_cluster_name='galera' # Galera 集群的名称
wsrep_cluster_address='gcomm://db-01,db-02' # Galera 集群的地址,通常为 `gcomm://` 表示集群初始节点
wsrep_node_name='db-01' # 当前节点的名称
wsrep_node_address='192.168.11.79' # 当前节点的 IP 地址
wsrep_sst_auth=syncuser:'Q1w2e3@123!!!!!' # SST(状态快照传输)认证信息
wsrep_sst_method=rsync # SST 方法,使用 rsync 进行状态快照传输
db-02端
验证
启动不了时,可以先将集群地址改为初始节点,启动db-01后 ,再启动db-02,添加节点重启db-01
故障转移
脚本
keep端 主
keep 从
mysql端
验证
修改discuz的mysql端
[root@web-01 ~]# vim /var/www/discuz/nginx/upload/config/config_ucenter.php
[root@web-01 ~]# vim /var/www/discuz/nginx/upload/config/config_global.php
5、代理层
[root@lb-01/lb-02 ~]# yum install -y haproxy keepalived
haproxy(主备都一样)
keep端
主
备
6、域名访问
在nginx与tomcat端定义域名

在haproxy端定义域名
在外部机上
C:\Windows\System32\drivers\etc\hosts