官方文档中对该指令的解释是,强制将与代理主机的连接绑定到指定的IP地址。通俗来讲就是,在配置多个基于名称或者基于IP地址。通俗来讲就是,在配置了多个基于名称或者基于IP主机的情况下,如果我们希望代理连接由指定的主机处理,就可以使用该指令进行配置,其语法结构为:
proxy_bind adress;
其中,adress为指定主机的IP地址。
9.proxy_connect_timeout指令该指令配置Nginx服务器与后端被代理服务器尝试建立连接的超时时间,其语法结构为:
proxy_connect_timeout time;
其中,time为设置的超时时间,默认60s。
10.proxy_read_timeout指令该指令配置Nginx服务器向后端被代理服务器(组)发出的read请求后,等待响应的超时时间,其语法结构为:
proxy_read_timeout time;
其中,time为设置的超时时间,默认60s。
11.proxy_send_timeout指令该指令配置Nginx服务器向后端被代理服务器(组)发出的write请求后,等待响应的超时时间,其语法结构为:
proxy_write_timeount time
其中,time为设置的超时时间,默认60s。
12.proxy_http_version指令该指令设置用于Nginx服务器提供代理服务的HTTP协议版本,其语法结构为:
proxy_http_version 1.0 | 1.1;
默认版本为1.0版本,1.1版本支持upstream服务器组设置的keepalive指令。
13.proxy_method指令该指令用于设置Nginx服务器请求被代理服务器时使用的请求方法,一般为POST或者GET。设置了该指令,客户端的请求方法将被忽略。其语法结构为:
proxy_method method;
其中,method的值可以设置为POST或者GET,注意不加引号。
14.proxy_ignore_client_abort指令该指令用过设置在客户端中断网络请求时,Nginx服务器是否中断对被代理服务器的请求,其语法结构为:
proxy_ignore_client_abort on | off
默认设置为off,当客户端中断网络请求时,Nginx服务器中断对被代理服务器的请求。
15.proxy_ignore_header指令该指令用于设置一些HTTP响应头的头域,Nginx服务器接收到被代理服务器的响应数据后,不会处理被设置的头域。其语法结构为:
proxy_ignore_header field ...;
其中,field为要设置的HTTP响应头的头域,例如“X-Accel-Redirect”、“X-Accel-Expires”、“Cache-Control”、“Expires”或“Set-Cookie”等。
16.proxy_redirect指令该指令用于修改被代理服务器返回的响应头中的Location头域和“Refresh”头域,与proxy_pass指令配合使用。比如,Nginx服务器通过proxy_pass指令将客户端的请求地址重写为被代理服务器的地址,那么Nginx服务器返回客户端的响应头中“Location”头域显示的地址就应该和客户端发起请求的地址相对应,而不是代理服务器直接返回的地址信息,否则就会出问题。该指令解决了这个问题,可以把代理服务器返回的地址信息更改为需要的地址信息。其语法结构为:
proxy_redirect redirect replacement
proxy_redirect default;
proxy_redirect off;
redirect,匹配“Location”头域值的字符串,支持变量的使用和正则表达式。
replacement,用于替换redirect变量内容的字符串,支持变量的使用。
该指令的用法我们通过几个配置实例来解释。
对于第1个结构,假设被代理服务器返回的响应头中的“Location”头域为:
Location: http://localhost:8081/proxy/some/uri
该指令设置为:
proxy_redirect http://localhost:8081/proxy/ http://myweb/fronted/;
Nginx服务器会将“Location”头域信息更改为:
Location:http://myweb/frontend//some/uri;
这样,客户端收到的响应信息头部中的“Location”头域就被更改了。
结构 2使用default,代表使用location块的uri变量作为replacement,并使用proxy_pass变量作为redirect。请看下面两段配置,它们的配置效果是等同的。
#配置1
location /server/
{
proxy_pass http://proxyserver/source/;
proxy_redirect default;
}
#配置2
location /server/
{
proxy_pass http//proxyserver/source/;
proxy_redirect http://proxyserver/source/ /server/;
}
使用结构3可以将当前作用域下所有的proxy_redirect指令全部设置为无效。
17.proxy_intercept_errors指令