Nginx:如何将主机头设置为所选服务器(负载平衡)

Muh*_*mer 12 nginx

我有一个用作负载平衡器的站点。站点 A。

我有其他网站只能有一个域。所以如果我只是重定向到他们,它会说找不到主机名。

因此,如果我手动将标题设置为某些内容,则只会显示该站点。

如何设置proxy_set_header Host xxxx为选择的服务器地址。这样,每个重新路由请求将具有不同且适当的主机标头。

如果我的其他 2 个站点可以基于 url 而不是主机头工作,那不会有问题。

worker_processes  1;

error_log  logs/error.log;
error_log  logs/error.log  notice;
error_log  logs/error.log  info;
error_log  logs/error.log  debug;

pid        logs/nginx.pid;


events {
    worker_connections  1024;
}


http {
    upstream myapp1 {
        #server localhost:3333;
        server www.asd.com:80;
    }

    server {
        listen 80;

        location / {
            proxy_set_header Host            $upstream_addr;  // should become somehow www.asd.com right now this code doesn't work
            proxy_set_header X-Forwarded-For $remote_addr;
            proxy_pass http://myapp1;
        }
    }
}
Run Code Online (Sandbox Code Playgroud)

Jef*_*ong 8

您需要将标头设置为传入的主机变量,如此处所述

proxy_set_header Host $host;
Run Code Online (Sandbox Code Playgroud)