如何将新网站添加到 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 进程,并修改 NGINX 配置以根据 vhost 或 URL 指向每个应用程序。添加新网站只需要重新加载 NGINX - 这不会重新加载整个 mono 服务器,而只会重新加载 NGINX 内部转发规则。

您可以在此处找到其他配置示例:http://www.mono-project.com/FastCGI_Nginx

为了方便参考,我贴出了主要部分:Nginx 配置(自 0.7.63 版起)位于 /etc/nginx/nginx.conf(包含 http 配置)和 /etc/nginx/sites-available/default(其中是特定虚拟主机或主机的配置)。为了设置 ASP.NET 或 ASP.NET MVC Web 应用程序,您需要修改虚拟主机配置。

NGINX vhost 配置块。这会转发到在同一系统的 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

注意:答案经过几次编辑,以提供更多和更精确的解决方案。

相关内容