proxy_set_header Connection "";这个配置有什么优点
时间: 2023-04-10 19:00:59 浏览: 57
这个配置可以让 Nginx 在转发请求时,不会将客户端的 Connection 头信息传递给后端服务器,从而避免了一些可能出现的问题,比如后端服务器无法正确处理 Connection 头信息,或者客户端与后端服务器之间的连接被错误地关闭。这样可以提高系统的稳定性和安全性。
相关问题
proxy_set_header X-Forwarded-Scheme https; proxy_set_header Upgrade $http_upgrade; proxy_set_header Connection $http_connection; proxy_set_header Port $proxy_port;
这是 Nginx 反向代理常用的一些 `proxy_set_header` 指令,用于设置 HTTP 请求头中的一些信息。具体解释如下:
- `proxy_set_header X-Forwarded-Scheme https;`:用于设置 `X-Forwarded-Scheme` 请求头字段,它表示客户端实际访问的协议,例如 HTTP 或 HTTPS。在反向代理中,当 Nginx 作为 HTTPS 网站的反向代理时,需要设置此字段为 HTTPS,以便后端服务器能够正确判断协议类型。如果没有设置此字段,后端服务器可能会将所有请求都当作 HTTP 请求处理,导致一些问题。
- `proxy_set_header Upgrade $http_upgrade;`:用于设置 `Upgrade` 请求头字段,它表示客户端是否支持升级协议。在 WebSocket 连接中,客户端会发送一个 `Upgrade` 请求头来请求升级协议。如果代理服务器不支持升级协议,需要将此请求头转发给后端服务器,让后端服务器来处理。
- `proxy_set_header Connection $http_connection;`:用于设置 `Connection` 请求头字段,它表示客户端想要使用的连接类型。在 HTTP/1.1 中,客户端会默认使用持久连接,即 `Connection: keep-alive`。在反向代理中,需要将此请求头转发给后端服务器,以便后端服务器能够正确处理连接类型。
- `proxy_set_header Port $proxy_port;`:用于设置 `Port` 请求头字段,它表示客户端请求的端口号。在反向代理中,当 Nginx 作为 HTTPS 网站的反向代理时,需要将此字段设置为 443,以便后端服务器能够正确判断端口号。如果没有设置此字段,后端服务器可能会将所有请求都当作 80 端口的请求处理,导致一些问题。
upstream fsapiBackend { server 10.20.1.72:8082; server 10.20.1.72:8082 max_fails=10 fail_timeout=30s backup; } upstream fsbulkapiBackend { server 10.20.1.72:8082; } upstream ssapiBackend { server 10.20.1.72:8084; } upstream csapiBackend { server 10.20.1.72:9095; } upstream activityBackend { server 10.20.1.72:8094; } server { listen 80; listen 443 ssl http2; server_name mxapi.hckcooler.com; ssl_certificate /usr/local/openresty/nginx/ssl/mxapi.hckcooler.com/mxapi.hckcooler.com_chain.crt; ssl_certificate_key /usr/local/openresty/nginx/ssl/mxapi.hckcooler.com/mxapi.hckcooler.com_key.key; ssl_session_timeout 5m; ssl_protocols TLSv1 TLSv1.1 TLSv1.2; ssl_ciphers EECDH+ECDSA+AES128:EECDH+aRSA+AES128:RSA+AES128:!aNULL:!MD5:!RC4; ssl_prefer_server_ciphers on; ssl_stapling on; ssl_stapling_verify on; ssl_trusted_certificate /usr/local/openresty/nginx/ssl/mxapi.hckcooler.com/mxapi.hckcooler.com_chain.crt; location /fs/ { proxy_pass http://fsapiBackend/; proxy_set_header Host $host; proxy_set_header X-Real-IP $remote_addr; proxy_set_header X-Forwarded-For $proxy_add_x_forwarded_for; proxy_set_header X-Forwarded-Proto $scheme; proxy_http_version 1.1; proxy_set_header Connection ""; } location =/fs/v2/mails/deliver { proxy_pass http://fsapiBackend/v2/mails/deliver; proxy_set_header Host $host; proxy_set_header X-Real-IP $remote_addr; proxy_set_header X-Forwarded-For $proxy_add_x_forwarded_for; proxy_set_header X-Forwarded-Proto $scheme; proxy_http_version 1.1; proxy_set_header Connection ""; access_by_lua_file ./app/mailLimit.lua; } location /fsbulk/ { proxy_pass http://fsbulkapiBackend/; proxy_set_header Host $host; proxy_set_header X-Real-IP $remote_addr; proxy_set_header X-Forwarded-For $proxy_add_x_forwarded_for; proxy_set_header X-Forwarded-Proto $scheme; proxy_http_version 1.1; proxy_set_header Connection ""; } location /ss/ { proxy_pass http://ssapiBackend/; proxy_set_header Host $host; proxy_set_header X-Real-IP $remote_addr; proxy_set_header X-Forwarded-For $proxy_add_x_forwarded_for; proxy_set_header X-Forwarded-Proto $scheme; proxy_http_version 1.1; proxy_set_header Connection ""; } location /approval/ { proxy_pass http://approvalapiBackend/; proxy_set_header Host $host; proxy_set_header X-Real-IP $remote_addr; proxy_set_header X-Forwarded-For $proxy_add_x_forwarded_for; proxy_set_header X-Forwarded-Proto $scheme; proxy_http_version 1.1; proxy_set_header Connection ""; } location /job/ { proxy_pass http://jobapiBackend/; proxy_set_header Host $host; proxy_set_header X-Real-IP $remote_addr; proxy_set_header X-Forwarded-For $proxy_add_x_forwarded_for; proxy_set_header X-Forwarded-Proto $scheme; proxy_http_version 1.1; proxy_set_header Connection ""; } }中,mxapi.hckcooler.com代理的是哪个服务
在给出的 Nginx 配置中,`mxapi.hckcooler.com` 代理了 `fsapiBackend` 这个服务。可以看到以下配置:
```nginx
location /fs/ {
proxy_pass http://fsapiBackend/;
...
}
location =/fs/v2/mails/deliver {
proxy_pass http://fsapiBackend/v2/mails/deliver;
...
}
```
这些配置指定了请求路径以及对应的代理后端,都是指向 `fsapiBackend`。因此,`mxapi.hckcooler.com` 代理的是 `fsapiBackend` 服务。