1、什么是反向代理?

通常的代理服务器,只用于代理内部网络对Internet的连接请求,客户机必须指定代理服务器,并将本来要直接发送到Web服务器上的http请求发送到代理服务器中由代理服务器向Internet上的web服务器发起请求,最终达到客户机上网的目的(也就是正向代理)。

而反向代理(Reverse Proxy)方式是指以代理服务器来接受internet上的连接请求,然后将请求转发给内部网络上的服务器,并将从服务器上得到的结果返回给internet上请求连接的客户端,此时代理服务器对外就表现为一个反向代理服务器。

nginx反向代理后,在应用中取得的ip都是反向代理服务器的ip,取得的域名也是反向代理配置的url的域名,解决该问题,需要在nginx反向代理配置中添加一些配置信息,目的将客户端的真实ip和域名传递到应用程序中。

Nginx只做请求的转发,后台有多个http服务器提供服务,nginx的功能就是把请求转发给后面的服务器,决定把请求转发给谁。

2、反向代理的作用

现在许多大型web网站都用到反向代理。除了可以防止外网对内网服务器的恶性攻击、缓存以减少服务器的压力和访问安全控制之外,还可以进行负载均衡,将用户请求分配给多个服务器。

3、为什么要获取客户端的真实IP?

nginx ip 跳转到指定页面 nginx跳转到另一个ip_nginx ip 跳转到指定页面

4、反向代理服务器Nginx配置

(1)了解几个需要配置的变量含义:

nginx ip 跳转到指定页面 nginx跳转到另一个ip_反向代理_02


(2)利用Nginx中的realip模块获取用户的真实ip官方文档请点击这里

nginx ip 跳转到指定页面 nginx跳转到另一个ip_代理服务器_03


我们将各层代理的IP排除在外,就取到了真实的用户IP,这个可以使用nginx的一个模块realip_module 来实现从XFF中抛弃指定的代理层 IP,那么最后一个符合规则的就是用户 IP