我有一个带有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
谢谢!
答案 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)