如何將新網站新增至 nginx 上的 fastcgi-mono-server4 進程中,而無需重新啟動現有網站?

如何將新網站新增至 nginx 上的 fastcgi-mono-server4 進程中,而無需重新啟動現有網站?

我知道可能相關,但我有一個腳本,可以為配置文件上定義的網站加載 fastcgi-mono-server ,並且我需要將一個新網站添加到池中,而無需重新加載所有 fastcgi 進程。

正在做

nginx -s reload

只需重新載入每個伺服器(網站)配置,我需要一個更順暢的過程來將新的 asp.net 網站新增至目前工作進程。

答案1

「唯一」的方法是:

  • 隔離所有 fast-cgi 進程
  • 使用 NGINX 將連線轉送給它們。

NGINX 可以將連線轉送至 fastCGI mono 伺服器池。您可以為每個網站/應用程式執行不同的 fastcgi 進程,並根據虛擬主機或 URL 修改 NGINX 設定以指向每個應用程式。新增網站只需要 NGINX 重新載入 - 這不會重新載入整個 Mono 伺服器,只會重新載入 NGINX 內部轉送規則。

可以在那裡找到其他配置範例:http://www.mono-project.com/FastCGI_Nginx

為了參考起見,我發布了主要部分:Nginx 配置(從版本 0.7.63 開始)位於 /etc/nginx/nginx.conf (其中包含 http 配置)和 /etc/nginx/sites-available/預設值(其中是特定虛擬主機或主機的配置)。為了設定 ASP.NET 或 ASP.NET MVC Web 應用程序,您需要修改虛擬主機配置。

NGINX 虛擬主機配置區塊。此轉送至同一系統的連接埠 9000 上執行的 fastcgi 進程。您可以將 9001 用於第二個應用程式等。

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

注意:答案經過多次編輯,以提供額外且更精確的解決方案。

相關內容