【发布时间】:2011-12-15 16:59:47
【问题描述】:
我正在尝试在 centos6 服务器上的 nginx + gunicorn 上设置 django(防火墙已关闭,selinux 已禁用)。该项目在服务器上本地运行(测试在 127.0.0.1:8221 上运行 gunicorn),但不在整个网络上运行。该项目应该可以从子域 project.mydomain.com
访问项目本身位于服务器 centos6.mydomain.com 上,dns 服务器是 main.mydomain.com
项目的ngnix conf:
upstream project {
server 127.0.0.1:8221 fail_timeout=0;
}
server {
listen 80;
server_name project.mydomain.com;
access_log /var/log/nginx/project.mydomain.com.log;
error_log /var/log/nginx/project.mydomain.com.log;
root /home/USER/djangosites/project;
location / {
proxy_set_header Host $host;
if (!-f $request_filename){
proxy_pass http://project;
break;
}
}
location /media {
alias /home/USER/djangosites/project/media;
}
location /static {
alias /home/USER/djangosites/project/static;
}
}
nginx conf 用于 centos6(工作)
server {
listen 80 default_server;
server_name centos6.mydomain.com;
access_log /var/log/nginx/centos6.mydomain.com.access.log main;
error_log /var/log/nginx/centos6.mydomain.com.error.log;
location / {
root /var/www/centos6.mydomain.com;
index index.html;
}
}
gunicorn conf
import multiprocessing
bind = "127.0.0.1:8221"
logfile = "/home/USER/djangosites/project/gunicorn.log"
workers = multiprocessing.cpu_count() * 2 + 1
我最好给与 centos6.mydomain.com 不同的项目一个新的 ip(到外部),或者我可以使用具有不同本地端口的相同 ip?
那我应该如何在 main.mydomain.com 上配置 hosts.db 呢?
centos6 A xxx.xxx.xxx.220
project A xxx.xxx.xxx.221
或
centos6 A xxx.xxx.xxx.220
project A xxx.xxx.xxx.220:8221
或
centos6 A xxx.xxx.xxx.220
project CNAME centos6
我更倾向于提供一个新的 ip,因为一切都在 m0n0wall 后面,所以一个新的 ip 可能更容易管理。
所以基本上,我猜我的项目的 nginx conf 是有缺陷的。我该怎么办?
【问题讨论】:
-
为什么不首先将 nginx 指向一个带有 index.html 的空目录,然后看看它是否提供服务来排除 nginx。一旦你有了这个工作,你就会知道这是一个 gunicorn 问题,然后是一个应用程序问题。只要它是运行 nginx 的机器的 IP,您输入的 IP 无关紧要。您看到了什么错误?
-
@pastylegs 因为我可以在本地访问该站点(使用 curl 测试)"curl 127.0.0.1:8221" 并且 nginx 可以很好地为服务器提供主要静态站点(请参阅我的 centos6 nginx conf) 我仍然猜测 nginx 和 gunicorn 之间的某些东西搞砸了。这排除了 gunicorn 无法在 127.0.0.1:8221 或其他任何地方运行我的应用程序。所以应用程序运行得很好,所以没有问题。关于错误...使用 curl 我只是得到 "curl: (7) could not connect to host"
-
只是编辑项目nginx conf,添加上游
标签: django nginx subdomain gunicorn