我在为 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 地址。