Nginx配置反向代理
一、什么是反向代理
反向代理(Reverse Proxy)方式是指以代理服务器来接受internet上的连接请求,然后将请求转发给内部网络上的服务器,并将从服务器上得到的结果返回给internet上请求连接的客户端,此时代理服务器对外就表现为一个反向代理服务器。
反向代理的作用:
(1)保证内网的安全,可以使用反向代理提供WAF功能,阻止web攻击大型网站,通常将反向代理作为公网访问地址,Web服务器是内网。
(2)负载均衡,通过反向代理服务器来优化网站的负载。
二、反向代理实现
(1)我们要访问的内部应用服务器使用tomcat,所以需要安装两个tomcat。(准备工作:tomcat,Linux压缩包上传到虚拟机上)
(2)tomcat准备好过后,需要修改其中一个tomcat的server.xml配置文件,否则两个tomcat启动时端口号会冲突。(在tomcat/conf/server.xml,修改第一个和第二个都可以,我这里修改的为tomcat-test2)
保存修改。
(3)修改nginx配置文件,配置server。新增配置如下:
upstream tomcat-test1 {
server 192.168.200.132:8080;
}
server {
listen 80;
server_name www.tomcat1.com;
#charset koi8-r;
#access_log logs/host.access.log main;
location / {
proxy_pass http://tomcat-test1;
index index.html index.htm;
}
}
upstream tomcat-test2 {
server 192.168.200.132:8081;
}
server {
listen 80;
server_name www.tomcat2.com;
#charset koi8-r;
#access_log logs/host.access.log main;
location / {
proxy_pass http://tomcat-test2;
index index.html index.htm;
}
}
(4)添加域名解析到hosts中。(C:\Windows\System32\drivers\etc,Windows环境下hosts所在目录)
(5)重新加载配置文件,启动tomcat,进行测试。
测试结果:
Nginx配置负载均衡
一、配置负载均衡就很简单了,只需要在nginx的配置文件中添加server节点即可。
upstream tomcat-test2 {
server 192.168.200.132:8081;
server 192.168.200.132:8082;
}
这样就完成了负载均衡,请求会循环分配。
扩展:如果需要对负载进行重新分配,比如8082这个服务器性能要更好,可以处理更多的请求,我们可以在后面加上权重。这样就可以使分配给8082端口所在服务器的请求更多。
upstream tomcat-test2 {
server 192.168.200.132:8081;
server 192.168.200.132:8082 weight=2; //权重越大,分配到的请求越多
}