Nginx

如何在 nginx 上將新網站添加到 fastcgi-mono-server4 程序而無需重新啟動現有網站?

  • January 9, 2012

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

正在做

nginx -s reload

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

“唯一”的方法是:

  • 隔離所有 fast-cgi 程序
  • 使用 NGINX 向他們轉發連接。

NGINX 可以將連接轉發到 fastCGI 單伺服器池。您可以為每個網站/應用程序執行不同的 fastcgi 程序,並根據 vhost 或 URL 修改 NGINX 配置以指向每個應用程序。添加新站點只需要 NGINX 重新載入 - 這不會重新載入整個單聲道伺服器,只需要 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 用於第二個應用程序等。您也可以使用專用伺服器來執行您的應用程序,在這種情況下,NGINX 成為偽 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;
    }
}

並且您可以通過以下方式控制單個單聲道“應用程序”:

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

注意:答案編輯了幾次以提供更多和更精確的解決方案。

引用自:https://serverfault.com/questions/334072