0
我目前正在通过https部署我的项目,但我遇到了一些问题。我有它与http一起工作,但是当我试图合并ssl它打破。我认为我错误地配置了我的nginx块中的gunicorn上游客户端,但我不确定。问题可以在我的gunicorn服务文件中的unix绑定中吗?我对gunicorn很新,所以我有点迷路。ssl与django gunicorn和nginx
这是我的配置如下。
Gunicorn:
[Unit]
Description=gunicorn daemon
After=network.target
[Service]
Environment=PYTHONHASHSEED=random
User=USER
Group=www-data
WorkingDirectory=/path/to/project
ExecStart=/path/to/project/project_env/bin/gunicorn --workers 3 --bind unix:/path/to/project/project.sock project.wsgi:application
[Install]
WantedBy=multi-user.target
Nginx的(工作-HTTP):
server {
listen 80 default_server;
listen [::]:80 default_server;
server_name server_domain;
location = /favicon.ico { access_log off; log_not_found off; }
location /static/ {
root /path/to/project;
}
location/{
include proxy_params;
proxy_pass http://unix:/path/to/project/project.sock;
}
}
Nginx的(HTTPS):
upstream server_prod {
server unix:/path/to/project/project.sock fail_timeout=0;
}
server {
listen 80 default_server;
listen [::]:80 default_server;
server_name server_domain;
}
server {
server_name server_domain;
listen 443;
ssl on;
ssl_certificate /etc/ssl/server_domain.crt;
ssl_certificate_key /etc/ssl/server_domain.key;
location /static/ {
root /path/to/project;
}
location/{
proxy_set_header X-Forwarded-For $proxy_add_x_forwarded_for;
proxy_set_header X-Forwarded-Proto https;
proxy_set_header Host $http_host;
proxy_redirect off;
if (!-f $request_filename) {
proxy_pass http://server_prod;
break;
}
}
}
嗨巴勃罗,谢谢你的回应。我已经尝试过这种配置,但我得到了和以前一样的结果。通过这个实现,我可以访问我的应用程序,但它不安全。当我尝试通过https:// domain_name访问我的应用程序时,出现此网站无法访问的错误。 – jdv12
请检查“listen 443 ssl;”的行是否在443之后显示ssl。 –