企业级部署 (基于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
验证

7、rsync 同步

源端 192.168.11.81

备份端 192.168.11.82

备份端
复制代码
[root@rsync ~]# yum install -y rsync 
[root@rsync ~]# vim /etc/rsyncd.conf 
创建目录 及密码本
复制代码
[root@rsync ~]# mkdir -p /data/backup/ 
[root@rsync ~]#  chmod 755 /data/backup/
[root@rsync ~]#  echo "rsyncuser:123.com" > /etc/rsyncd.password
[root@rsync ~]# chmod 600 /etc/rsyncd.password 

源端

下载sersync服务

修改配置文件

复制代码
[root@elk-nfs GNU-Linux-x86]# vim confxml.xml 
添加密码本
复制代码
[root@elk-nfs GNU-Linux-x86]# echo "123.com" > /etc/rsyncd.password 
[root@elk-nfs sersync]# chmod 600 /etc/rsyncd.password 

启动

源端

复制代码
[root@elk-nfs ~]# /etc/sersync/GNU-Linux-x86/sersync2 -d -r -o /etc/sersync/GNU-Linux-x86/confxml.xml

备份端
复制代码
[root@rsync ~]#  rsync --daemon --config=/etc/rsyncd.conf

设为开机自启

备份端
源端
复制代码
[root@elk-nfs data]# vim /etc/systemd/system/sersync.service
相关推荐
dessler8 分钟前
RabbitMQ-镜像队列(Mirrored Queues)
linux·运维·rabbitmq
瑾曦12 分钟前
Docker相关命令
linux
发抖吧小喵喵15 分钟前
rpm包直接安装新系统缺少依赖问题处理
linux·运维·服务器
Asuicao41 分钟前
最新docker国内镜像源地址大全
运维·docker·容器
xhdll44 分钟前
embodied复现所需docker环境配置粗略流程
运维·docker·容器
码农101号1 小时前
Linux中Docker Swarm介绍和使用
linux·spring cloud·docker
Nazi61 小时前
dockerfile基础
linux·运维·docker·容器·云计算
跑不了的你1 小时前
Ubuntu 开启wifi 5G 热点
服务器·5g·ubuntu
所念皆为东辞1 小时前
elk部署加日志收集
linux·elk·elasticsearch·centos