CRM系统环境搭建部署(nginx、jdk、tomcat、keepalived、mysql、zabbix)
crm.XXX.com #CRM系统使用的域名,已注册并做好DNS解析
两台应用服务器(主、备):172.16.38.172、172.16.38.173
两台数据库服务器(主、备):172.16.38.174、172.16.38.175
操作系统:CentOS 7.9
各服务器准备工作:
关闭selinux 、firewalld、设置好hostname
服务器时间同步
yum -y install ntp ntpdate
ntpdate asia.pool.ntp.org #设置系统时间与网络时间同步
hwclock --systohc #将系统时间写入硬件时间,这里是为了防止系统重启后时间被还原,因此需要写到硬件设备中去
CRM系统要求:
nginx 日志分割
tomcat 日志分割
zabbix监控
mysql本地备份和远程备份的脚本配置,任务计划设置
一、CRM系统应用服务器配置
172.16.38.172 应用服务器(主)
172.16.38.173 应用服务器(备)
应用服务器使用域名访问数据库:crm.mysql.com,所以两台应用服务器需要设置hosts解析:
vim /etc/hosts
172.16.38.174 crm.mysql.com
172.16.38.175 crm.mysql.com
安装nginx、jdk、tomcat、keepalived
(一)、编译安装nginx服务
1、创建www用户和组
groupadd www
useradd www -g www
passwd www www #设置www用户密码为www
mkdir /home/www
chown www.www /home/www
chmod 700 /home/www
2、更新源和环境所需插件安装
yum update #更新yum源
yum install -y gcc-c++ pcre pcre-devel zlib zlib-devel openssl openssl-devel #先安装nginx依赖包
3、下载nginx-1.18.0.tar.gz 存放在/data/software 目录下
cd /data/software
wget -c http://nginx.org/download/nginx-1.18.0.tar.gz #从nginx官网下载nginx-1.18.0.tar.gz
tar -xf nginx-1.18.0.tar.gz -C /data/server/ #解压nginx到/data/server/
cd /data/server/nginx-1.18.0
4、编译安装nginx,指定执行的用户主和用户组(使用前面创建的www用户和组)
./configure --prefix=/data/server/nginx --with-http_ssl_module --user=www --group=www
make
make install
cd /data/server/nginx #查看nginx目录下的文件情况
/data/server/nginx/sbin/nginx -? #查看nginx相关参数
/data/server/nginx/sbin/nginx -v #查看nginx的版本
/data/server/nginx/sbin/nginx -t #检查配置文件语法是否正确
/data/server/nginx/sbin/nginx # 启动nginx服务
/data/server/nginx/sbin/nginx -s stop #停止nginx服务
netstat -nltp #查看端口
ps -ef |grep nginx #查看nginx进程
pgrep nginx | xargs kill -9 ##如何用一条Linux命令干掉所有nginx进程,通过 pgrep 指令,根据名字找出所有包含该名字的进程号
设置nginx自启
在rc.local中添加启动代码
vim /etc/rc.local
# 在文件末尾添加一句 /data/server/nginx/sbin/nginx
# 重新赋予权限
chmod 755 /etc/rc.local
重启nginx服务
/data/server/nginx/sbin/nginx -s reload
在浏览器中输入nginx 服务器IP地址,查看nginx的默认页面
5、配置负载均衡
172.16.38.172、172.16.38.173 设置免密登录
在172上执行:
ssh-keygen # 一路回车
ssh-copy-id 172.16.38.173 #输入173的密码
在173上执行:
ssh-keygen # 一路回车
ssh-copy-id 172.16.38.172 #输入172的密码
在172上执行:
vim nginx.conf #修改部分内容
vim /data/server/nginx/conf/nginx.conf
user www www;
worker_processes auto;
#error_log logs/error.log;
#error_log logs/error.log notice;
#error_log logs/error.log info;
#pid logs/nginx.pid;
events {
worker_connections 10240;
}
http {
include mime.types;
default_type application/octet-stream;
gzip on;
gzip_comp_level 6;
gzip_proxied any;
gzip_buffers 4 8k;
gzip_min_length 1024;
gzip_types text/plain text/xml text/css application/x-javascript text/javascript image/jpeg;
proxy_buffer_size 64k;
proxy_buffers 32 32k;
proxy_ignore_client_abort on;
client_header_buffer_size 4k;
#open_file_cache max=10240 inactive=20s;
#open_file_cache_valid 30s;
#open_file_cache_min_uses 1;
#add_header Cache-Control max-age=604800;
# log_format main '$http_x_forwarded_for - $remote_user [$time_local] "$request" '
#
# '$status $body_bytes_sent "$http_referer" '
# '"$http_user_agent" "$http_x_forwarded_for"';
log_format main '$remote_addr - $remote_user [$time_local] '
'fwf[$http_x_forwarded_for] tip[$http_true_client_ip] '
'$upstream_addr $upstream_response_time $request_time '
'$http_host $request '
'"$status" $body_bytes_sent "$http_referer" '
'"$http_accept_language" "$http_user_agent" ';
# access_log logs/access.log main;
# error_log logs/error.log;
sendfile on;
#tcp_nopush on;
#keepalive_timeout 0;
keepalive_timeout 65;
server_tokens off;
client_max_body_size 5m;
include vhost/*.conf;
upstream api{
server 172.16.38.172:8080;
server 172.16.38.173:8080;
}
upstream oa{
server 172.16.38.172:8081;
server 172.16.38.173:8081;
}
}
保存退出
scp /data/server/nginx/conf/nginx.conf root@172.16.38.173:/data/server/nginx/conf/ #将172上的/data/server/nginx/conf/nginx.conf拷贝到173上
mkdir -p /data/server/nginx/conf/ssl #若CRM系统要使用SSL证书,则需要创建ssl证书目录,并把制作好的XXX.crt、XXX.key这两个SSL证书上传到/data/server/nginx/conf/ssl目录下
mkdir -p /data/server/nginx/conf/vhost #创建vhost目录
vim /data/server/nginx/conf/vhost/crm.conf #编辑crm 虚拟机的配置文件
server {
listen 80;
server_name localhost crm.XXX.com;
rewrite ^(.*)$ https://crm.XXX.com$1 permanent;
}
server {
listen 443 ssl;
server_name localhost crm.XXX.com;
access_log logs/crm.access.log main;
error_log logs/crm.error.log;
#ssl on;
ssl_certificate /data/server/nginx/conf/ssl/XXX.crt;
ssl_certificate_key /data/server/nginx/conf/ssl/XXX.key;
ssl_session_cache shared:SSL:1m;
ssl_session_timeout 5m;
ssl_ciphers HIGH:!aNULL:!MD5;
ssl_prefer_server_ciphers on;
client_max_body_size 50m; # 设置客户端请求体大小限制
# location /{
# root /data/htdoc/www;
# index index.html index.htm;
# try_files $uri $uri/