当我运行wsgiDjango项目+Nginx+Gunicorn时,显示Nginx的“欢迎”消息

2024-04-16 17:57:45 发布

您现在位置:Python中文网/ 问答频道 /正文

我是Django的初学者,我已经完成了我的第一个项目。 我在Digital Ocean有一个Ubuntu服务器,我做了以下工作:

我的project nginx配置文件:

server {
server_name domain.com;

access_log off;

location /static/ {
    alias /opt/myenv/static/;
}

location / {
    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"';
}

我的项目位于/opt/myenv/myenv/

当我执行gunicorn myproject.wsgi时,它看起来像在运行

Listening at: http://127.0.0.1:8000 (1481)

但是当我访问我的IP时,我只看到一条来自Nginx的欢迎信息。 发生了什么事? (对不起,我的英语不好)


Tags: 项目djangonameiphttpserverstaticlocation
1条回答
网友
1楼 · 发布于 2024-04-16 17:57:45

我不能评论(代表点),所以将张贴在这里。你知道吗

  1. 你让Gunicorn绑定到:8000,但让Nginx查看:8001
  2. 您是否将此配置置于“可用站点”和“已启用站点”的符号链接中,然后从“已启用站点”中删除“默认值”?(如果它表示欢迎,我想不会)
  3. 我看不出你在指导Nginx听什么:

    server {
            listen 80 default_server;
            listen [::]:80;
            ...
    

有什么理由不使用unix sock设置Gunicorn并将Nginx配置成这样吗?这是一个典型的配置:

server {
    listen 80;
    server_name server_domain_or_IP;

    location = /favicon.ico { access_log off; log_not_found off; }
    location /static/ {
        root /home/user/myproject;
    }

    location / {
        include proxy_params;
        proxy_pass http://unix:/home/user/myproject/myproject.sock;
    }
}

相关问题 更多 >