Nginx + Mongrel + Rails 3.0 + Windows 배포

5724 단어 windows
모두 가 windows 에서 rails 개발 을 하 는 것 을 제창 하지 않 고 windows 에서 rails 배 치 를 하 는 것 을 제창 하지 않 는 다 는 것 을 알 게 되 었 다.
그러나 이런 수요 가 존재 하 는 프로젝트 가 있 습 니 다. 플랫폼 요소 가 무시 할 수 없 으 니 하늘 을 거 슬러 갈 수 밖 에 없습니다.
 
    사고: Nginx 는 전단 (nginx 가 windows 에서 성능 이 불안정 하고 각종 기묘 한 문제 가 발생 할 수 있 습 니 다. 땀 ~ ~) 을 실현 하고 SSL 단 방향 과 양 방향 인증 (서로 다른 클 라 이언 트 에 대해 서로 다른 인증 방식 을 제공 합 니 다.) 을 제공 하 며 정적 페이지, 이미지, js, css 파일 을 제공 하고 나머지 는 백 엔 드 의 Mongrel 로 대리 합 니 다.(일부 기능 이 실행 되 지 않 았 고 발표 할 때 도 developmen 모드 로 발표 되 었 습 니 다)
          Mongrel 백 엔 드 서버 (왜 passenger 는 windows 버 전이 없 는 지, Mongre rails 는 rails 3.0 을 지원 하지 않 는 다. 자신 이 시도 할 때 매우 비극 적 이 라 고 느낀다)
 
    STEP: 1. mongrel 설치
             2. Mongrel 에 rails 등록 서 비 스 를 시작 합 니 다.
             3. nginx 를 다운로드 하고 서 비 스 를 등록 합 니 다.
             4. nginx 를 설정 하여 SSL 단일 양 방향 인증 과 대리 기능 을 실현 합 니 다.
 
    Mongrel 설치
gem install mongrel 

 
    2. Mongrel 을 위해 rails 등록 서 비 스 를 시작 합 니 다.
      1. 마이크로소프트 의 2 가지 도 구 를 다운로드: instsrv. exe, srvany. exe, 세부 사항 참조 3. nginx 를 다운로드 하고 서 비 스 를 등록 합 니 다.
       2. rails 시작 을 위해 rails. bat 파일 을 작성 합 니 다. 내용 은 다음 과 같 습 니 다.
cd D:\WEB_APP\SVNMS
C:\ruby187\bin\rails s -p 3003 -b 127.0.0.1

  #-b 127.0.0.1 은 127.0.0.1 만 연결 되 어 있 고 이 컴퓨터 만 접근 할 수 있 습 니 다. 전단 nginx 도 이 컴퓨터 에서 실행 되 기 때문에 nginx 만 직접 방문 할 수 있 고 외부 사용 자 는 nginx 를 통 해서 만 접근 할 수 있 습 니 다.        
      3. rails. bat 등록 서 비 스 를 위해 세부 사항 은 3. nginx 를 참고 하고 서 비 스 를 등록 합 니 다.
        4. SVNMS. reg 파일 내용 은 다음 과 같 습 니 다.
Windows Registry Editor Version 5.00  

[HKEY_LOCAL_MACHINE\SYSTEM\CurrentControlSet\Services\SVNMS]  
"Description"="SVN Manager Sysetem: D:\\WebApp\\SVNS\\rails s -e development"
"DisplayName"="SVNMS"
      
