=====Nginx服务器的代理服务=====

代理(proxy)服务:通常也称为正向代理服务,访问方向时从局域网内的客户端通过代理服务器访问局域网外的Internet上的资源。此时的代理服务器起到了一部分防火墙的功能,同时对局域网的访问行为进行监控和管理。正向代理服务器不支持外部对内部网络的访问。

反向(reverse proxy)代理:局域网向Internet提供资源,让Internet上的用户可以访问局域网内的资源,这是使用的就是反向代理服务。

=====Nginx服务器的正向代理服务=====

以下指令原则上可以出现在Nginx配置文件中的http、server、location块中,但是一般在服务器中单独配置一个server块用来设置代理服务。

1、resolver指令:

      resolver address ... [valid=time];

      address:指定DNS服务器的IP地址,默认端口53,Nginx1.1.7版本开始支持设置多个IP,Nginx1.3.1开发版和Nginx1.2.2稳定版,支持设置IPV6地址。

      time:设置数据包在网络中的有效时间。防止数据包无限期的存在。

     eg:resolver 127.0.0.1 [::1]:5353 valid=30s;

2、 resolver_timeout:该指令用于设置DNS服务器域名解析的超时时间。

      resolver_timeout time;

3、proxy_pass:设置代理服务器的协议和地址

     proxy_pass URL;

     一般配置为:proxy_pass http://$http_host$request_uri             $http_host:获取的主机名;$request_uri:获取的uri

   注意:配置代理服务器的时候,一般不要改变该指令的配置。

=====注意事项=====

1、在配置代理服务的server块中,不要出现server_name指令。

2、resolver指令必需有,否则nginx服务器无法处理接受到的域名。

3、nginx服务器的代理服务不支持正向代理HTTPS站点。

=====nginx反向代理服务=====

===基本配置指令===

1、proxy_pass:用于设置被代理服务器的地址,包含传输协议(http、https、以“unix”开始的UNIX-domain套接字路径)、主机名称或IP地址加端口号、URI等要素。

     proxy_pass URL;

    如果被代理服务器是一组服务器,可以使用upstream指令配置后端服务器组,URL就写为服务器组名称。

    注意:   如果组内各个服务器没有指明传输协议,在proxy_pass指令中就需要指明传输协议了,如:proxy_pass http://proxy_svrs。

                  如果该指令的URL中不包含URI,就使用原地址的URI,如果URL包含URI,就用该URI替换原来的URI。

                  proxy_pass指令的URL变量末尾加“/”代表URL变量包含URI“/”,就会替换原来的URI;不加URL变量不包含URI,就不会替换原来的URI。

                   如:proxy_pass http://192.168.1.1;    此处无RUI

                          proxy_pass http://192.168.1.1/;   此处URI为“/”

2、proxy_hide_header:设置nginx服务器在发送HTTP响应时,隐藏一些头域信息

    proxy_hide_header  field;     field为要隐藏的头域

===== Buffer与Cache的区别=====

buffer:缓冲区,主要用于传输效率不同或者优先级别不同的设备之间传递数据,一般通过对一方的数据进行临时存放,再统一发送的办法传递给另一方,以降低进程之间的等待时间,保证速度较快的进程不发生间断,临时存放的数据一旦传送给另一方,这些数据本身也就没有用处了;

cache:缓存区:主要用于将磁盘上已经有的数据在内存中建立缓存数据,提高数据的访问效率,对于过期不用的缓存可以临时销毁,但不会消毁硬盘上的数据。

Proxy cache机制依赖于Proxy buffer机制,只有在Proxy buffer机制开启时Proxy cache配置