本文共 1810 字,大约阅读时间需要 6 分钟。
代理(proxy)服务:通常也称为正向代理服务,访问方向时从局域网内的客户端通过代理服务器访问局域网外的Internet上的资源。此时的代理服务器起到了一部分防火墙的功能,同时对局域网的访问行为进行监控和管理。正向代理服务器不支持外部对内部网络的访问。
反向(reverse proxy)代理:局域网向Internet提供资源,让Internet上的用户可以访问局域网内的资源,这是使用的就是反向代理服务。
以下指令原则上可以出现在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_host:获取的主机名;$request_uri:获取的uri
注意:配置代理服务器的时候,一般不要改变该指令的配置。
1、在配置代理服务的server块中,不要出现server_name指令。
2、resolver指令必需有,否则nginx服务器无法处理接受到的域名。
3、nginx服务器的代理服务不支持正向代理HTTPS站点。
===基本配置指令===
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:缓存区:主要用于将磁盘上已经有的数据在内存中建立缓存数据,提高数据的访问效率,对于过期不用的缓存可以临时销毁,但不会消毁硬盘上的数据。
Proxy cache机制依赖于Proxy buffer机制,只有在Proxy buffer机制开启时Proxy cache配置
转载地址:http://qapja.baihongyu.com/