我对Nginx + Gunicorn提供的Django应用程序有问题:在HTTP中配置它可以正常工作;使用“让我们加密”安装并请求SSL证书并更改配置后,对应用程序的请求超时。
这是我正在使用的配置:
套接字:
[Unit]
Description=Gunicorn socket
[Socket]
ListenStream=/run/gunicorn.sock
[Install]
WantedBy=sockets.target
系统服务:
[Unit]
Description=Gunicorn daemon
Requires=gunicorn.socket
After=network.target
[Service]
User=user
Group=user
WorkingDirectory=/var/www/application
ExecStart=/var/www/application/venv/bin/gunicorn \
--access-logfile - \
--workers 3 \
--bind unix:/run/gunicorn.sock \
DjangoApp.wsgi:application
[Install]
WantedBy=multi-user.target
Nginx配置:
upstream app_server {
server unix:/run/gunicorn.sock fail_timeout=0;
}
server {
listen 443 ssl;
server_name example.com;
access_log /var/log/nginx/example.access.log;
error_log /var/log/nginx/example.error.log;
location /static {
alias /var/www/application/static;
}
location / {
proxy_set_header X-Forwarded-For $proxy_add_x_forwarded_for;
proxy_set_header X-Forwarded-Proto $scheme;
proxy_set_header Host $http_host;
proxy_redirect off;
proxy_pass http://app_server;
}
ssl_certificate /etc/letsencrypt/live/example.com/fullchain.pem;
ssl_certificate_key /etc/letsencrypt/live/example.com/privkey.pem;
include /etc/letsencrypt/options-ssl-nginx.conf;
ssl_dhparam /etc/letsencrypt/ssl-dhparams.pem;
}
server {
listen 80;
server_name example.com;
return 301 https://$host$request_uri;
}
我还试图禁用防火墙,以为这可能是网络问题,但它总是给我同样的错误。
我已经阅读了其他几个答案,但没有一个能给我解决方案。
任何帮助都倍受赞赏。
谢谢。