如何为动态子域配置nginx并处理反向代理?

How to configure nginx for dynamic sub domain and handle reverse proxy?

我正在使用以下 nginx 设置:

server {

    listen       80;
    server_name localhost *.localhost ;


    access_log off;

    location /static/
   {
    autoindex on;
   alias /var/www/machax/static/;
    }

    location / {
            proxy_pass http://127.0.0.1:8001;
            proxy_set_header X-Forwarded-Host $proxy_add_x_forwarded_for ;
            proxy_set_header X-Real-IP $remote_addr;
            add_header P3P 'CP="ALL DSP COR PSAa PSDa OUR NOR ONL UNI COM NAV"';
    }
}

但问题在于它检测主机为 127.0.0.1:8001 而不是 beta.localhost 或任何其他子域。只是为了测试,我尝试将以下内容硬编码为 proxy_set_header X-Forwarded-Host beta.localhost ; 并且成功了。有什么办法可以将子域动态附加到 proxy_set_header X-Forwarded-Host?

谢谢。

$host built in var 应该包含当前请求的主机。试试这个:

proxy_set_header X-Forwarded-Host $host;