nginx_请求头
配置内容
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
allow-backend-server-header: "true"
compute-full-forwarded-for: "true"
enable-real-ip: "true"
enable-underscores-in-headers: "true"
forwarded-for-header: X-Forwarded-For
generate-request-id: "true"
ignore-invalid-headers: "true"
log-format-upstream: remoteaddr−[remoteaddr−[remote_addr] - remoteuser[remoteuser[time_local]
"$request" $status bodybytessent"bodybytessent"http_referer" "$http_user_agent" $request_length
requesttime[requesttime[proxy_upstream_name] $upstream_addr $upstream_response_length
$upstream_response_time $upstream_status $req_id host[host[proxy_alternative_upstream_name]
max-worker-connections: "65536"
proxy-body-size: 200m
proxy-connect-timeout: "10"
proxy-real-ip-cidr: 100.64.0.0/10
reuse-port: "true"
server-tokens: "false"
ssl-redirect: "false"
upstream-keepalive-timeout: "900"
use-forwarded-headers: "true"
use-proxy-protocol: "false"
worker-cpu-affinity: auto
=====================================================================
这些配置是针对 Nginx 的一些常用配置项。下面是各个配置项的解释:
allow-backend-server-header: 是否允许后端服务器返回 Server 头信息。
compute-full-forwarded-for: 是否计算客户端的真实 IP 地址(如果请求经过了代理服务器)。
enable-real-ip: 是否启用 real_ip 模块,用于获取客户端的真实 IP 地址。
enable-underscores-in-headers: 是否允许在请求头中使用下划线字符。
forwarded-for-header: 用于指定 X-Forwarded-For 头信息的名称。
generate-request-id: 是否生成请求 ID。
ignore-invalid-headers: 是否忽略无效的请求头信息。
log-format-upstream: 日志格式,用于记录代理请求的详细信息。
max-worker-connections: 工作进程的最大连接数。
proxy-body-size: 代理请求体的最大大小限制。
proxy-connect-timeout: 代理连接超时时间。
proxy-real-ip-cidr: 用于指定哪些 IP 地址可以被视为真实 IP 地址。
reuse-port: 是否启用端口复用。
server-tokens: 是否在响应头中显示服务器的版本信息。
ssl-redirect: 是否启用 SSL 重定向。
upstream-keepalive-timeout: 代理连接的 Keep-Alive 超时时间。
use-forwarded-headers: 是否使用 X-Forwarded-* 头信息。
use-proxy-protocol: 是否启用代理协议(Proxy Protocol)。
worker-cpu-affinity: 工作进程的 CPU 亲和性。
这些配置项可以根据实际情况进行修改,以满足您的需求。请注意,这些配置项可能会影响 Nginx 的性能和安全性,因此请务必谨慎配置。
请求头配置
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
proxy_set_header Host $http_host;
proxy_set_header X-Forwarded-Proto $scheme;
proxy_set_header X-Forwarded-Port $server_port;
proxy_set_header X-Real-IP $remote_addr;
proxy_set_header X-Forwarded-For $proxy_add_x_forwarded_for;
proxy_http_version 1.1;
proxy_set_header Upgrade $http_upgrade;
proxy_set_header Connection $connection_upgrade;
proxy_set_header X-NginX-Proxy true;
add_header h $scheme;
=====================================================================
这些配置是用于 Nginx 反向代理的,用于将客户端请求转发到后端服务器上,并将一些请求头信息添加到转发的请求中。下面是各个配置项的解释:
proxy_set_header Host $http_host;: 设置代理请求的 Host 头信息为客户端请求的 Host 头信息。
proxy_set_header X-Forwarded-Proto $scheme;: 设置代理请求的 X-Forwarded-Proto 头信息为客户端请求的协议(HTTP 或 HTTPS)。
proxy_set_header X-Forwarded-Port $server_port;: 设置代理请求的 X-Forwarded-Port 头信息为客户端请求的端口号。
proxy_set_header X-Real-IP $remote_addr;: 设置代理请求的 X-Real-IP 头信息为客户端的真实 IP 地址。
proxy_set_header X-Forwarded-For $proxy_add_x_forwarded_for;: 设置代理请求的 X-Forwarded-For 头信息,用于记录请求经过的代理服务器的 IP 地址。
proxy_http_version 1.1;: 指定代理请求的 HTTP 版本为 1.1。
proxy_set_header Upgrade $http_upgrade;: 设置代理请求的 Upgrade 头信息,用于启用 WebSocket。
proxy_set_header Connection $connection_upgrade;: 设置代理请求的 Connection 头信息,用于启用 WebSocket。
proxy_set_header X-NginX-Proxy true;: 设置一个代理头,将X-NginX-Proxy设置为true。这个头通常用于区分直接请求和通过代理服务器请求的请求。当Nginx作为反向代理服务器时,它可以将此头添加到传出请求中,以便向后端服务器表明请求是从代理服务器发出的。这在一些应用场景中非常有用,例如负载均衡、安全性等
add_header h $scheme;: 响应中添加一个名为h的头,其值为请求协议(http或https)
这些配置项可以根据实际情况进行修改,以满足您的需求。请注意,在使用 Nginx 反向代理时,需要特别注意安全性和性能问题,并根据实际情况进行配置。
本文由作者按照
CC BY 4.0
进行授权