Como adicionar um novo site a um processo fastcgi-mono-server4 no nginx sem precisar reiniciar os sites existentes?

Como adicionar um novo site a um processo fastcgi-mono-server4 no nginx sem precisar reiniciar os sites existentes?

Eu seiessepode estar relacionado, mas eu tenho um script que carrega fastcgi-mono-server para sites definidos em um arquivo de configuração e preciso de um novo site para o pool sem ter que recarregar todo o processo fastcgi.

Fazendo

nginx -s reload

Basta recarregar a configuração de cada servidor (site) e preciso de um processo mais tranquilo para adicionar um novo site asp.net ao processo de trabalho atual.

Responder1

A 'única' maneira seria:

  • isolar todos os processos fast-cgi
  • encaminhar conexões para eles com NGINX.

O NGINX pode encaminhar conexões para um pool de servidores mono fastCGI. Você pode executar processos fastcgi diferentes para cada site/aplicativo e modificar a configuração do NGINX para apontar para cada aplicativo, dependendo do vhost ou URL. Adicionar novos sites exigirá apenas uma recarga do NGINX - que NÃO recarregará todo o servidor mono, apenas as regras de encaminhamento interno do NGINX.

Exemplos de configuração adicionais podem ser encontrados lá:http://www.mono-project.com/FastCGI_Nginx

Para referência, estou postando a parte principal: a configuração do Nginx (a partir da versão 0.7.63) está localizada em /etc/nginx/nginx.conf (que contém a configuração http) e em /etc/nginx/sites-available/ padrão (onde está a configuração de um host ou hosts virtuais específicos). Para configurar o aplicativo Web ASP.NET ou ASP.NET MVC, você precisa modificar a configuração do host virtual.

Bloco de configuração vhost NGINX. Isso encaminha para um processo fastcgi em execução na porta 9000 do mesmo sistema. Você poderia estar usando 9001 para os segundos aplicativos, etc. Você também poderia estar usando servidores dedicados para executar seu aplicativo; nesse caso, o NGINX se torna um balanceador de carga pseudo 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;
     }
}

e você controla 'aplicativos' mono individuais com:

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

Nota: Resposta editada algumas vezes para fornecer uma solução adicional e mais precisa.

informação relacionada