Попытка развернуть приложение django на экземпляре AWS EC2 с помощью Gunicorn и Nginx

Я пытаюсь развернуть приложение django на AWS EC2, а также использовать gunicorn и Nginx в процессе, я следовал этому руководству link. Я не уверен, что идет не так, это первый раз, когда я использую AWS EC2, когда я пытаюсь запустить IP-адрес экземпляра, он возвращается как:

"не удается открыть страницу, потому что safari не может установить безопасное соединение с сервером"

в моей консоли aws 'состояние экземпляра EC2' показывает, что он работает

он был установлен в ubuntu 18.04, я также настроил группы безопасности в моем экземпляре EC2 с http, https, 443, 80, 8000, 5432 и 22 все разрешено с любого ip адреса, кроме 22, который имеет только мой ip адрес как доступ. Также в настройках моего приложения django 'ALLOWED_HOSTS' я добавил ip адрес экземпляра, а также '*'.

вот мой файл gunicorn.socket:

[Unit]
Description=gunicorn socket

[Socket]
ListenStream=/run/gunicorn.sock

[Install]
WantedBy=sockets.target

и мой служебный файл gunicorn:

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

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

[Install]
WantedBy=multi-user.target

ngnix conf файл :

server {
listen 80;
listen 443;
server_name **.***.***.*;

location = /favicon.ico { access_log off; log_not_found off; }
location /static/ {
root /home/ubuntu/djangoapp1;
}

location /media/ {
root /home/ubuntu/djangoapp1;    
}

location / {
include proxy_params;
proxy_pass http://unix:/run/gunicorn.sock;
}
}

Я проверяю гнездо gunicorn с :

sudo systemctl start gunicorn.socket
sudo systemctl enable gunicorn.socket
sudo systemctl status gunicorn.socket

и показывает, что он работает нормально

Я также создал файл nginx conf :

sudo vim /etc/nginx/sites-available/djangoapp1

и связал его с :

sudo ln -s /etc/nginx/sites-available/djangoapp1 /etc/nginx/sites-enabled

затем перезапустили сервер nginx:

sudo systemctl restart nginx

все равно ничего не работает! буду благодарен за любую помощь

Решение:

Неправильная конфигурация имени_сервера в конфигурации nginx

Назначили ли вы эластичный IP-адрес своему экземпляру EC2?

Выберите экземпляр EC2> Actions> Networking> Manage Ip Addresses. Затем используйте опцию "To add or edit an IPv4 public IP Allocate an Elastic IP to this instance or network interface".

Создайте эластичный IP-адрес Перейдите по ссылке Эластичный IP-адрес> нажмите кнопку Ассоциировать IP Выберите экземпляр для присвоения IP и сохраните. Теперь у вас будет экземпляр EC2 с публичным IP без перезапуска/удаления экземпляра EC2.

Без этого ваш экземпляр EC2 не будет доступен за пределами сети Aws.

Это стоит денег, поэтому обязательно проверьте цены.

Вернуться на верх