开2个虚拟机作为服务器(先配置一个,再克隆)
(前面讲过)
我的网卡是ens32,你的不一定是,建议按table出来
Tomcat-75,Tomcat-76
把springboot项目部署到linux,
springboot项目内置Tomcat,2个虚拟机,
简单的看成是能运行项目的服务器,还要把需要的数据放进去
我的是项目名称是springboot_test.jar
把项目需要用的数据库也放到这两个服务器上
数据库Navicat 数据传输过去,别忘了关防火墙!!!,否则连不上;我的默认开机启动默认关闭,很不安全,可以打开防火墙,只放行项目运行的端口号(命令去ai一下很快的)也是可以的,如果不设置自动开机默认关闭或者放开项目运行的端口号,后续手动写防火墙命令很烦的
(前提是我的linux-CentOS7,里安装过数据库了,也写过启动项目的脚本ry.sh了),手动写命令也行,自己去百度查查是有的,
连接名称和自己的Tomcat-75,Tomcat-76的主机名或者ip地址一样,我是简单测试,所以账号,密码也设置一样,
Nginx正向代理,pc+Nginx,代理客户端,隐藏pc端的ip
反向代理Nginx+Tomcat,代理服务器,隐藏服务器端的ip
把静态资源放在Nginx里CentOS7-74Nginx,CentOS7-77Nginx,
sprngboot项目,数据库资源放到服务器里Tomcat-75,Tomcat-76
环境,库,写成一行命令
yum install -y gcc-c++ pcre pcre-devel zlib zlib-devel openssl openssl-devel
tar -zxvf nginx-1.15.10.tar.gz
进入目录nginx-1.15.10
使用默认配置
[root@hostM1 nginx-1.15.10]# ./configure
make&&make install
whereis nginx
进入到这个sbin文件,不要进错了,它有两个,是/usr/local/nginx/sbin/目录下
[root@hostM1 nginx-1.15.10]# cd /usr/local/nginx/sbin/
./nginx启动
[root@hostM1 sbin]# ./nginx
[root@hostM1 sbin]# ./nginx -s reload 重新加载
[root@hostM1 sbin]# ./nginx -s quit 此方式停止步骤是待nginx进程处理任务完毕进行停止。
[root@hostM1 sbin]# ./nginx -s stop?此方式相当于先查出nginx进程id再使用kill命令强制杀掉进程。
如果有进程被占用:
查看进程命令,
查看运行的项目的 端口号ps -ef | grep springboot_test.jar
ps -ef | grep?写你需要查询的进程
结束进程命令
kill -9 需要结束进程的端口号
ps -ef|grep -v grep|grep nginx
输入随意网址可以看到以下,代表安装nginx成功了
打包之前,建议先看完本文章再去配
这里的url是我之前配置的Nginx集群映射出来的i虚拟ip地址,先往下看,后面再打包也没事,否则还要重新npm run build
vscode 命令 npm run build 生成dist文件
分别放到两个Nginx里,建议先搞一个再克隆,
我的前端项目dist是在这里
(nginx.conf)
位置在 /usr/local/nginx/conf
?cd?/usr/local/nginx/conf进入配置代理
Nginx开机自启命令(参考)
切换到/lib/systemd/system/目录,创建nginx.service文件vim nginx.service
cd /lib/systemd/system/
vi nginx.service
[Unit]
Description=nginx
After=network.target
[Service]
Type=forking
ExecStart=/usr/local/nginx/sbin/nginx -c /usr/local/nginx/conf/nginx.conf
ExecReload=/usr/local/nginx/sbin/nginx -s reload
ExecStop=/usr/local/nginx/sbin/nginx -s stop
PrivateTmp=true
[Install]
WantedBy=multi-user.target
参考命令,我也是摸石头过河本来以为错了,明天开机试试又好了,不知道什么原因
配置之后需要使文件生效,一定要执行下面的命令
systemctl daemon-reload
配置之后需要使文件生效
systemctl daemon-reload
退出并保存文件,执行systemctl enable nginx.service使nginx开机启动
#开机自启动
systemctl enable nginx.service
#停止开机自启动
systemctl disable nginx.service
#查询当前状态
systemctl status nginx.service
#启动服务
systemctl start nginx.service
#重新启动服务
systemctl restart nginx.service
#停止服务
systemctl stop nginx.service
#重新加载配置
systemctl reload nginx.service
先配置一个Nginx再克隆
防止单点故障;就是一个Nginx宕机之后,另一个Nginx无缝衔接,
我的 74,77
74,77关机任意一个访问100还能用,
访问虚拟出来的公共ip宕机一个还能用
别再去访问宕机的ip了,不能用了
安装命令
yum -y install keepalived
放到这里
cd /etc/keepalived/keepalived.conf
2个文件需要修改的地方如下
一个配置主Nginx的文件;
keepalived-master.conf
这里的100,就是虚拟出来的公共的ip,这时候你在把前端项目中的baseurl改成和上面的虚拟ip100一样,再打包 npm run build?
一个配置备用Nginx的文件;
keepalived-backup.conf
check_nginx_pid.sh脚本文件,放到这里,(先配置一个再克隆一下,简单改改)
/usr/local/src/check_nginx_pid.sh
安装完脚本ls或ll看看文件权限,
不足的话要进入该目录下授权
chmod 774?/usr/local/src/check_nginx_pid.sh
命令:注意要进入/etc/keepalived/目录,在执行命令否则可能会无效
systemctl enable keepalived
最后测试一下,关一个服务器,关一个Nginx访问100,测试一下,以上100指的是我设置的虚拟ip地址
192.168.74.100
1客户端访问Nginx的虚拟ip100去拿服务器中的数据
2静态数据放到Nginx
3springboot项目中的表放到服务器中
4Nginx反向代理2个服务器,75,76
5keepalived配置虚拟ip100,
基本原理如下图: