ngx_http_proxy_module 该模块允许将请求传递到另一台服务器。
location / {
proxy_pass http://localhost:8000;
proxy_set_header Host $host;
proxy_set_header X-Real-IP $remote_addr;
}
设置用于读取从代理服务器接收的响应的第一部分的缓冲区。此部分通常包含一个小的响应标头。默认情况下,缓冲区大小等于一个内存页。这是 4K 或 8K,具体取决于平台。但是,它可以变得更小。size
语法: proxy_buffering on | off;
违约:
proxy_buffering on;
上下文: http, ,serverlocation
设置代理服务器的协议和地址以及应将位置映射到的可选 URI。作为协议,可以指定“”或“”。该地址可以指定为域名或 IP 地址,以及可选端口:httphttps
语法: proxy_pass URL;
违约: —
上下文: location, ,if in locationlimit_except
proxy_pass http://localhost:8000/uri/;
proxy_pass http://unix:/tmp/backend.socket:/uri/;
如果域名解析为多个地址,则所有地址都将以轮循机制方式使用。此外,可以将地址指定为服务器组。
参数值可以包含变量。在这种情况下,如果将地址指定为域名,则会在所描述的服务器组中搜索该名称,如果未找到,则使用解析程序确定该名称。
请求 URI 按如下方式传递到服务器:
如果使用 URI 指定了该指令,则当请求传递到服务器时,与位置匹配的规范化请求 URI 部分将替换为指令中指定的 URI:proxy_pass
location /name/ {
proxy_pass http://127.0.0.1/remote/;
}
如果指定为不带 URI,则请求 URI 将以与处理原始请求时客户端发送的相同形式传递到服务器,或者在处理已更改的 URI 时传递完整的规范化请求 URI:proxy_pass
location /some/path/ {
proxy_pass http://127.0.0.1;
}
当使用重写指令在代理位置内更改 URI 时,将使用相同的配置来处理请求 ():break
location /name/ {
rewrite /name/([^/]+) /users?name=$1 break;
proxy_pass http://127.0.0.1;
}
在这种情况下,将忽略指令中指定的 URI,并将完整更改的请求 URI 传递到服务器。
当变量用于 :proxy_pass
location /name/ {
proxy_pass http://127.0.0.1$request_uri;
}
在这种情况下,如果在指令中指定了 URI,则按原样将其传递到服务器,从而替换原始请求 URI。