企业级部署 (基于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
相关推荐
时间售卖铺16 分钟前
Docker实战:一键部署轻量级容器
运维·docker·云原生
垆边人似月.19 分钟前
RDMA 文件传输踩坑(四):从固定延时改造为 READY/ACK 协议
linux·服务器·网络
水饺编程21 分钟前
第2章:Linux 基础,制作【.tar.xz】压缩包文件
linux·c语言·汇编
山乐1913125 分钟前
麒麟系统,安装Nginx并配置https证书
运维·nginx·https
月落汀兰31 分钟前
拒绝配置写死镜像!K8s 存储卷与配置管理,PV/PVC、ConfigMap、Secret 实战避坑指南
运维·kubernetes
阿里云基础软件38 分钟前
Agent 任务提速 10.71%,内存占用降低 21.60%|Alibaba Cloud Linux 4 重大发布
java·linux·人工智能·操作系统·agent
服务器硬件项目经理38 分钟前
《超节点修仙录》· 第一卷·炼气期【第04话】 超节点 vs 普通服务器——不就是多插了几张卡吗?
运维·服务器·人工智能·嵌入式硬件·深度学习·机器学习
程序猿老A1 小时前
轻量应用服务器怎么搭建 WordPress站点?
服务器
m0_743697591 小时前
DNS的反向域名的相关问题
linux
杨云龙UP2 小时前
MySQL 主从复制管理:暂停、恢复、清理主从关系及命令执行位置
运维·数据库·mysql·主从配置·主从命令·reset replica·清除复制