Я пытаюсь разрешить несколько хостов, которые извлекаются из базы данных. Он работает нормально локально, но в производственном процессе я получаю ошибку 502.
Вот мой файл производственных настроек
from .settings import *
DEBUG = False
DATABASES = {
'default': {
'ENGINE': 'django.db.backends.postgresql_psycopg2',
'NAME': 'projectname_settings',
'USER': '******',
'PASSWORD': '******',
'HOST': 'localhost',
'PORT': '',
}
}
ALLOWED_HOSTS = [
"mydomain.com",
] + get_allowed_hosts(DATABASES['default'])
Allowed_hosts.py
def get_allowed_hosts(db_params):
connection = None
if db_params['ENGINE'] == 'django.db.backends.postgresql_psycopg2':
import psycopg2
connection = psycopg2.connect(user=db_params['USER'],
password=db_params['PASSWORD'],
host=db_params['HOST'],
port=db_params['PORT'],
database=db_params['NAME'])
elif db_params['ENGINE'] == 'django.db.backends.sqlite3':
import sqlite3
connection = sqlite3.connect(db_params['NAME'])
if connection is not None:
cursor = connection.cursor()
sites_query = cursor.execute("SELECT domain FROM django_site")
sites_result = cursor.fetchall()
cursor.close()
connection.close()
Я думаю, если есть для этого типа настройки требуется nginx
my nginx config:
server {
listen 80;
server_name *****.com;
location = /favicon.ico { access_log off; log_not_found off; }
location /static/ {
root /home/;
}
location / {
include proxy_params;
proxy_pass http://unix:/run/gunicorn.sock;
}
}
результаты cat /var/log/nginx/error.log
2020/02 / 16 07:16:06 [ошибка] 32356 # 32356: * 110 подключиться () к unix: / run / gunicorn.sock не удалось (111: соединение отклонено) при подключении к восходящему каналу, клиенту: . . . , сервер: ****. Com, запрос: "GET / HTTP / 1.1", восходящий поток: "http://unix: / run / gunicorn.sock: / " хост: ". . . : 80"