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

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

 springboot+nginx实现负载均衡和动静分离_第1张图片springboot+nginx实现负载均衡和动静分离_第2张图片

 springboot+nginx实现负载均衡和动静分离_第3张图片

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

springboot+nginx实现负载均衡和动静分离_第4张图片 

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

springboot+nginx实现负载均衡和动静分离_第5张图片

 

 然后配置nginx配置文件

springboot+nginx实现负载均衡和动静分离_第6张图片

上面的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向三个服务器发送请求。

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

springboot+nginx实现负载均衡和动静分离_第7张图片

 复制static文件夹,到这里

springboot+nginx实现负载均衡和动静分离_第8张图片

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

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

springboot+nginx实现负载均衡和动静分离_第9张图片

 springboot+nginx实现负载均衡和动静分离_第10张图片

 然后在原来的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/静态资源文件

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

 

 

 

你可能感兴趣的:(nginx,java)