如何在nginx上添加一个新的网站到fastcgi-mono-server4进程,而无需重启现有的网站?

我知道这可能是相关的,但我有一个脚本,加载configuration文件上定义的网站fastcgi单一服务器,我需要一个新的网站到池,而无需重新加载所有fastcgi进程。

nginx -s reload 

只需重新加载每个服务器(网站)configuration,我需要一个更stream畅的过程来添加一个新的asp.net网站到当前的工作进程。

“唯一”的方式是:

  • 隔离所有的快速cgi进程
  • 用NGINX转发他们的连接。

NGINX可以将连接转发到一个fastCGI单声道服务器池。 您可以为每个网站/应用程序执行不同的fastcgi过程,并根据vhost或URL将您的NGINXconfiguration修改为指向每个应用程序。 添加新的站点只需要一个NGINX重新加载 – 这将不会重新加载整个单声道服务器,只有NGINX内部转发规则。

其他configuration示例可以在这里find: http : //www.mono-project.com/FastCGI_Nginx

为了便于参考,我发布了主要部分:Nginxconfiguration(从版本0.7.63开始)位于/etc/nginx/nginx.conf(包含httpconfiguration)和/ etc / nginx / sites-available /默认(其中是特定虚拟主机或主机的configuration)。 为了设置ASP.NET或ASP.NET MVC Web应用程序,您需要修改虚拟主机configuration。

NGINX虚拟主机configuration集团。 这转发到在同一系统的端口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 

注意:回答编辑了几次,以提供额外的和更精确的解决scheme。