前言:当我们的软件体系结构较为庞大的时候,访问量往往是巨大的,所以我们这里可以使用nginx的均衡负载
一、配置nginx实现端口转发
本地tomcat服务端口为8082
本地nginx端口为8080
目的:将nginx的8080转发到tomcat的8082端口上进行访问
1、首先更改nginx.conf配置文件
server {listen 8080;#8080为nginx端口server_name localhost;location /p/ {proxy_pass http://localhost:8082/;#8082为tomcat端口# proxy_pass http://xx/;}
}
#将url中/p/路径的url转发到tomcat的8082端口上
测试,在nginx的html文件下新建一个1.html
1.html
<html>
<script>
function myload(){var path="/p/pic/p1.jpg?i="+Math.random();myimg.src=path;
}
</script>
<body onload="myload()">
<img id="myimg" src=""></body>
</html>
访问nginx:localhost:8080/1.html
二、配置负载均衡
1、首先启动两个tomcat或nginx
我这里启动两个tomcat,先更改tomcat端口号。
我这里tomcat端口分别为:8082、8083
更改配置文件如下:conf\server.xml
<Connector port="8082" protocol="HTTP/1.1"connectionTimeout="20000"redirectPort="8443" /><!-- A "Connector" using the shared thread pool--><!--<Connector executor="tomcatThreadPool"port="8082" protocol="HTTP/1.1"connectionTimeout="20000"redirectPort="8443" />-->
<Server port="8005" shutdown="SHUTDOWN">
注:<Server port="8005" shutdown="SHUTDOWN">这个也要改,不能跟另外一个tomcat的shutdown这个端口冲突。
分别在两个tomcat的webapp\pic目录命名同名的一张图片p1.jpg,但图片内容不同
2、更改nginx.conf配置文件
http{include mime.types;default_type application/octet-stream;sendfile on;
#负载均衡配置
upstream xx {server 127.0.0.1:8082;server 127.0.0.1:8083;}
server {listen 8080;#8080为nginx端口server_name localhost;location /p/ {#proxy_pass http://localhost:8082/;#8082为tomcat端口proxy_pass http://xx/;}
}
}
#将url中/p/路径的url转发到tomcat的8082或8083端口上
重启nginx:
nginx -s quit #关闭
nginx -s stop #强制关闭
start nginx #启动
成功: