Задать вопрос
@sovok2

Как запустить сразу два сервера в nginx?

сайт лежит на домене syqq.ru, nginx.conf содержит это:
server {  
   listen 443 ssl;
   ssl_certificate /etc/ssl/nginx/syn-q.ru.crt;
   ssl_certificate_key /etc/ssl/nginx/syn-q.ru.key;
   server_name ws.syqq.ru;
  
   location /websocket { 
     proxy_pass         http://localhost:8831;
     proxy_http_version 1.1;
     proxy_set_header   Upgrade $http_upgrade;
     proxy_set_header   Connection "upgrade";
     proxy_set_header   Host $host;
   }
 }
 
 server {
  listen 443 ssl;
  ssl_certificate /etc/ssl/nginx/syn-q.ru.crt;
         ssl_certificate_key /etc/ssl/nginx/syn-q.ru.key;
         server_name auth.syqq.ru;
         
         location /auth { 
     proxy_set_header        X-Real-IP        $remote_addr; 
     proxy_set_header        X-Forwarded-For  $proxy_add_x_forwarded_for; 
     proxy_set_header        Host $host; 
    
     proxy_pass         http://localhost:3000; 
    }
 }

один сервер работает на websocket, второй для авторизации на nodejs
оба работают исправно на своих портах
На самом сайте syqq.ru удается подключиться только к тому серверу, который написан первым, то есть в примере выше удастся подключиться только к websocket серверу, если поменять их местами, то только к серверу auth, как сделать так чтобы можно было подключаться сразу ко двум серверам?
  • Вопрос задан
  • 206 просмотров
Подписаться 1 Простой Комментировать
Решения вопроса 1
@dronmaxman
VoIP Administrator
sovok2, Если там реально websocket то nginx рекомендует делать через upstream
https://www.nginx.com/blog/websocket-nginx/

Если сайт находится на том же сервере, то почему бы не сделать вот так, зачем использовать sub домены? У тебя сертификат wildcard ?

http {
    map $http_upgrade $connection_upgrade {
        default upgrade;
        '' close;
    }
 
    upstream websocket {
        server 0.0.0.0:8831;
    }
}

server {  
   listen 443 ssl;
   ssl_certificate /etc/ssl/nginx/syn-q.ru.crt;
   ssl_certificate_key /etc/ssl/nginx/syn-q.ru.key;
   server_name syqq.ru;
  
   location /websocket { 
     proxy_pass         http://websocket;
     proxy_http_version 1.1;
     proxy_set_header   Upgrade $http_upgrade;
     proxy_set_header   Connection "upgrade";
     proxy_set_header   Host $host;
   }

     location /auth { 
     proxy_set_header        X-Real-IP        $remote_addr; 
     proxy_set_header        X-Forwarded-For  $proxy_add_x_forwarded_for; 
     proxy_set_header        Host $host; 
    
     proxy_pass         http://localhost:3000; 
    }
 }
Ответ написан
Пригласить эксперта
Ответы на вопрос 1
ky0
@ky0 Куратор тега Nginx
Миллиардер, филантроп, патологический лгун
Если есть совпадение server_name в одном из серверных блоков, их очерёдность не важна.

На первый взгляд, выглядит как ситуация с подключением по IP или к домену, для которого нет серверного блока.
Ответ написан
Ваш ответ на вопрос

Войдите, чтобы написать ответ

Похожие вопросы