我知道这可能相关,但我有一个脚本,它可以为配置文件中定义的网站加载 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
注意:答案经过几次编辑,以提供更多和更精确的解决方案。