【问题标题】:Nginx and two Django projectsNginx 和两个 Django 项目
【发布时间】:2014-06-20 17:58:06
【问题描述】:

我想在我的 VPS 中设置两个不同的 Django 项目 - 有两个不同的 Gunicorn 实例(两个不同的 virutalenvs)。第一个项目完美运行:

第一个项目的 Nginx:

server {
server_name 95.85.34.87;

access_log off;
    sendfile off;

location /static/ {
    root Lynx/lynx/lynx_static_files/;
}

location / {
    add_header Access-Control-Allow-Origin *;
    add_header Access-Control-Allow-Methods "GET,POST,OPTIONS";
    add_header         Access-Control-Allow-Headers   Content-Type;
    add_header         Access-Control-Max-Age         86400;
    proxy_pass http://127.0.0.1:8001;
    proxy_set_header X-Forwarded-Host $server_name;
    proxy_set_header X-Real-IP $remote_addr;
    add_header P3P 'CP="ALL DSP COR PSAa PSDa OUR NOR ONL UNI COM NAV"';
}
}

第一个项目的 Gunicorn:

gunicorn_django --bind localhost:8001

第二个项目的 Nginx:

server {
server_name 95.85.34.87:8002;

access_log off;
    sendfile off;

location /static/ {
    root Komodo/komodo/komodo_static_files/;
}

location / {
    add_header Access-Control-Allow-Origin *;
    add_header Access-Control-Allow-Methods "GET,POST,OPTIONS";
    add_header         Access-Control-Allow-Headers   Content-Type;
    add_header         Access-Control-Max-Age         86400;
    proxy_pass http://127.0.0.1:8002;
    proxy_set_header X-Forwarded-Host $server_name;
    proxy_set_header X-Real-IP $remote_addr;
    add_header P3P 'CP="ALL DSP COR PSAa PSDa OUR NOR ONL UNI COM NAV"';
}
}

第二个项目的 Gunicorn:

gunicorn_django --bind 95.85.34.87:8002

问题95.85.34.87 显示我的第一个带有静态文件的项目(一切正常),95.85.34.87:8002 也有效(Gunicorn 正在工作),但不幸的是 Nginx 不为此提供静态文件出于某种原因,第二个项目。我认为问题背后的原因是server_name 设置,但我不确定如何设置它以显示我的第二个项目的静态数据。

【问题讨论】:

  • 有错误吗? nginx 对第二个项目的静态文件有权限吗?
  • 嗨。不,var/log/nginx/error.log 文件没有显示错误。静态文件根本没有显示,我只是在尝试直接访问 .js 文件时收到 404 错误。我应该如何检查 nginx 是否有权限?
  • 404 出现在access.log 中,403 也是如此,如果 nginx 没有这些文件的权限,你会得到这样的结果。当您浏览您的网站时,为什么看不到您的浏览器检查器针对这些文件给出的错误?
  • 由于某种原因,access.log 文件不存在,但 error.log 向我展示了 2014/05/04 08:06:22 [emerg] 28989#0: bind() to 95.85.34.87:8002 failed (98: Address already in use)。我觉得nginx是不能听95.85.34.87:8002的,因为gunicorn是听95.85.34.87:8002的,emmm这能是真的吗?

标签: django nginx gunicorn


【解决方案1】:

我已经解决了我的问题。我刚刚将我的第二个项目的 Gunicicorn 实例绑定到 95.85.34.87,而不是 localhost:8002(与项目 1 相同,但端口不同)。

【讨论】:

    猜你喜欢
    • 2019-06-19
    • 2021-12-17
    • 2012-01-26
    • 2013-12-08
    • 2020-07-14
    • 1970-01-01
    • 2021-02-24
    • 1970-01-01
    • 1970-01-01
    相关资源
    最近更新 更多