我知道這可能相關,但我有一個腳本,可以為配置文件上定義的網站加載 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
注意:答案經過多次編輯,以提供額外且更精確的解決方案。