nginx前端服务器没有重定向到apache后端

时间:2013-09-03 09:54:33

标签: django apache redirect ubuntu nginx

我有一个带有nginx前端服务器和apache后端的Ubuntu 13.04虚拟机 服务django项目。 Apache本身在单独操作时似乎工作正常 来自nginx(反之亦然)。但看起来nginx没有传递请求 Apache在他们一起工作时。

在浏览器中输入my_host_name.com后,我得到nginx“欢迎......!”页, 但它应该是一个apache呈现的页面。

UPD:“欢迎...”页面仅在首次加载后出现,重新启动浏览器(chrome)后(缓存?),否则只返回空页( “此网页不可用 .......... 错误代码:ERR_CONNECTION_RESET ”)。当从主机操作系统访问_my_domain_name.com_时,我立即得到相同的错误页面。每次配置更改后,我都会重启两台服务器(以防万一)。

键入my_domain_name.com:8000会返回正确的apache响应(静态文件 除外)

经过一天的谷歌搜索仍然找不到什么问题。

我的服务器设置为:

文件:/ etc / nginx / proxy_params

proxy_redirect              off;
proxy_set_header Host $host;
proxy_set_header X-Forwarded-Host $host;
proxy_set_header X-Forwarded-Server $host;
proxy_set_header X-Real-IP $remote_addr;
proxy_set_header X-Forwarded-For $proxy_add_x_forwarded_for;
client_max_body_size        10m;
client_body_buffer_size     128k;
proxy_connect_timeout       90;
proxy_send_timeout          90;
proxy_read_timeout          90;
proxy_buffer_size           4k;
proxy_buffers               4 32k;
proxy_busy_buffers_size     64k;
proxy_temp_file_write_size  64k;

文件:/ etc / nginx / sites-available / my_domain_name

server {
    listen 80;
    server_name my_domain_name.com;
    location / {
        access_log /var/log/nginx/localhost.access.log;
        proxy_pass http://127.0.0.1:8000;
        include /etc/nginx/proxy_settings;
    }
    location /static/ {
        root /path/to/my/project/root;
    }
    location /media/{
        root /path/to/my/project/root;
    }
}

文件:/etc/apache2/sites-available/my_domain_name.conf

<VirtualHost *:8000>
    WSGIScriptAlias / /path/to/my/project/root/django.wsgi

    ServerName my_domain_name.com


    <Directory /path/to/my/project/root>
        Order allow,deny
        Allow from all
    </Directory>

    LogLevel warn

    CustomLog /var/log/apache2/access.log combined

    RPAFenable On
    RPAFsethostname On
    RPAFproxy_ips  192.168.137.10 127.0.0.1
</VirtualHost>

文件:/etc/apache2/ports.conf

NameVirtualHost *:8000
Listen 8000

文件:/ etc / hosts

192.168.137.10 my_domain_name.com
127.0.0.1      my_domain_name.com

谢谢!

1 个答案:

答案 0 :(得分:0)

我的Apache后端我的Nginx设置遇到了类似的问题,特别是在Apache发布重定向时:

/some-location => /some-location/

Nginx在端口80上运行,我在端口8000上的后端Apache和端口8000在301重定向中传递到客户端。

花了一些时间,但我能够让它发挥作用。以下是我必须做的事情:

location / {
   proxy_pass      http://127.0.0.1:8000;
   proxy_redirect  default;
   proxy_redirect  http://$host:8000/ http:/$host/;
   ... etc ..
}

Nginx和Apache虚拟服务器都使用相同的主机名(即mydomain.com)