反向代理介绍

我们平时说的代理指的是代理客户端,这个是正向代理,反向代理指的是代理服务端。

我们作为用户想访问一个服务资源URL,如果我们的浏览器直接打不开这个URL,一般会通过v*n或者其他代理服务器中转,这种情况下的代理就是正向代理,也就是我们通常说的代理的意思。

而反向代理是指,作为服务资源提供方,内部有很多服务器,这些服务器不能全部暴露给第三方用户,因此需要在内部服务器的前面加一个代理服务器,用户访问的是代理服务的IP,而不知道具体访问的是服务端的哪台机器,这种情况就是反向代理,指的是代理服务端。

Nginx 的反向代理演示

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;

如下图:

Nginx 的反向代理演示

启动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,看访问结果如下:

Nginx 的反向代理演示

说明反向代理设置成功。

相关文章: