gunicorn和Django项目

时间:2018-11-30 11:25:21

标签: django gunicorn

我刚刚遵循了Digital Ocean的指示。之后:

 sudo gunicorn --bind 0.0.0.0:8000 nameofmyproject.wsgi:application

绑定Gunicorn我的站点不可用。我试图将端口从8000更改为80(我输入mysite.com:8000却无法正常工作...),然后该站点可访问,但没有任何静态文件(如CSS)和图像。不知道为什么会这样。

sudo ss -naptu state listening | grep :80

输出为:

tcp    0      128            *:8000                       *:*                   users:(("gunicorn",pid=18461,fd=5),("gunicorn",pid=18455,fd=5))

我该怎么办?这是我的第一次部署,因此我非常感谢非常简单的说明...

2 个答案:

答案 0 :(得分:0)

当您绑定到http://server_domain_or_IP:8000时,该站点将在端口8000上可用,例如manage.py runserver(就像您在本教程前面尝试gunicorn时一样。

  

该站点可以访问,但没有任何静态文件,例如CSS和图像

本教程说明{{1}}不处理静态文件。稍后将由nginx完成。您正在看到预期的行为,因此可以继续学习本教程。

接下来,本教程将gunicorn更改为使用套接字文件而不是端口8000,然后最终将Nginx配置为使用套接字文件将传递代理到gunicorn。此时,您将看到您的站点,包括静态文件。

答案 1 :(得分:0)

manage.py runserver

它仅用于开发,如果要在生产环境中运行它,则必须使用nginx和gunicorn之类的东西

/etc/systemd/system/gunicorn.service

[Unit]
Description=gunicorn daemon
After=network.target

[Service]
User=vbaddict
Group=vbaddict
WorkingDirectory=/...../
ExecStart=/...../bin/gunicorn --bind=127.0.0.1 --timeout 120 --workers 1 --bind unix:/.../application.sock project.wsgi:application

[Install]
WantedBy=multi-user.target

/etc/nginx/conf.d/site.conf

server {
    listen 80;
    server_name carius.vbaddict.net;
    access_log  /var/log/.../.log;

    location / {
        include proxy_params;
        proxy_pass http://unix:/home/..../application.sock;
        proxy_connect_timeout       600;
        proxy_send_timeout          600;
        proxy_read_timeout          600;
        send_timeout                600;
    }
}

这是一个小例子

它需要一个静态文件,只需运行:

python manage.py collectstatic