Nginx/Apache 服务错误的网站

Posted

技术标签:

【中文标题】Nginx/Apache 服务错误的网站【英文标题】:Nginx/Apache serving wrong website 【发布时间】:2011-05-24 09:51:44 【问题描述】:

我将 nginx 作为 apache 的反向代理,为 django 站点提供静态文件。我在服务器上有 3 个 django 站点正在运行(并且已经运行了一年多),但是当我尝试添加一个新站点时,nginx 或 apache 正在为一个已经存在的站点提供服务。

例如站点 A.com 和 B.com 已经在服务器上。我正在尝试添加 C.com。我复制了 nginx/apache 配置文件,正确链接它们并正确更改了其中的设置,成功重新启动了 nginx 和 apache,没有错误,但是当我尝试访问 C.com 时,它会加载 A.com! Rackspace 已确认 DNS 是准确的。我查看了日志文件,没有明显的运气。我假设这是 apache,因为它实际上是在为 A.com 渲染 django 代码,或者 nginx 是否会给 apache 提供错误的指令?

我还尝试取消链接指向新 django 代码(“C.com”,并且正在工作!)的工作站点之一,然后在 nginx 和 apache 中重新链接(添加到启用的站点),它也是现在不行了!它只是重定向或默认到 A.com。

除了 apache/nginx 默认值之外,我一直在搜索谷歌,但没有任何关于如何解决这个问题的消息!任何帮助或指导将不胜感激!

这里是示例 nginx 和 apache 配置文件:

nginx

server 

    listen 111.111.111.111:80;
    server_name mynewdomain.com;
    rewrite ^/(.*) http://www.mynewdomain.com/$1 permanent;


server 
    listen 111.111.111.111:80;
    server_name www.mynewdomain.com;

    location / 
        proxy_pass http://127.0.0.1:8080/;
        include /etc/nginx/proxy.conf;
    
    location /media 
        root /home/django/mynewdomain;
        expires 24h;
    

阿帕奇:

<VirtualHost 127.0.0.1:8080>
    ServerName www.mynewdomain.com
    ServerAlias mynewdomain.com *.mynewdomain.com

    <Directory /home/django/mynewdomain/>
        Order deny,allow
        Allow from all
    </Directory>

    Loglevel warn
    CustomLog /var/log/apache2/mynewdomain.com.access.log combined
    ErrorLog /var/log/apache2/mynewdomain.com.error.log

    WSGIDaemonProcess mynewdomain.com user=www-data group=www-data threads=25
    WSGIProcessGroup mynewdomain.com
    WSGIScriptAlias / /home/django/mynewdomain/apache/django.wsgi

</VirtualHost>

提前致谢。

【问题讨论】:

【参考方案1】:

您的 nginx 配置中缺少这样的一行,您可以将其放在 server 块中的任何位置:

proxy_set_header Host $host;

【讨论】:

以上是关于Nginx/Apache 服务错误的网站的主要内容,如果未能解决你的问题,请参考以下文章

nginx成为4月市占率最高的Web服务器

Web服务------Nginx网站服务(图文详解)

Nginx / Apache / WSGI / Django - 意外引发 500 错误(Nginx 上为 499)

Nginx+Apache动静分离部署

使用docker创建静态网站应用-多种方式

Nginx/Apache反向代理