Wie füge ich einem Fastcgi-Mono-Server4-Prozess auf Nginx eine neue Website hinzu, ohne vorhandene Websites neu starten zu müssen?

Wie füge ich einem Fastcgi-Mono-Server4-Prozess auf Nginx eine neue Website hinzu, ohne vorhandene Websites neu starten zu müssen?

Ich weißDaskönnte damit zusammenhängen, aber ich habe ein Skript, das den FastCGI-Mono-Server für definierte Websites in einer Konfigurationsdatei lädt, und ich brauche eine neue Website zum Pool, ohne alle FastCGI-Prozesse neu laden zu müssen.

Tun

nginx -s reload

Laden Sie einfach jede Serverkonfiguration (Website) neu und ich brauche einen reibungsloseren Prozess, um dem aktuellen Arbeitsprozess eine neue asp.net-Website hinzuzufügen.

Antwort1

Der „einzige“ Weg wäre:

  • Isolieren Sie alle Fast-CGI-Prozesse
  • Leiten Sie Verbindungen zu ihnen mit NGINX weiter.

NGINX kann Verbindungen an einen Pool von FastCGI-Monoservern weiterleiten. Sie können für jede Website/Anwendung einen anderen FastCGI-Prozess ausführen und Ihre NGINX-Konfiguration so ändern, dass sie je nach virtuellem Host oder URL auf jede Anwendung verweist. Das Hinzufügen neuer Websites erfordert nur ein Neuladen von NGINX – wodurch NICHT der gesamte Monoserver neu geladen wird, sondern nur die internen Weiterleitungsregeln von NGINX.

Weitere Konfigurationsbeispiele finden Sie dort:http://www.mono-project.com/FastCGI_Nginx

Als Referenz veröffentliche ich den Hauptteil: Die Nginx-Konfiguration (ab Version 0.7.63) befindet sich in /etc/nginx/nginx.conf (die die HTTP-Konfiguration enthält) und in /etc/nginx/sites-available/default (wo sich die Konfiguration eines oder mehrerer bestimmter virtueller Hosts befindet). Um eine ASP.NET- oder ASP.NET MVC-Webanwendung einzurichten, müssen Sie die Konfiguration des virtuellen Hosts ändern.

NGINX vhost-Konfigurationsblock. Dies leitet an einen Fastcgi-Prozess weiter, der auf Port 9000 desselben Systems läuft. Sie könnten 9001 für die zweiten Apps usw. verwenden. Sie könnten auch dedizierte Server verwenden, um Ihre Anwendung auszuführen. In diesem Fall wird NGINX zu einem Pseudo-HTTP-Load Balancer.

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;
     }
}

und Sie steuern einzelne Mono-„Anwendungen“ mit:

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

Hinweis: Die Antwort wurde einige Male bearbeitet, um zusätzliche und präzisere Lösungen bereitzustellen.

verwandte Informationen