[HKEY_LOCAL_MACHINE\SYSTEM\CurrentControlSet\Services\SVNMS\Parameters]  
"Application"="D:\\WEB_APP\\rails.bat"
"AppParameters"=""
"AppDirectory"="D:\\WEB_APP\\SVNMS"     

    3. nginx 를 다운로드 하고 서 비 스 를 등록 합 니 다.
       1. nginx 윈도 우즈 버 전 다운로드 http://www.nginx.org
       2. 마이크로소프트 의 2 가지 도구 다운로드: instsrv. exe, srvany. exe        마이크로소프트 사이트 에 가서 설치 Windows Server 2003 Resource Kit Tools(rktools.exe), 를 다운로드 하 세 요. 제목 에 언급 된 모든 필요 한 도 구 를 포함 하여 다운로드 하고 설치 하 세 요.
       3. 명령 실행          rktools 설치 디 렉 터 리 에서 (일반적으로 C: \ Program Files \ \ Windows Resource Kits \ \ Tools 디 렉 터 리 에서) 이 두 프로그램 을 발견 할 수 있 습 니 다. 아래 명령 을 실행 하기 전에 instsrv. exe, srvany. exe 를 nginx 설치 디 렉 터 리 에 복사 한 다음 실행 하 십시오.
instsrv NGINX c:
ginx\srvany.exe #

3. c: ginx \ 에서 ngix. reg 파일 편집         
Windows Registry Editor Version 5.00  

[HKEY_LOCAL_MACHINE\SYSTEM\CurrentControlSet\Services\NGINX\Parameters]  
    "Application"="C:\
ginx\
ginx.exe" "AppParameters"="" "AppDirectory"="C:\
ginx\\"

매개 변수 설명: application: exe 또는 bat 파일 의 절대 경로             AppParameters: 실행 매개 변수             AppDirectory: 작업 디 렉 터 리, 작업 할 때 현재 디 렉 터 리
4. 서 비 스 를 프로그램 과 연결 시 키 고 명령 행 을 실행 합 니 다.
regedit /s nginx.reg  

5. nginx 스 크 립 트 start - nginx. bat 시작 편집 (스 크 립 트 를 닫 으 면 변 하지 않 음), 프로그램 을 서비스 방식 으로 실행 합 니 다.   
@ECHO OFF  
    net stop nginx  
    net start nginx  
    EXIT  

6. 서비스 삭제
sc delete SVNMS

 
보충: 그러나 Nginix 서 비 스 를 중단 한 후에 도 브 라 우 저 를 방문 하면 웹 사 이 트 를 볼 수 있 습 니 다. 프로 세 스 를 보면 Nginx 가 두 개의 nginx 프로 세 스 를 시작 한 것 을 알 수 있 습 니 다. (nginx. conf 설정 worker processes 에 따라 Fork 에서 나 온 프로 세 스 는 중단 되 지 않 았 습 니 다. 결 과 는 nginx 가 영원히 꺼 지지 않 습 니 다. 따라서 nginx 를 완전히 닫 으 려 면 taskkill 명령 을 사용 하 십시오.
taskkill /F /IM nginx.exe > nul
그 결과, nginx 가 멈 춘 모든 작업 을 처리 하기 위해 stop nginx 스 크 립 트 를 썼 습 니 다.
@echo off   
echo Stopping nginx service... 
net stop nginx   
echo Kill nginx process...   
taskkill /F /IM nginx.exe > nul

 
    4. nginx 를 설정 하여 SSL 단일 양 방향 인증 과 대리 기능 을 실현 합 니 다.
server {
        listen       8083;
        server_name  [email protected];
        root D:/www-date/public;
        location / {
            root D:/WEB_APP/SVNMS/public;
            
            #proxy
         proxy_set_header Host $host:8083;
            proxy_set_header X-Real-IP $remote_addr;
            proxy_set_header X-Forwarded-For $remote_addr;
            proxy_pass http://127.0.0.1:3003/;            
            proxy_set_header X-Forwarded-Proto https;
            proxy_redirect off;
        }
        #SSL
        ssl on;
        ssl_certificate  E:/nginx/nginx-1.1.7/ssl/server.crt;
        ssl_certificate_key  E:/nginx/nginx-1.1.7/ssl/server_no.key;
        ssl_client_certificate E:/nginx/nginx-1.1.7/ssl/ca.crt;
       
        error_page   500 502 503 504  /50x.html;
        location = /50x.html {
            root   html;
        }
    }

  
참고: windows 아래 nginx + mongrel 설정

좋은 웹페이지 즐겨찾기