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

3

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

Fazendo

nginx -s reload

Atualize cada configuração de servidor (site) e eu preciso de um processo mais suave para adicionar um novo site asp.net ao processo de trabalho atual.

    
por Rui Marques 23.11.2011 / 14:03

1 resposta

2

O "único" caminho seria:

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

O NGINX pode encaminhar conexões para um pool de servidores mono fastCGI. Você pode executar diferentes processos fastcgi para cada site / aplicativo e modificar sua configuração NGINX para apontar para cada um dos aplicativos, dependendo do vhost ou da URL. Adicionar novos sites requer apenas um recarregamento NGINX - que NÃO recarregará o servidor mono inteiro, apenas as regras internas de encaminhamento do NGINX.

Exemplos de configuração adicionais podem ser encontrados: link

Por 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 / default (onde está a configuração de host ou hosts virtuais específicos) . Para configurar o aplicativo da Web ASP.NET ou ASP.NET MVC, você precisa modificar a configuração do host virtual.

NGINX bloco de configuração vhost. Este encaminha para um processo fastcgi em execução na porta 9000 do mesmo sistema. Você pode estar usando o 9001 para os segundos aplicativos, etc. Você também pode 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 o 'aplicativo' mono individual com:

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

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

    
por 03.01.2012 / 13:06