Node.js+Express on IIS

4420 단어 node.js
그냥 노드가js의 프로그램이 iis에 달렸다는 뜻은 이 문장 Hosting express node.js applications in IIS using iisnode을 참고하면 된다.
참고하기 시작한 것은 이 문장이다.
Installing and Running node.js applications within IIS on Windows - Are you mad?", 사실도 분명히 말했는데, 단지 너무 길어서 중간에 말했을 뿐이다
WCAT(WEB CAPACITY ANALYSIS TOOL)에 갔는데 얘기가 끝난 줄 알았는데 사이트를 발표하자마자 도망가지 못해 수동으로 웹을 작성해야 한다는 것을 알게 됐어요.config가handler,OK,원생의node프로그램에 가입하여 달리기 시작했다.결과적으로express 아래의 사이트는 또 뛰지 않았고 최종적으로 해결된 후에 끼어들었다.
  • 다운로드 설치node, 주의해야 할 것은 다음 64비트 버전의 node는 64비트 프로그램 files 경로 아래에 설치되어 있으며, 다음 32비트 버전이 필요하거나 다음 node가 바로 필요합니다.exe는 32개의 프로그램 파일 디렉터리에 nodejs 폴더를 새로 만듭니다.
  • 다운로드 설치iisnode, 이 때 c:\program files(x86)odejsode.exe가 존재하지 않으면 로그아웃을 잘못 보고합니다. 이것이 바로 제가 첫 번째로 제시한 이유입니다. 설치가 끝난 후 관리자 권한이 설치 디렉터리에 있는 setupsamples를 실행합니다.bat 즉시 체험 가능, 필요 없음;
  • 다운로드 설치url rewrite 패키지,express 필요
  • 당신의 노드 사이트를 iis에 발표합니다. 예를 들어 http://localhost:8081, 응용 프로그램 풀의.net 버전 선택, 무의미
  • 웹 사이트를 게시한 후 다음 두 가지 작업을 수행합니다.
    1, 감청된 포트를:process.env.PORT, 예: express: app.set('port',process.env.PORT||3000);이렇게 하면 iis 포트를 보존할 수 있고 노드 서보 사이트가 사용자 정의(예를 들어 3000) 포트를 사용할 수 있다.
    2, 웹 사이트 루트 디렉터리에 웹을 추가합니다.config 파일, 다음을 포함합니다.
    <configuration>
    
     <system.webServer>
    
    
    
       <!-- indicates that the hello.js file is a node.js application 
    
       to be handled by the iisnode module -->
    
    
    
       <handlers>
    
         <add name="iisnode" path="app.js" verb="*" modules="iisnode" />
    
       </handlers>
    
     
    
        <!-- use URL rewriting to redirect the entire branch of the URL namespace
    
        to app.js node.js application; for example, the following URLs will 
    
        all be handled by app.js:
    
        
    
            http://localhost/foo
    
            http://localhost/bar
    
            
    
        -->
    
     
    
        <rewrite>
    
          <rules>
    
            <rule name="main">
    
              <match url="/*" />
    
              <action type="Rewrite" url="app.js" />
    
            </rule>
    
          </rules>
    
        </rewrite>
    
     
    
        <!-- exclude node_modules directory and subdirectories from serving
    
        by IIS since these are implementation details of node.js applications -->
    
        
    
        <security>
    
          <requestFiltering>
    
            <hiddenSegments>
    
              <add segment="node_modules" />
    
            </hiddenSegments>
    
          </requestFiltering>
    
        </security>    
    
        
    
      </system.webServer>
    
    </configuration>

    이렇게 해서 모든/시작 URL은 app에 있습니다.js접속,app.js는 httphandler로 등록되어 iisnode 모듈을 사용하면 표준express가 정상적으로 뛸 수 있습니다
     
    마지막으로 저는 Angular를 사용했습니다. 상기 URL rewrite가 Angular의 URL 루트도 연결하지 않았는지 시험해 보았습니다. 실측은 할 수 없습니다. 만약에 Angular이나 다른 일부 프레임워크로 SPA(한 페이지 응용 프로그램) 프로그램을 만들면 문제가 없습니다. 왜냐하면 이 프레임워크들은 모두hash를 전환하는 방식으로 루트를 사용하기 때문일 것입니다. github처럼 URL을 완전히 바꾸는 것은 테스트에 미치지 못하고 시간이 있으면 테스트 결과를 추가해야 합니다.
     
    P.S. 위에서 설치 설정 과정을 소개할 때 iisnode를 설치한 후에 바로 체험할 수 있는bat 프로그램은 하지 않아도 된다고 말했는데 사실은 실행하는 것을 권장합니다. 기본 사이트에서 node 가상 경로를 생성하는데 그 안에 비교적 풍부한 예시와 설명이 있습니다. 특히 상술한 웹은 그렇습니다.config 파일, 구성 가능한 부분이 많습니다. configuration/readme.htm 파일에 상세한 설명이 있습니다. 실행하고 자세히 보십시오.
    P.S.P.S가 컴퓨터(win8.1)를 다시 설치한 후에 나는 또 자신의 문서에 대고 이 일을 했는데 http error 5500.19, 오류 코드: 0x80070021, 설명: This configuration section cannot be used at this path.This happens when the section is locked at a parent level. Locking is either by default (overrideModeDefault="Deny"), or set explicitly by a location tag with overrideMode="Deny"or the legacy allowOverride="false".결과적으로 이것은 문제가 아니다. 내 iis가 설정되지 않았을 뿐이다. 삭제 기능 추가에서 CGI를 표시하면 된다.http://stackoverflow.com/questions/9794985/iis-this-configuration-section-cannot-be-used-at-this-path-configuration-lock

    좋은 웹페이지 즐겨찾기