Nginx负载均衡实战

本文详细描述了如何在Linux服务器上配置环境,包括安装必要的软件如MySQL、Nginx等,并通过克隆实现快速部署。介绍了Springboot+Vue项目架构及前后端部署步骤,涉及前端配置、打包部署、后端MySQL连接设置、jar包部署以及Nginx的负载均衡设置。
摘要由CSDN通过智能技术生成

环境准备

        首先要提前准备好所需的环境:三台Linux服务器,并配置好IP地址,关闭防火墙。我这边已经提前准备好了三台linux服务器,IP地址分别为:

7cb301f1a175448ea18f1d3459a337e3.png

        并且在linux上面安装好所需的软件:MySQL、Nginx、JDK1.8、Redis等等,可以先将一台Linux安装好环境,在使用克隆功能克隆出另外两台服务器,这样就不需要重复安装软件了。我们将安装的软件统一放到/usr/local目录下面:

4443c4d0fb0f4ca18172629445bdf735.png

        安装方法可以参考其他文章,这边就不详细说明。

项目架构

        项目整体架构如下图所示,我准备的项目是springboot+vue前后端分离的项目,未使用Redis。大家可以根据自己已有的前后端分离来进行部署。IP地址为10.211.55.8这台Linux服务器用来部署前端项目,IP地址为10.211.55.13和10.211.55.14这两台服务器用来部署后端项目,形成一个集群。MySQL数据库和Nginx部署在IP为10.211.55.8这台服务器上面。

3df68b6a296c4b808292db145f29de5c.png

前端项目打包部署

文件配置

        打开前端项目的.env.production文件,写入VUE_APP_BASEURL = '/prod-api',注意prod前面有'/',这样前端的访问就会加上这个访问前缀。

2b45492c6fd84170a5abce7a08b69f70.png

打包

        打开终端,进入前端项目的目录,我的前端项目统一放在vue文件夹中,如下图:

b7089429e8774ce0a7c191912b4171ad.png

        使用npm install安装依赖,如下图:

962526fabdb6468aa8d753e710dc4791.png

        下载完成后使用npm run build打成产环境的包如下图所示:

96919518bd444417be6de4d2172058cf.png

        打包完成后会生成一个dist文件夹,如图:

98ab40ff5b2a4b0e9571c87de51ca3fe.png

        我们将dist文件夹上传到IP地址为:10.211.55.8的服务器上面,在根目录(root)下面创建workspace目录,再创建vue目录,将dist目录放入其中。

eef71cd1ba824ccc938bc5994c1becf4.png

        进入/usr/local/nginx/conf目录,打开nginx.conf文件,进行如图所示配置,upstream配置两个后端实例的地址,即另外两台服务器的IP地址。在location下的root后面位置dist文件所在目录的位置。新建一个location /prod-api/,prod-api为统一访问后端的前缀,并进行如图所示配置。不同的照抄。

ae77a060f5794a3eb3b25debe52c2d69.png

后端项目打包部署

文件配置

        对于后端项目,我们要配置MySQL地址,打开application.yml文件,找到数据库配置,讲url后面配置成第一台服务器IP为10.211.55.8的地址。账号密码也是这台服务器的。

e4b456acf1e04fd1b55f911490a6ac2b.png 

打包

        在idea右侧打开我们的Maven,将test关闭,然后点击package进行打包,如下图:

9e96724a87e943d485936c44a228458f.png

打包完成后会在target目录下面生成一个springboot-0.0.1-SNAPSHOT.jar的jar包,如下图:

0ba2034f1d3e4a9a93baa255c89984d0.png

        将生成的jar包分别上传到IP地址为10.211.55.13和10.211.55.14的服务器上,在root目录下创建workspace/springboot目录,将生成的jar包放在此目录。如下图所示:

ccfecf390c7740308eb68da40395a4f3.png

        接着添加启动和停止脚本,使用命令vim start.sh编写如下代码:

NAME=springboot-0.0.1-SNAPSHOT.jar
nohup java -jar $NAME > server.log 2>&1 &
echo 'start success'

        vim stop.sh,编写如下代码:

PORT=9090
pid=`netstat -tnlp | grep $PORT | grep -v grep | awk '{print $7}' | awk -F/ '{print $1}'`
if [ ${pid} ]; then
    kill -9 $pid
    echo "kill $PORT"
else
    echo 'stop sucess!'
fi

        赋权 chmod +x *,这样现在就可使用start.sh和stop.sh进行一键启动和停止后端项目。

项目启动

        进入IP地址为:10.211.55.8这台服务器,cd /usr/local/nginx,进入Nginx的目录,进入sbin目录,输入命令:./nginx即可启动Nginx服务器。

a7e624ea6d764501980542d8e4e7aa68.png

        接着开IP为:10.211.55.13,这台Linux服务器j,进入/workspace/springboot目录,就是jar包和编写脚本所在目录,输入./start.sh,看到start success,接着输入tail -100f server.log指令来查看日志。如下图:

67e249d188e444779928a39157f2d452.png

        IP地址为10.211.55.14页执行相同的操作,这样两台后端就可查看日志,如下图:

16759920146049ccae86e1ea4f117077.png

在浏览器输入IP:10.211.55.8,即可进入前端项目,

1172c849542d4ffda6f476ede980b707.png

我们看到两个后端实例都可处理消息:

c77c3a1b6d584cd78aa51f3f89c41187.png

至此Nginx负载均衡就以实现。

最后,文中有很多细节可能未提及,读者可以查看其他作者的博客,或者评论。

 

  • 17
    点赞
  • 14
    收藏
    觉得还不错? 一键收藏
  • 4
    评论
评论 4
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值