准备工作. 安装 Gunicorn
pip install gunicorn
1. 使用配置文件
创建 gunicorn_conf.py
文件:
import multiprocessing
bind = "127.0.0.0:8001"
workers = multiprocessing.cpu_count() * 2 + 1
worker_class = "gthread"
threads = 4
max_requests = 1000
timeout = 30
keepalive = 2
accesslog = "/var/log/gunicorn/access.log"
errorlog = "/var/log/gunicorn/error.log"
然后运行:这是手动测试
gunicorn -c gunicorn_conf.py zhiliaoblog.wsgi:application
2. 结合 Nginx
Nginx 配置示例:
nginx
upstream django_app {
server 127.0.0.1:8001;
}
server {
listen 80;
server_name blog.larance.xyz;
location / {
proxy_pass http://django_app;
proxy_set_header X-Forwarded-For $proxy_add_x_forwarded_for;
proxy_set_header Host $host;
proxy_redirect off;
}
location /static/ {
alias /home/ubuntu/zhiliaoblog/static/;
}
location /media/ {
alias /home/ubuntu/zhiliaoblog/media/;
}
}
3. 创建 Supervisor 配置文件
/etc/supervisor/conf.d/zhiliaoblog.conf
:
[program:zhiliaoblog]
command=/home/ubuntu/zhiliaoblog/blog_env/bin/gunicorn -c /home/ubuntu/zhiliaoblog/gunicorn_conf.py zhiliaoblog.wsgi:application
directory=/home/ubuntu/zhiliaoblog
user=ubuntu
autostart=true
autorestart=true
startsecs=5
startretries=3
redirect_stderr=true
stdout_logfile=/var/log/supervisor/zhiliaoblog.log
environment=
DJANGO_SETTINGS_MODULE="zhiliaoblog.settings",
PATH="/home/ubuntu/zhiliaoblog/blog_env/bin:%(ENV_PATH)s",
PYTHONPATH="/home/ubuntu/zhiliaoblog"
启用并启动服务:
sudo supervisorctl reread
sudo supervisorctl update
sudo supervisorctl start zhiliaoblog