Итак, у меня есть приложение Django, работающее под управлением Ubuntu. У меня есть nginx и Gunicorn, и я пытаюсь настроить https с помощью Let's Encrypt, но продолжаю получать сообщение об ошибке «Сайт недоступен».
Вот мой nginx.conf:
upstream Tutorial2_prod{
server unix:/var/test/proiect/Tutorial2.sock fail_timeout=0;
}
server {
server_name juristnet.ro www.juristnet.ro;
listen 443; # <-
ssl on; # <-
ssl_certificate /etc/letsencrypt/live/juristnet.ro/fullchain.pem; # <-
ssl_certificate_key /etc/letsencrypt/live/juristnet.ro/privkey.pem; # <-
ssl_protocols TLSv1 TLSv1.1 TLSv1.2;
location = /favicon.ico { access_log off; log_not_found off;
alias /var/test/proiect/favicon.ico;
}
location /static/ {
autoindex on;
root /var/test/proiect;
}
location /assets/ {
autoindex on;
alias /var/test/proiect/assets/;
}
location /.well-known/ {
autoindex on;
allow all;
alias /var/test/proiect/.well-known/;
}
location / {
include /etc/nginx/fastcgi_params;
proxy_set_header X-Forwarded-Proto $scheme;
proxy_pass http://unix:/var/test/proiect/Tutorial2.sock;
proxy_set_header X-Real-IP $remote_addr;
proxy_set_header X-Forwarded-For $remote_addr;
}
}
server {
listen 80;
server_name www.juristnet.ro juristnet.ro;
return 301 https://juristnet.ro$request_uri;
}
Выход netstat -an | grep 443
tcp 0 0 0.0.0.0:443 0.0.0.0:* LISTEN
tcp 0 36 46.101.111.197:22 81.196.30.196:44356 ESTABLISHED
Файл конфигурации Gunicorn:
description "Gunicorn application server handling juristnet"
start on runlevel [2345]
stop on runlevel [!2345]
respawn
setuid admin
setgid root
chdir /var/test/proiect
exec /var/test/proiect/jurist/bin/gunicorn --workers 3 --bind unix:/var/test/proiect/Tutorial2.sock Tutorial2.wsgi:application
Журналы ошибок понятны. Nginx -t не возвращает ошибок. Я не могу понять, что происходит, я думаю, это может быть вызвано proxy_pass в nginx conf. Домен правильно перенаправлен на https://example.com, но ничего не показывает. Просто ошибка отказа в подключении. Любая помощь будет оценена, спасибо!
Вы мало указываете на вызов Let's Encrypt, но я предполагаю, что это webroot. В этом случае вам нужно обслуживать задачи через порт 80, поэтому вам нужно иметь блок местоположения для .well-known
вместо универсального перенаправления.
Возможно, запуск nginx и процесса Gunicorn от имени одного и того же пользователя и группы может дать результаты.
Указав пользователя и группу в nginx.conf, указав:
user username groupname