如何让nginx将服务器头设置为上游的头?

tyg4sfes  于 2023-01-25  发布在  Nginx
关注(0)|答案(1)|浏览(201)

我在上游设置了一个非常具体的Server:标头,但是,当Nginx是反向代理时,它会设置自己的Server标头。例如,Server标头设置为Server: nginx/1.23.1。上游服务器标头是动态的,可以更改每个请求(例如:Server: gunicorn/19.4.5Server: gunicorn/20.0.4)。是否有办法将上游的Server报头传递到nginx,以便设置上游如何发送它?我知道有more_set_headers,但它将报头设置为静态值。我需要它们特别是动态的,基于上游proxy_pass如何设置它们。
示例配置:

http {
    log_format custom '{"http_ssl_ja3": "$http_ssl_ja3", "http_ssl_ja3_hash": "$http_ssl_ja3_hash", "remote_addr": "$remote_addr", "request": "$request"}';
    server {
        proxy_busy_buffers_size 512k;
        proxy_buffers 4 512k;
        proxy_buffer_size 256k
        listen                 0.0.0.0:8443 ssl;
        ssl_protocols          TLSv1.3 TLSv1.1 TLSv1.2;
        ssl_dhparam            /etc/nginx/dhparam.pem;
        ssl_prefer_server_ciphers   on;
        ssl_ciphers            'ECDHE-ECDSA-CHACHA20-POLY1305:ECDHE-ECDSA-AES128-GCM-SHA256:ECDHE-ECDSA-AES256-GCM-SHA384:ECDHE-RSA-AES256-GCM-SHA384';
        access_log             /dev/stdout custom;
        ssl_certificate_key    "redacted";
        ssl_certificate        "redacted";
        location = / {
            proxy_pass             http://localhost:8080;
        }
    }
}
cwxwcias

cwxwcias1#

我想明白了。你可以通过指定proxy_pass_header Server;来传递特定的头。现在正在代理正确的头。

相关问题