Nginx/Apache 子域名问题

Nginx/Apache 子域名问题

我在为 clients.lipsmack.co.uk 设置子域名时遇到了一些问题。我已设置 DNS A 记录以指向我的 IP 地址,并为 nginx 和 apache 创建了代理和虚拟主机信息,但当我访问该地址时,我收到了“未找到服务器”的响应。

Nginx 配置如下:

upstream backend {
    server 127.0.0.1:8080;
}

server {
    listen 80;
    server_name clients.lipsmack.co.uk;

    location / {
        proxy_pass http://backend;
        include /etc/nginx/proxy.conf;
    }
}

Apache 文件内容如下:

<VirtualHost *:8080>
    ServerName clients.lipsmack.co.uk

    <Directory /path/to/wsgi/parent/dir/>
        Order deny,allow
        Deny from all
    </Directory>

    WSGIDaemonProcess clients.lipsmack.co.uk user=www-data group=www-data threads=25
    WSGIProcessGroup clients.lipsmack.co.uk

    WSGIScriptAlias / /path/to/wsgi/file/
</VirtualHost>

我真的不知道为什么它不起作用。有人能解释一下吗?

谢谢。

编辑: 这个问题似乎已经解决了,尽管我不知道如何解决。我将 A 记录更改为 CNAME,但没有任何效果,所以我又改回来了。重写配置文件几次后,它终于起作用了,尽管我很确定我没有做任何不同的事情。我很想听听大家对此的看法...

答案1

尝试这个配置:

location / {
    proxy_pass http://backend;
    proxy_set_header  Host       $host;
    include /etc/nginx/proxy.conf;
}

注意,添加的proxy_set_header Host $host内容会将主机头转发到 Apache

您可能还需要通过

proxy_set_header   X-Forwarded-For $remote_addr;

到 apache 然后处理它以获取用户的 IP 地址。

相关内容