Конфигурация субдомена Nginx для сервера Gunicorn - PullRequest
0 голосов
/ 30 апреля 2019

У меня есть два сервера, работающих на дроплете DigitalOcean. Одним из них является приложение Django / Wagtail, которое поставляется с Gunicorn (используется как безголовая CMS), а другое - приложение SSR Nuxt.js (внешний интерфейс). Используя следующую конфигурацию nginx, я сделал приложение Nuxt доступным на example.com (прекрасно работает), и теперь я пытаюсь сделать мое приложение Django / Wagtail доступным на поддомене cms.example.com. (Я изменил свой локальный файл hosts, так что домен example.com фактически функционирует)

/etc/nginx/sites-available/default

server {
    listen 80;
    listen [::]:80;
    server_name example.com;

    location / {
        proxy_pass http://localhost:3000;
            proxy_http_version 1.1;
            proxy_set_header Upgrade $http_upgrade;
            proxy_set_header Connection 'upgrade';
            proxy_set_header Host $host;
            proxy_cache_bypass $http_upgrade;
    }
}

server {
    listen 80;
    listen [::]:80;
    server_name cms.example.com;

    location / {
        include proxy_params;
        proxy_pass http://unix:/home/thomas/daweb/cms/cms.sock;
    }
}

/etc/nginx/proxy_params

proxy_set_header Host $http_host;
proxy_set_header X-Real-IP $remote_addr;
proxy_set_header X-Forwarded-For $proxy_add_x_forwarded_for;
proxy_set_header X-Forwarded-Proto $scheme;

Результат от curl --unix-socket /home/thomas/daweb/cms/cms.sock cms.example.com - это HTML-код целевой страницы Wagtail по умолчанию, ошибок нет.

Однако переход к cms.example.com только дает мне ошибку соединения. Если я поменяю их местами, я увижу интерфейс Wagtail на example.com, так что я знаю, что они оба работают. Тем не менее, я не могу понять, как настроить поддомен, и я пытаюсь понять документацию nginx. Также похожие вопросы о настройке поддоменов обычно касаются доступности статических файлов, а не прослушивания активных портов.

Еще одна проблема заключается в том, что Wagtail CMS доступен на /admin своего корневого сервера, поэтому мне бы хотелось, чтобы эта страница отображалась на cms.example.com, а не переходить на cms.example.com/admin. Любая помощь будет принята с благодарностью!

1 Ответ

0 голосов
/ 30 апреля 2019

Проверьте, что содержится в / etc / nginx / proxy_params.Я бы ожидал что-то вроде этого:

proxy_set_header Host $http_host;
proxy_set_header X-Real-IP $remote_addr;
proxy_set_header X-Forwarded-For $proxy_add_x_forwarded_for;
proxy_set_header X-Forwarded-Proto $scheme;

Также, чтобы убедиться, что Gunicorn работает правильно, попробуйте:

curl --unix-socket /home/thomas/daweb/cms/cms.sock cms.example.com
...