Назад | Перейти на главную страницу

Самая безопасная конфигурация Nginx для приложения NodeJS в CentOS

У меня несколько приложений NodeJS, работающих на разных портах.

Мне нужно было, чтобы каждый из них работал через поддомен с использованием Nginx, например, вместо example.com:4001 пользователь может работать над app1.example.com

Я нашел два решения, которые кажутся подходящими, однако второе решение еще не работает, и даже если оно сработало, я не знаю, будет ли оно более безопасным, чем первое решение, или нет.

Стоит ли придерживаться Решения 1 или приложить больше усилий к Решению 2?

Решение 1 (Работает)

server {
    listen 80;
    server_name app1.example.com;

    location / {
        proxy_set_header   X-Forwarded-For $remote_addr;
        proxy_set_header   Host $http_host;
        proxy_pass         "http://127.0.0.1:4001";
    }
}

Решение 2 (еще не работает)

404 Not Found nginx

server {
    listen 80;
    server_name app1.example.com;

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

Операционная система: CentOS 6.9 (окончательная)

Nginx: 1.12.2

Пользовательский файл conf: /etc/nginx/conf.d/nodeapps.conf

Вам понадобится один server {}блок для каждого поддомена, как описано в документации. http://nginx.org/en/docs/http/server_names.html

Например

server {
    listen 80;
    server_name app1.example.com;

    location / {
        proxy_set_header   X-Forwarded-For $remote_addr;
        proxy_set_header   Host $http_host;
        proxy_pass         "http://127.0.0.1:4001";
    }
}
server {
    listen 80;
    server_name app2.example.com;

    location / {
        proxy_set_header   X-Forwarded-For $remote_addr;
        proxy_set_header   Host $http_host;
        proxy_pass         "http://127.0.0.1:4002";
    }
}

Я также сильно Предлагаем использовать восходящий модуль для бэкэндов. http://nginx.org/en/docs/http/ngx_http_upstream_module.html