nginx反向代理配置问题

A>B的中转转发
实现访问A:8090/tgzxhd/xxx 转发到B本地:8888/xxxxxxx

server {
    listen 8090;
    server_name A的公网IP;

    location /tgzxhd {
        proxy_pass http://B的内网IP:8080/tgzxhd/;
        proxy_redirect default;
        proxy_set_header Host $host:$server_port;
        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_connect_timeout 30s;
        proxy_send_timeout 60s;
        proxy_read_timeout 60s;
    }
}
server {
    listen 8080;
    server_name localhost;

    location /tgzxhd {
        proxy_pass http://127.0.0.1:8888/;
        proxy_redirect default;  # B用default,极简
        proxy_set_header Host $host:$server_port;  # 必须配
        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;
    }

    # 保留B原有8080根路径配置
}

两条避免返回3XX重定向问题以及反向代理必加的传递真实请求的问题

        proxy_redirect default;
        proxy_set_header Host $host:$server_port;
        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;
posted @ 2025-11-25 15:25  开心burukku  阅读(0)  评论(0)    收藏  举报