Nginx反向代理
反向代理
概念
反向代理(Reverse Proxy)方式是指以代理服务器来接受internet上的连接请求,然后将请求转发给内部网络上的服务器,并将从服务器上得到的结果返回给internet上请求连接的客户端,此时代理服务器对外就表现为一个反向代理服务器。
反向代理图
场景:
三台tomcat服务器组成的集群是不对外暴露IP的,只对内暴露IP。那么所搭建的nginx必须跟集群在一个局域网内且nginx对外暴露公网IP。
这样客户端可通过nginx对外的公网IP访问nginx,nginx收到请求后,会基于负载均衡策略,将客户端请求转发至某一台tomcat服务器上,并获取服务器响应,进而响应给客户端。
反向代理的本质就是代理服务器。那么与之相对的正向代理—-代理客户端
正向代理图:
可能对正向代理还是没理解的,那直接举一个例子:
三台客户端跟服务器不是同一个地方的。也就是说IP不通,三台客户端属于A公司,服务器属于B公司。我们实际工作中,A公司的电脑是通过VPN连接B公司的服务器。VPN就是一个代理服务器。把A公司的IP请求转换成B公司的请求地址,这样就可以顺利访问。
反向代理配置
nginx.config
server {
listen 80;
server\_name **www.aaa.com**; \#\#\# nginx对外暴露的域名或IP
location / \{
proxy\_pass **[https://www.bbb.com/][https_www.bbb.com]**; \#\#\# nginx转发的域名或IP
index index.html index.htm;
\}
\}
host文件配置DNS域名
127.0.0.1 www.aaa.com
启动nginx后,地址栏访问 www.aaa.com,nginx会转发至 https://www.bbb.com/
还有一种反向代理的配置方式,实际上是基于nginx负载均衡的配置方式
upstream backserver{
server **[https://www.bbb.com/ ][https_www.bbb.com]** \#\#\# nginx转发的域名或IP
}
server {
listen 80;
server\_name **www.aaa.com**; \#\#\# nginx对外暴露的域名或IP
location / \{
proxy\_pass **[htts://][https_www.bbb.com]** **backserver**;
index index.html index.htm;
\}
\}
反向代理最直观的作用之一就是:不暴露真实的服务器IP地址
还没有评论,来说两句吧...