Выпуск Nginx Gunicorn?Отсутствие реакции - PullRequest
0 голосов
/ 18 октября 2018

Я пытаюсь развернуть проект Django на сервере AWS Lightsail.

Я в основном следовал этому руководству .Я добавил несколько протоколов SSL для дополнительной безопасности.

Этот проект отлично работает на моем Ubuntu 18.04 VirtualBox с точно такой же настройкой и точно такими же компонентами, с теми же протоколами SSL.Однако на Lightsail он не отвечает на запрос браузера.Он перенаправит меня на https, но потом умрет ... Я не смог определить ошибки ни в одном из журналов.Что заставляет меня догадываться

/ etc / systemd / system / webrock.socket:

[Unit]
Description=gunicorn socket

[Socket]
ListenStream=/run/webrock.sock

[Install]
WantedBy=sockets.target

/ etc / systemd / system / webrock.service:

[Unit]
Description=gunicorn daemon
Requires=webrock.socket
After=network.target

[Service]
User=ubuntu
Group=www-data
WorkingDirectory=/home/ubuntu/django/webrock
ExecStart=/home/ubuntu/django/webrock/venv/bin/gunicorn \
      --access-logfile - \
      --workers 3 \
      --bind unix:/run/webrock.sock \
      core.wsgi:application

[Install]
WantedBy=multi-user.target

/ etc / nginx / sites-available / webrock:

server {
        listen 443 ssl http2;
        listen [::]:443 ssl http2 ipv6only=on;

        include snippets/signed.conf; # path to certs
        include snippets/params.conf; # cert related params


        index index.html index.htm index.nginx-debian.html;

        server_name mydomain.com www.mydomain.com; #changed this line by replacing domain name with dummy


        location = /favicon.ico {access_log off; log_not_found off;}
        location /static/ {
                root /home/ubuntu/django/webrock;
        }
        location / {
                include proxy_params;
                proxy_pass http://unix:/run/webrock.sock;
                try_files $uri $uri/ =404;
        }

}
server {
        listen 80;
        listen [::]:80;

        server_name mydomain.com www.mydomain.com; #changed this line by replacing domain name with dummy

        return 302 https://$server_name$request_uri;

}

Я оставил файл по умолчанию для nginx один.Теперь каждый раз, когда я захожу на страницу, набирая IP-адрес сервера, я вижу страницу по умолчанию nginx.Когда я использую доменное имя, меня перенаправляют на HTTPS, но потом ... ничего.Я предполагаю, что между gunicorn и nginx есть какой-то сбой, но я не достаточно опытен, чтобы там устранять неполадки или решать их.

Как я упоминал выше, точно такая же установка работает безупречно в аналогичной системе вмой VirtualBox.

Я очень благодарен за предложения и подсказки.

Обновление: Я отключил часть перенаправления в nginx и заставил ее слушать порт 80. Он работал,Сейчас я пытаюсь выяснить, как ввести HTTP2 и порт 443 обратно в настройку.Кстати, мой UFW выглядит так:

enter image description here

1 Ответ

0 голосов
/ 19 октября 2018

После двух дней, чтобы решить эту проблему, вот решение.

Таким образом, у Amazon Lightsail есть дополнительный брандмауэр перед UFW на реальном сервере.Вы можете получить доступ к брандмауэру Lightsail, нажав ...

Меню вашего экземпляра> Управление> Сеть

Вы увидите суммарную сеть для вашего экземпляра, такую ​​как IP-адреса, Брандмауэр, Loadbalancer.В этом брандмауэре вам нужно добавить дополнительный порт (в моем случае HTTPS).

Почему они ставят дополнительный брандмауэр перед UFW, побеждает меня.

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...