기존 웹사이트를 다시 시작하지 않고도 nginx의 fastcgi-mono-server4 프로세스에 새 웹사이트를 추가하는 방법은 무엇입니까?

기존 웹사이트를 다시 시작하지 않고도 nginx의 fastcgi-mono-server4 프로세스에 새 웹사이트를 추가하는 방법은 무엇입니까?

알아요이것관련이 있을 수 있지만 구성 파일에 정의된 웹 사이트에 대해 fastcgi-mono-server를 로드하는 스크립트가 있고 모든 fastcgi 프로세스를 다시 로드할 필요 없이 풀에 새 웹 사이트가 필요합니다.

행위

nginx -s reload

각 서버(웹 사이트) 구성을 다시 로드하면 현재 작업자 프로세스에 새 asp.net 웹 사이트를 추가하기 위한 보다 원활한 프로세스가 필요합니다.

답변1

'유일한' 방법은 다음과 같습니다.

  • 모든 fast-cgi 프로세스를 격리합니다.
  • NGINX를 사용하여 연결을 전달합니다.

NGINX는 연결을 fastCGI 모노 서버 풀로 전달할 수 있습니다. 각 웹 사이트/애플리케이션에 대해 서로 다른 fastcgi 프로세스를 실행하고 가상 호스트 또는 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 웹 애플리케이션을 설정하려면 가상 호스트 구성을 수정해야 합니다.

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

참고: 보다 정확한 추가 솔루션을 제공하기 위해 답변이 몇 번 편집되었습니다.

관련 정보