研究反向代理和之前我们先来和普通服务器的正向代理作比较
使用模拟Nginx作为反向代理服务器
模拟一个场景: 我们在一台虚拟机上面安装两个tomcat服务器(分别配置使用8080,8081端口),然后安装nginx服务器作为反向代理服务器
这就需要我们在nginx里面配置对于两台tomcat服务器的访问
1.安装tomcat服务器分别配置8080/8081端口)
配置端口 server.xml文件
2.安装nginx服务器
详见nginx安装 https://blog.csdn.net/Stephen_mu/article/details/88935957
3.配置nginx配置文件,指定对于tomcat服务器们的访问
nginx配置文件解读详见 https://blog.csdn.net/Stephen_mu/article/details/88937363
upstream tomcats{
server 192.168.76.128:8080 weight=2;
server 192.168.76.128:8081; #权重默认为1
}
server { #每一个server节点就代表一个虚拟主机
listen 81; #新的端口
server_name localhost; #虚拟主机名
#charset koi8-r; #编码方式
#access_log logs/host.access.log main;
location / {
#root html81; #新的根目录
proxy_pass http://tomcats; #代理server地址
index index.html index.htm; #根目录的文件
}
}
4.访问
注意一定要先将两个tomcat的server启动起来,再将nginx的server启动。否则可能存在tomcat的server被干掉的问题
Nginx进行负载均衡
1.如果存在这样一种情况,两台服务器性能存在差异,一台性能较高一台低。我们让其提供服务的时候自然希望性能高服务器能够处理更多的请求。从而实现请求负载均衡
处理方法: 在nginx中对于服务器们的访问权重进行设置,让性能优的服务器拥有更高的权重,去处理更多的请求 (默认权重为1)
upstream tomcats{
server 192.168.76.128:8080 weight=2;
server 192.168.76.128:8081; #权重默认为1
}
配置了这样的权重后,nginx反向代理服务器会将2/3的请求交由8080端口的server进行处理,从而实现负载均衡。