Django, Gunicorn, Nginx перенаправляют на локальный хост
Я пытаюсь настроить производственный сервер, используя gunicorn и nginx для моего приложения Django.
В настоящее время у меня запущен gunicorn, но когда я делаю curl на мой локальный хост, я не получаю никакого вывода, поэтому я думаю, что проблема в моих урлах/видах Django, но я не уверен, что нужно изменить, поскольку я нигде не ссылаюсь на localhost. У меня также запущен nginx. Я не использую файл nginx.conf напрямую, так как я создал симлинк и использую site-enabled. Вот моя конфигурация sites-available:
# /etc/nginx/sites-availible/msc_project.conf
# HTTP to HTTPS redirect:
server {
listen 0.0.0.0:80;
server_name mscentral.mysite.com;
# Certbot Letsencrypt verification
location /.well-known/acme-challenge {
alias /home/mscentral/mscentral_project/static/.well-known/acme-challenge/; #
}
return 301 https://mscentral.mysite.com$request_uri;
}
# Virtual host for mscentral
server {
listen 0.0.0.0:443 ssl;
server_name mscentral.mysite.com;
ssl_certificate /etc/letsencrypt/live/mscentral.mysite.com/fullchain.pem;
ssl_certificate_key /etc/letsencrypt/live/mscentral.mysite.com/privkey.pem;
#static file handling
location /static/ {
alias /home/mscentral/mscentral_project/static/;
}
location /media/ {
alias /home/mscentral/mscentral_project/media/;
}
#WSGI server
location / {
proxy_set_header X-Real-IP $remote_addr;
proxy_pass http://localhost:8000/;
}
access_log /var/log/nginx/mscentral_project-access.log;
error_log /var/log/nginx/mscentral_project-error.log;
}
вот мой служебный файл gunicorn:
[Unit]
Description=My Central Service for Gunicron
After=network.target
[Service]
Type=simple
# Another Type: forking
User=mscentral_internal
WorkingDirectory=/home/mscentral/mscentral_project
ExecStart=/home/mscentral/venv/bin/gunicorn -b localhost:8000 mscentral_project.wsgi
Restart=on-failure
# Other restart options: always, on-abort, etc
# The install section is needed to use
# `systemctl enable` to start on boot
# For a user service that you want to enable
# and start automatically, use `default.target`
# For system level services, use `multi-user.target`
[Install]
WantedBy=multi-user.target
Вот мой файл urls:
from django.conf.urls import url, include
from django.urls import path
from ms_app import views
from django.conf import settings
from django.conf.urls.static import static
urlpatterns = [
# path('oauth2/', include('django_auth_adfs.urls')),
path('',views.index,name='index'),
path('ms_app/',include('ms_app.urls', namespace='ms_app')),
path('admin/', admin.site.urls),
path('logout/',views.user_logout,name='logout'),
path('special/',views.special,name='special'),
# path('accounts/profile/', views.index),
]+ static(settings.MEDIA_URL, document_root=settings.MEDIA_ROOT)
# if settings.DEBUG:
# urlpatterns += static(settings.MEDIA_URL, document_root=settings.MEDIA_ROOT)
и на данный момент у меня есть базовая индексная страница:
def index(request):
return render(request, 'ms_app/index.html')
Вот мои ALLOWED_HOSTS в моем файле настроек:
ALLOWED_HOSTS = ["mscentral.mysite.com","localhost"]
Когда я удаляю localhost из моих ALLOWED_HOSTS, я получаю следующую ошибку Django:
А когда я сохраняю localhost в ALLOWED_HOSTS, тогда fqdn моего сайта перенаправляется на localhost.
Это моя первая попытка развертывания такого рода. Пожалуйста, любые советы/подсказки/рекомендации будут оценены по достоинству.
Мое приложение Django находится в виртуальной среде, Использую Django: 3.2.5, Gunicorn: 20.1.0, Python: 3.8.10, Виртуализация: vmware, Операционная система: Ubuntu 20.04.3 LTS, Ядро: Linux 5.4.0-91-generic, Архитектура: x86-64, версия nginx: nginx/1.18.0
Спасибо.