django + nginx + gunicorn - subdomain joy

时间:2011-10-26 12:44:34

标签: django nginx subdomain gunicorn

我正在尝试在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;
    }
}
centos6 (工作)

nginx conf

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吗? / p>

我应该如何在 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是有缺陷的。我该怎么办呢?

1 个答案:

答案 0 :(得分:2)

确定。搞定了:) main.mydomain.com上的 hosts.db

project   CNAME   centos6

gunicorn runnig on 127.0.0.1:8221 并按上述方式编辑了nginx conf。