Nginx+Tomcat架构图(初学)

发布时间:2024年01月20日

1设置Tomcat服务器集群

开2个虚拟机作为服务器(先配置一个,再克隆)

(前面讲过)

1配置子网ip75,76,

我的网卡是ens32,你的不一定是,建议按table出来

2重启网络配置

Tomcat-75,Tomcat-76

3打jar包

把springboot项目部署到linux,

springboot项目内置Tomcat,2个虚拟机,

简单的看成是能运行项目的服务器,还要把需要的数据放进去

我的是项目名称是springboot_test.jar

4部署项目

把项目需要用的数据库也放到这两个服务器上

数据库Navicat 数据传输过去,别忘了关防火墙!!!,否则连不上;我的默认开机启动默认关闭,很不安全,可以打开防火墙,只放行项目运行的端口号(命令去ai一下很快的)也是可以的,如果不设置自动开机默认关闭或者放开项目运行的端口号,后续手动写防火墙命令很烦的

(前提是我的linux-CentOS7,里安装过数据库了,也写过启动项目的脚本ry.sh了),手动写命令也行,自己去百度查查是有的,

连接名称和自己的Tomcat-75,Tomcat-76的主机名或者ip地址一样,我是简单测试,所以账号,密码也设置一样,

2设置Nginx集群

Nginx正向代理,pc+Nginx,代理客户端,隐藏pc端的ip

反向代理Nginx+Tomcat,代理服务器,隐藏服务器端的ip

把静态资源放在Nginx里CentOS7-74Nginx,CentOS7-77Nginx,

sprngboot项目,数据库资源放到服务器里Tomcat-75,Tomcat-76

1安装Nginx

环境,库,写成一行命令

yum install -y gcc-c++ pcre pcre-devel zlib zlib-devel openssl openssl-devel

2?解压文件

tar -zxvf nginx-1.15.10.tar.gz

3 配置

进入目录nginx-1.15.10

使用默认配置

[root@hostM1 nginx-1.15.10]# ./configure

4 编译安装

make&&make install

5 查看安装位置

whereis nginx

6 启动、停止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 需要结束进程的端口号

7 查询nginx进程

ps -ef|grep -v grep|grep nginx

8 访问nginx

输入随意网址可以看到以下,代表安装nginx成功了

9把前端项目打包(先往下看)

1前端项目打包

打包之前,建议先看完本文章再去配

这里的url是我之前配置的Nginx集群映射出来的i虚拟ip地址,先往下看,后面再打包也没事,否则还要重新npm run build

vscode 命令 npm run build 生成dist文件

分别放到两个Nginx里,建议先搞一个再克隆,

我的前端项目dist是在这里

2nginx配置文件

(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

10 配置Nginx集群

先配置一个Nginx再克隆

防止单点故障;就是一个Nginx宕机之后,另一个Nginx无缝衔接,

我的 74,77

74,77关机任意一个访问100还能用,

访问虚拟出来的公共ip宕机一个还能用

别再去访问宕机的ip了,不能用了

1 安装Keepalived软件

安装命令

yum -y install keepalived

2复制文件

放到这里

cd /etc/keepalived/keepalived.conf

2个文件需要修改的地方如下

一个配置主Nginx的文件;

keepalived-master.conf

这里的100,就是虚拟出来的公共的ip,这时候你在把前端项目中的baseurl改成和上面的虚拟ip100一样,再打包 npm run build?

一个配置备用Nginx的文件;

keepalived-backup.conf

3再复制1个脚本文件

check_nginx_pid.sh脚本文件,放到这里,(先配置一个再克隆一下,简单改改)

/usr/local/src/check_nginx_pid.sh

1授权

安装完脚本ls或ll看看文件权限,

不足的话要进入该目录下授权

chmod 774?/usr/local/src/check_nginx_pid.sh

3配置keepalived开机自启动

命令:注意要进入/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,

基本原理如下图:

文章来源:https://blog.csdn.net/CSDNlele666/article/details/135707040
本文来自互联网用户投稿,该文观点仅代表作者本人,不代表本站立场。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。