springboot+nginx实现负载均衡和动静分离

首先,在idea中创建springboot项目,把该项目修改端口号后分别打包三次

另注意,打包的时候可以在pom.xml中指定打包的包名,我这里分别设置了不同的包名,好区分

然后把三个jar包放在linux下的usr/local目录下(static是等下静态分离的)

然后配置nginx配置文件

上面的upstream表示把请求分配到不同的服务器中

下面的location /myweb 表示访问/myweb时会将请求跳转到上面的那个upstream中

这里的www.myweb.com是自己随便取的名字,注意上下的名字要相同,一一对应。

然后就可以启动nginx,运行3个jar包(注意关闭防火墙systemctl stop firewalld)

/usr/local/nginx/sbin/nginx -c /usr/local/nginx/conf/nginx.conf

java -jar 01-myweb.jar &

java -jar 02-myweb.jar &

java -jar 03-myweb.jar &

这里负载均衡就实现了,在浏览器上输入192.168.175.128/myweb就会由nginx向三个服务器发送请求。

动静分离的话,准备好一张图片

复制static文件夹,到这里

这里要特别注意:因为我配置了server.servlet.context-path=/myweb

所以静态资源不能直接放在static里,要在static文件夹里新建一个名为myweb的文件夹,把原来static里面的静态资源文件放到myweb里

然后在原来的nginx配置文件的server中加上这个,表示访问的路径中包含括号里的,就会到linux中的/usr/local/myweb2/static里面获取资源文件

这里就实现动静分离了,访问静态资源文件时就是从nginx中获取。

为什么要在static里再创建一个myweb文件夹呢?

因为root表示的是本地磁盘根路径,表示的是192.168.175.128(我的地址),

然而在浏览器上发出请求的地址是192.168.175.128/myweb

myweb是我配置的项目名,只有加上这个才能访问到我的myweb项目

用户访问静态资源文件是192.168.175.128/myweb/静态资源文件

相当于/usr/local/myweb2/static/myweb/静态资源文件

如果我们不创建一个myweb文件夹的话,我们的静态资源文件就存放在

相当于/usr/local/myweb2/static/静态资源文件

这样用户当然访问不到静态资源文件。

经验分享 程序员 微信小程序 职场和发展