使用 nginx 的四层代理监听 443 端口,反代后端 6443 端口站点。
通过http2 可以正常获取到客户端 IP ,通过 h3quic 连接则无法获取到真实的客户端 IP ,只能获取到 127.0.0.1 。
请问各位大佬,在保持使用四层反代的前提下,如何配置可以通过quic 获取到客户端 IP 。
使用 quic 连接获取到的 IP
REMOTE_ADDR: 127.0.0.1
HTTP_CLIENT_IP: 未设置
HTTP_X_FORWARDED_FOR: 未设置
HTTP_X_REAL_IP: 未设置
HTTP_FORWARDED: 未设置
HTTP_FORWARDED_FOR: 未设置
HTTP_X_FORWARDED: 未设置
四层 stream 配置
map $ssl_preread_server_name $name {
default default_backend;
}
upstream default_backend {
server 127.0.0.1:6443; # 站点
}
server {
listen 443 reuseport;
listen 443 udp reuseport;
proxy_pass $name;
ssl_preread on;
proxy_protocol on;
}
站点配置
server
{
listen 80;
listen 6443 ssl proxy_protocol ;
listen 6443 quic reuseport;
http2 on;
server_name abc.com www.abc.com;
index index.php index.html;
root /wwwroot/abc.com;
set_real_ip_from 127.0.0.1;
real_ip_header proxy_protocol;
...
}
|