upstream块定义了一个上游服务器的集群,便于反向代理中的proxy_pass使用
- upstream backend {
- server backend1.example.com;
- server backend2.example.com;
- server backend3.example.com;
- }
- server {
- location / {
- proxy_pass http://backend;
- }
- }
- 语法: server name[parameters];
- 配置块: upstream
- 语法: ip_hash;
- 配置块 upstream
变量名 | 意义 |
$upstream_addr | 处理请求的上游服务器地址 |
$upstream_cache_statues | 表示是否命中缓存,取值范围:MISS、EXPIRED、UPDATING、STALE、HIT |
$upstream_statues | 上游服务器返回的响应中的HTTP响应码 |
$upstream_response_time | 上游服务器的响应时间,精度到毫秒 |
$upstream_http_$HEADER | HTTP的头部,如upstream http host |
- 语法: proxy_pass URL;
- 配置块: location、if
proxy_pass http://localhost:8000/uri/
proxy_pass http://unix:/path/to/backend.socket:/uri/
- 语法: proxy_method method;
- 配置块: http、server、location
proxy_method POST;
- 语法: proxy_hide_header the_header;
- 配置块: http、server、location
Nginx会将上游服务器的响应转发给客户端,但默认不会转发以下HTTP头部字段:Date、Server、X-Pad和X-Accel-*
- proxy_hide_header Cache-Control;
- proxy_hide_header MicrosoftOfficeWebServer;
-
- 语法: proxy_pass_header the_header;
- 配置块: http、server、location
- 语法: proxy_pass_request_body on|off;
- 默认: proxy_pass_request_body on;
- 配置块: http、server、location
-
- 语法: proxy_pass_request_headers on|off;
- 默认: proxy_pass_request_headers on;
- 配置块: http、server、location
作用为确定是否转发HTTP头部和包体
- 语法: proxy_redirect[default|off|redirect replacement];
- 默认: proxy_redirect default;
- 配置块: http、server、location
- proxy_redirect http://localhost:8000/two/
- http://frontendone;
- proxy_redirect http://localhost:8000/
- http://$host:$server_port/;
proxy_redirect http://localhost:8000/two/one
- ocation one {
- proxy_pass http://upstream:port/two/
- ;
- proxy_redirect default;
-
- }
- location one {
- proxy_pass http://upstream:port/two/
- ;
- proxy_redirect http://upstream:port/two/one
- ;
- }
- proxy_next_upstream[error|timeout|invalid_header|http_500|http_502|http_503|http_504|http_404|off];
- 默认: proxy_next_upstream error timeout;
- ·error:当向上游服务器发起连接、发送请求、读取响应时出错。
- ·timeout:发送请求或读取响应时发生超时。
- ·invalid_header:上游服务器发送的响应是不合法的。
- ·http_500:上游服务器返回的HTTP响应码是500。
- ·http_502:上游服务器返回的HTTP响应码是502。
- ·http_503:上游服务器返回的HTTP响应码是503。
- ·http_504:上游服务器返回的HTTP响应码是504。
- ·http_404:上游服务器返回的HTTP响应码是404。
- ·off:关闭proxy_next_upstream功能—出错就选择另一台上游服务器再次转发