Skip to content

Commit d51123c

Browse files
committed
Update proxy module
1 parent 52baad9 commit d51123c

File tree

2 files changed

+139
-1
lines changed

2 files changed

+139
-1
lines changed

模块参考/http/ngx_http_perl_module.md

Lines changed: 1 addition & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -212,7 +212,7 @@ __END__
212212
213213
- `$r->header_only`
214214
215-
确定整个响应还是仅将头部发送给客户端。
215+
确定整个响应还是仅将头部发送给客户端。
216216
217217
- `$r->header_out(field, value)`
218218

模块参考/http/ngx_http_proxy_module.md

Lines changed: 138 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -83,6 +83,144 @@ location / {
8383
}
8484
```
8585

86+
<a id="directives"></a>
87+
88+
## 指令
89+
90+
### proxy_bind
91+
92+
|\-|说明|
93+
|------:|------|
94+
|**语法**|**proxy_bind** `address [transparent]` &#124; `off`;|
95+
|**默认**|——|
96+
|**上下文**|http、server、location|
97+
|**提示**|该指令在 0.8.22 版本中出现|
98+
99+
连接到一个指定了本地 IP 地址和可选端口(1.11.2)的代理服务器。参数值可以包含变量(1.3.12)。特殊值 `off` (1.3.12)取消从上层配置级别继承的 `proxy_bind` 指令的作用,其允许系统自动分配本地 IP 地址和端口。
100+
101+
`transparent` 参数(1.11.0)允许出站从非本地 IP 地址到代理服务器的连接(例如,来自客户端的真实 IP 地址):
102+
103+
```nginx
104+
proxy_bind $remote_addr transparent;
105+
```
106+
107+
为了使这个参数起作用,通常需要以[超级用户](../核心模块.md#user)权限运行 nginx worker 进程。在 Linux 上,不需要指定 `transparent` 参数(1.13.8),工作进程会继承 master 进程的 `CAP_NET_RAW` 功能。此外,还要配置内核路由表来拦截来自代理服务器的网络流量。
108+
109+
### proxy_buffer_size
110+
111+
|\-|说明|
112+
|------:|------|
113+
|**语法**|**proxy_buffer_size** `size`;|
114+
|**默认**|proxy_buffer_size 4k&#124;8k;|
115+
|**上下文**|http、server、location|
116+
117+
设置用于读取从代理服务器收到的第一部分响应的缓冲区大小(`size`)。这部分通常包含一个小的响应头。默认情况下,缓冲区大小等于一个内存页。4K 或 8K,因平台而异。但是,它可以设置得更小。
118+
119+
### proxy_buffering
120+
121+
|\-|说明|
122+
|------:|------|
123+
|**语法**|**proxy_buffering** `on` &#124; `off`;|
124+
|**默认**|proxy_buffering on;|
125+
|**上下文**|http、server、location|
126+
127+
启用或禁用来自代理服务器的响应缓冲。
128+
129+
当启用缓冲时,nginx 会尽可能快地收到接收来自代理服务器的响应,并将其保存到由 [proxy_buffer_size](#proxy_buffer_size)[proxy_buffers](#proxy_buffers) 指令设置的缓冲区中。如果内存放不下整个响应,响应的一部分可以保存到磁盘上的[临时文件](#proxy_temp_path)中。写入临时文件由 [proxy_max_temp_file_size ](#proxy_max_temp_file_size)[proxy_temp_file_write_size](#proxy_temp_file_write_size) 指令控制。
130+
131+
当缓冲被禁用时,nginx 在收到响应时立即同步传递给客户端,不会尝试从代理服务器读取整个响应。nginx 一次可以从服务器接收的最大数据量由 [proxy_buffer_size](#proxy_buffer_size) 指令设置。
132+
133+
通过在 `X-Accel-Buffering` 响应头字段中通过 `yes``no` 也可以启用或禁用缓冲。可以使用 [proxy_ignore_headers](#proxy_ignore_headers) 指令禁用此功能。
134+
135+
### proxy_buffers
136+
137+
|\-|说明|
138+
|------:|------|
139+
|**语法**|**proxy_buffers** `number size`;|
140+
|**默认**|proxy_buffers 8 4k&#124;8k;|
141+
|**上下文**|http、server、location|
142+
143+
设置单个连接从代理服务器读取响应的缓冲区的 `number` (数量)和 `size` (大小)。默认情况下,缓冲区大小等于一个内存页。为 4K 或 8K,因平台而异。
144+
145+
### proxy_busy_buffers_size
146+
147+
|\-|说明|
148+
|------:|------|
149+
|**语法**|**proxy_busy_buffers_size** `size`;|
150+
|**默认**|proxy_buffer_size 8k&#124;16k;|
151+
|**上下文**|http、server、location|
152+
153+
当启用代理服务器响应[缓冲](#proxy_buffering)时,限制缓冲区的总大小(`size`)在当响应尚未被完全读取时可向客户端发送响应。同时,其余的缓冲区可以用来读取响应,如果需要的话,缓冲部分响应到临时文件中。默认情况下,`size`[proxy_buffer_size](#proxy_buffer_size)[proxy_buffers](#proxy_buffers) 指令设置的两个缓冲区的大小限制。
154+
155+
### proxy_cache
156+
157+
|\-|说明|
158+
|------:|------|
159+
|**语法**|**proxy_cache** `zone` &#124; `off`;|
160+
|**默认**|proxy_cache off;|
161+
|**上下文**|http、server、location|
162+
163+
定义用于缓存的共享内存区域。同一个区域可以在几个地方使用。参数值可以包含变量(1.7.9)。`off` 参数将禁用从上级配置级别继承的缓存配置。
164+
165+
### proxy_cache_background_update
166+
167+
|\-|说明|
168+
|------:|------|
169+
|**语法**|**proxy_cache_background_update** `on` &#124; `off`;|
170+
|**默认**|proxy_cache_background_update off;|
171+
|**上下文**|http、server、location|
172+
|**提示**|该指令在 1.11.10 版本中出现|
173+
174+
允许启动后台子请求来更新过期的缓存项,而过时的缓存响应则返回给客户端。请注意,有必要在更新时[允许](#proxy_cache_use_stale_updating)使用陈旧的缓存响应。
175+
176+
### proxy_cache_bypass
177+
178+
|\-|说明|
179+
|------:|------|
180+
|**语法**|**proxy_cache_bypass** `string ...`;|
181+
|**默认**|——|
182+
|**上下文**|http、server、location|
183+
184+
定义不从缓存中获取响应的条件。如果字符串参数中有一个值不为空且不等于 `0`,则不会从缓存中获取响应:
185+
186+
```nginx
187+
proxy_cache_bypass $cookie_nocache $arg_nocache$arg_comment;
188+
proxy_cache_bypass $http_pragma $http_authorization;
189+
```
190+
191+
可以与 [proxy_no_cache](#proxy_no_cache) 指令一起使用。
192+
193+
### proxy_cache_convert_head
194+
195+
|\-|说明|
196+
|------:|------|
197+
|**语法**|**proxy_cache_convert_head** `on` &#124; `off`;|
198+
|**默认**|proxy_cache_convert_head on;|
199+
|**上下文**|http、server、location|
200+
|**提示**|该指令在 1.9.7 版本中出现|
201+
202+
启用或禁用将 **HEAD** 方法转换为 **GET** 进行缓存。禁用转换时,应将[缓存键](#proxy_cache_key)配置为包含 `$request_method`
203+
204+
### proxy_cache_key
205+
206+
|\-|说明|
207+
|------:|------|
208+
|**语法**|**proxy_cache_key** `string`;|
209+
|**默认**|proxy_cache_key $scheme$proxy_host$request_uri;|
210+
|**上下文**|http、server、location|
211+
212+
为缓存定义一个 key,例如:
213+
214+
```nginx
215+
proxy_cache_key "$host$request_uri $cookie_user";
216+
```
217+
218+
默认情况下,指令的值与字符串相近:
219+
220+
```nginx
221+
proxy_cache_key $scheme$proxy_host$uri$is_args$args;
222+
```
223+
86224
**待续……**
87225

88226
## 原文档

0 commit comments

Comments
 (0)