Я пытаюсь настроить свой 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
к субдоменам.