Как добавить новый веб-сайт в процесс fastcgi-mono-server4 на nginx без необходимости перезапускать существующие веб-сайты?

Как добавить новый веб-сайт в процесс fastcgi-mono-server4 на nginx без необходимости перезапускать существующие веб-сайты?

Я знаюэтотможет быть связано, но у меня есть скрипт, который загружает fastcgi-mono-server для определенных веб-сайтов в файле конфигурации, и мне нужно добавить новый веб-сайт в пул без необходимости перезагружать все процессы fastcgi.

Делает

nginx -s reload

Просто перезагрузите конфигурацию каждого сервера (веб-сайта), и мне нужен более плавный процесс добавления нового веб-сайта asp.net в текущий рабочий процесс.

решение1

«Единственный» путь — это:

  • изолировать все быстрые процессы cgi
  • перенаправлять к ним соединения с помощью NGINX.

NGINX может перенаправлять соединения к пулу fastCGI mono сервера. Вы можете выполнить разные fastcgi процессы для каждого веб-сайта/приложения и изменить конфигурацию NGINX, чтобы она указывала на каждое приложение в зависимости от vhost или URL. Добавление новых сайтов потребует только перезагрузки NGINX, которая НЕ перезагрузит весь mono сервер, а только внутренние правила переадресации NGINX.

Дополнительные примеры конфигурации можно найти здесь:http://www.mono-project.com/FastCGI_Nginx

Для справки я публикую основную часть: конфигурация Nginx (начиная с версии 0.7.63) находится в /etc/nginx/nginx.conf (где содержится конфигурация http) и в /etc/nginx/sites-available/default (где находится конфигурация конкретного виртуального хоста или хостов). Чтобы настроить веб-приложение ASP.NET или ASP.NET MVC, вам необходимо изменить конфигурацию виртуального хоста.

Блок конфигурации vhost NGINX. Это переадресация на процесс fastcgi, работающий на порту 9000 той же системы. Вы можете использовать 9001 для вторых приложений и т. д. Вы также можете использовать выделенные серверы для запуска своего приложения, в таком случае NGINX становится псевдобалансировщиком нагрузки HTTP.

server {
     listen   80;
     server_name  www.domain1.xyz;
     access_log   /var/log/nginx/your.domain1.xyz.access.log;

     location / {
             root /var/www/www.domain1.xyz/;
             index index.html index.htm default.aspx Default.aspx;
             fastcgi_index Default.aspx;
             fastcgi_pass 127.0.0.1:9000;
             include /etc/nginx/fastcgi_params;
     }
}

и вы управляете отдельным моно «приложением» с помощью:

fastcgi-mono-server2 /applications=www.domain1.xyz:/:/var/www/www.domain1.xyz/ /socket=tcp:127.0.0.1:9000

Примечание: ответ был отредактирован несколько раз для предоставления дополнительного и более точного решения.

Связанный контент