反向代理服务器的概念:

       反向代理是指用代理服务器来接收Internet上的连接请求,然后将请求转发给内部网络中的上游服务器,并将从上游服务器上得到的结果返回给Internet上请求连接的客户端。

 

Nginx反向代理服务器的特点:

       Nginx具有很强的高并发高负载能力,其一般会配置为既使静态Web服务器也是反向代理服务器。当请求内容是静态文件时,Nginx作为静态Web服务器直接给予回应;当请求内容是动态文件,不适合Nginx处理时,Nginx会作为反向代理服务器将请求转发给上游服务器。

(ps:Squid等反向代理服务器则是一边接收请求,一边转发到上游服务器)

降低了上游服务器的负载,使得压力尽量在Nginx反向代理服务器

      之所以可以降低上游服务器的负载,原因在于:Nginx代理服务器与上游服务器之间一般是“内网”连接,搭有VPN专线,传输速度较快。这样使得Nginx代理服务器与上游服务器之间的转发速率非常高,也就是使得一个Client连接占用上游服务器的时间会非常短,极大地降低了上游服务器的并发压力。

 

Nginx反向代理服务器的配置:

    (1)proxy_pass

             使用语法:proxy_pass URL;

             使用说明:此配置项指定Nginx要代理的服务器,URL可以是host或IP+端口号的形式。例如:

                                proxy_pass http://192.168.190.136:80

   (2)proxy_method

             使用语法:proxy_method method;

             使用说明:此配置项表示转发时的协议方法名,如GET、POST等。例如:

                                proxy_method GET

   (3)proxy_hide_header

             使用语法:proxy_hide_header the_header;

             使用说明:默认情况下,Nginx不转发HTTP头部中的Date、Server、X-Pad、X-Accel-*。使用该配置项可以任意地指定哪些HTTP头部字段不会被转发。例如:

                                proxy_hide_header Cathe-Control;

   (4)proxy_pass_header

             使用语法:proxy_pass_header the_header;

             使用说明:此配置项与(4)相反,可以将原本禁止转发的HTTP头部字段变为允许转发。例如:

                                proxy_pass_header X-Pad;

   (5)proxy_pass_request_headers

             使用语法:proxy_pass_request_headers on|off;

             使用说明:此配置项表示是否允许转发HTTP头部。例如:

                                proxy_pass_request_headers on;   

   (6)proxy_pass_request_body

             使用语法:proxy_pass_request_body on|off;

             使用说明:此配置项表示是否允许转发HTTP包体。例如:

                                proxy_pass_request_body on;

   (7)proxy_next_upstream

            使用语法:proxy_next_upstream [error|timeout|http_500|http_502|http_503|http_504|off];

            使用说明:此配置项表示当一台上游服务器转发出错时,继续换一台上游服务器处理这个请求。默认情况下,一旦Nginx开始向Client发送响应包,之后过程中若出错则不允许换一台上游服务器继续处理。但是在某些情况下,允许在出错时选择换一台上游服务器继续处理,例如:

                                proxy_next_upstream http_503;