@@ -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] ` | ; ` 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| ; 8k;|
115+ | ** 上下文** | http、server、location|
116+
117+ 设置用于读取从代理服务器收到的第一部分响应的缓冲区大小(` size ` )。这部分通常包含一个小的响应头。默认情况下,缓冲区大小等于一个内存页。4K 或 8K,因平台而异。但是,它可以设置得更小。
118+
119+ ### proxy_buffering
120+
121+ | \- | 说明|
122+ | ------:| ------|
123+ | ** 语法** | ** proxy_buffering** ` on ` | ; ` 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| ; 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| ; 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 ` | ; ` 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 ` | ; ` 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 ` | ; ` 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