gunicorn and Django project



我刚刚按照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))

我能做什么?这是我的第一次部署,所以我非常感谢非常简单的说明。。。

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

然后网站是可访问的,但没有任何静态文件,如css和图像

本教程解释了gunicorn不处理静态文件。这将由nginx稍后完成。你看到了预期的行为,所以你可以继续学习教程。

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

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

最新更新