Ошибка при настройке NGINX для нескольких поддоменов - PullRequest
0 голосов
/ 09 февраля 2019

Я пытаюсь настроить свой NGINX для обработки запросов от двух разных поддоменов, маршрутизируя их в два разных приложения nodeJS, работающих на портах 3000 и 9000. Я также перенаправляю все запросы порта 80 на 443. Вот как выглядит моя конфигурация:

# Catch non-ssl domain requests
server {
  listen 80;
  listen [::]:80;
  server_name schandillia.com www.schandillia.com;
  return 301 https://www.$server_name$request_uri;
}

# Catch non-www domain requests on ssl
server {
  listen 443 ssl http2;
  listen [::]:443 ssl http2;
  server_name  schandillia.com;
  return 301 https://www.$server_name$request_uri;
}

# Settings for TLS enabled server (www/ssl requests)
server {
  listen 443 default_server ssl http2;
  listen [::]:443 ssl http2;
  server_name  www.schandillia.com;

  # Retrieve certificates
  ssl_certificate "/etc/letsencrypt/live/schandillia.com/fullchain.pem";
  ssl_certificate_key "/etc/letsencrypt/live/schandillia.com/privkey.pem";

  # Automatically route HTTP to HTTPS
  add_header Strict-Transport-Security "max-age=31536000";

  include /etc/nginx/default.d/*.conf;
  root /usr/share/nginx/html;
  index index.html index.htm;

  proxy_hide_header X-Powered-By;
  add_header X-Powered-By "Project Proost 0.0.0";
  proxy_set_header Upgrade $http_upgrade;
  proxy_set_header Connection 'upgrade';
  proxy_set_header Host $host;
  proxy_cache_bypass $http_upgrade;

  location / {
    proxy_pass http://127.0.0.1:3000;
    charset UTF-8;
    proxy_http_version 1.1;
  }
  location ~* \.(?:ico|svg|woff|woff2|ttf|otf|css|js|gif|jpe?g|png)$ {
   proxy_pass http://127.0.0.1:3000;
   expires 365d;
   add_header Pragma public;
   add_header Cache-Control "public";
  }
}

# for subdomain graph 
server {
  listen 443 default_server ssl http2;
  listen [::]:443 ssl http2;
  server_name graph.schandillia.com;

  location / {
    proxy_pass http://127.0.0.1:9000;
    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;
  }
}

Как видно, в моей конфигурации 4 серверных блока.Первый обрабатывает все не-SSL-запросы, второй направляет не-WWW SSL-запросы в WWW, а третий обрабатывает все запросы на https://www.schandillia.com,, направляя их на порт 3000.

4-й блок - это гдеЯ обрабатываю запросы с субдомена graph.schandillia.com и пытаюсь направить их на порт 9000. Однако при этом выдается ошибка без кода ошибки:

Задание для nginx.service не выполнено из-за управленияпроцесс завершен с кодом ошибки.

Куда я иду не так?

PS: nginx -t возвращает следующий журнал:

nginx: [emerg] a duplicate default server for 0.0.0.0:443 in /etc/nginx/sites-enabled/default:56
nginx: configuration file /etc/nginx/nginx.conf test failed

Кроме того, конфигурацияКажется, работает нормально с последним удаленным блоком сервера.Но это не служит моей цели, так как мне нужен блок сервера для обработки запросов graph к субдоменам.

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