Запуск двух приложений на одном сервере с разными портами в NGINX

#nginx

#nginx

Вопрос:

Итак, добрый день.

Я не знаю, использовал ли я правильную терминологию в своем вопросе, но я попытаюсь объяснить, в чем моя проблема и чего я пытаюсь достичь.

У меня есть приложение, которое запускается на сервере NGINX с SSL (порт 443). в этом приложении сохраняется мое доменное имя / страница чата. я могу открыть это без проблем, но нет соединения. Для подключения комнаты чата существует другое (приложение?), которое находится в другой корневой папке и может запускаться сервером NPM с портом 3000. С этими настройками приложение работает, подключение и все остальное. Мой вопрос в том, как я могу создать приложение, вместо того, чтобы каждый раз запускаться на сервере NPM, для запуска на сервере NGINX.

вот мой конфигурационный файл NGINX:

 server {
listen 443 ssl;
listen [::]:443 ssl;
ssl_certificate     /path/to/cert/mydomain.pem;
ssl_certificate_key /path/to/key/mydomain-key.pem;

server_name mydomain;
root /path/to/project/mydomain;

location / {
    # try to serve file directly, fallback to app.php
    try_files $uri /app_dev.php$is_args$args;
}

location ~ ^/(app_dev|config).php(/|$) {
    fastcgi_pass unix:/var/run/php/php7.2-fpm.sock;
    fastcgi_split_path_info ^(. .php)(/.*)$;
    include fastcgi_params;
    fastcgi_param SCRIPT_FILENAME $realpath_root$fastcgi_script_name;
    fastcgi_param DOCUMENT_ROOT $realpath_root;
}

location ~ .php$ {
    return 404;
}

error_log /var/log/nginx/project_error.log;
access_log /var/log/nginx/project_access.log;
}

server {
listen 80;
listen [::]:80;

server_name mydomain;

return 301 https://$server_name$request_uri;
}
  

корневые папки:

 /path/to/project/mydomain
/path/to/project/mydomain-chat
  

Я попытался создать новый серверный блок с тем же именем server_name с портом 3000, но не сработало.

Комментарии:

1. Если я правильно понял ваш вопрос. Вам необходимо создать новый файл конфигурации NGINX, см.: digitalocean.com/community/questions /…

2. Я попытался добавить proxy_pass в свою конфигурацию, но он возвращается control process exited with error code при перезапуске моего сервера nginx. Я добавил его в раздел server block, который прослушивает порт 443. это был прокси-проход, который я добавил: location / { proxy_pass http://127.0.0.1:3010/; try_files $uri $uri/ =404; }

3. опечатка .. я изменил 3010 на 3000, все то же сообщение об ошибке.

4. Не ставьте proxy_pass и try_files в одно и то же location место — вы либо отправляете запрос на другой сервер, либо ищете файлы на этом сервере, а не оба.

5. Когда вы говорите о » сервере NPM » на порту 3000, звучит так, как будто у вас есть отдельный Node.js приложение. Итак, когда вы спрашиваете » как я могу создать приложение, вместо того, чтобы каждый раз запускаться на сервере NPM, для запуска на сервере NGINX «, вы имеете в виду, как вы сохраняете Node.js запущенное приложение (потому что оно продолжает останавливаться)? или вы имеете в виду, что хотите обслуживать то же самое, что и это приложение, но из nginx?