反向代理介绍
我们平时说的代理指的是代理客户端,这个是正向代理,反向代理指的是代理服务端。
我们作为用户想访问一个服务资源URL,如果我们的浏览器直接打不开这个URL,一般会通过vpn或者其他代理服务器中转,这种情况下的代理就是正向代理,也就是我们通常说的代理的意思。
而反向代理是指,作为服务资源提供方,内部有很多服务器,这些服务器不能全部暴露给第三方用户,因此需要在内部服务器的前面加一个代理服务器,用户访问的是代理服务的IP,而不知道具体访问的是服务端的哪台机器,这种情况就是反向代理,指的是代理服务端。
Nginx默认自带proxy_pass指令,通过在nginx.conf配置文件中设置proxy_pass的参数就可以实现反向代理。
proxy_pass既可以是域名,也可以是IP地址,还可以指定端口。
示例说明:
用户在浏览器输入http://192.168.1.8本来访问到的是nginx的首页,我们希望Nginx代理Tomcat1服务器,用户访问http://192.168.1.8打开Tomcat1服务器的首页。
nginx.conf配置
在http块的server块的location块写入如下代码
proxy_pass http://192.168.1.9:8080;
如下图:
启动Tomcat1服务器的Tomcat,然后重启nginx,浏览器访问http://192.168.1.8
重启nginx,在/data/program/nginx目录下输入以下命令
../nginx -s reload
启动Tomcat1服务器的Tomcat,在/data/program/tomcat8/bin目录下输入以下命令
sh startup.sh
浏览器输入http://192.168.1.8,看访问结果如下:
说明反向代理设置成功。