2013-05-14 5 views
1

우리의 호스팅 환경에 새로운 웹 서버를 설치하려고합니다. 그것은 우리가 사용하게 될 새로운 VM입니다. 그래서 내가 원하는대로 (이유 안에서) 할 수 있습니다. IIS 7은 Windows 2008 R2에서 실행되고 ASP.Net 4.0은 시스템에 설치되어 있습니다.IIS 서버의 모든 사이트에 대해 공유 'system.webServer` 설정을 설정하는 방법

나는 확실히 그들이 명시 적으로 대체되지 않는 한, 다음 system.webServer 설정을 사용하기 위해 서버에 모든 사이트를 강제로 좋아하지만, Framework config folders (32 비트 모두 64 비트 버전의 Machine.config or Web.config 파일에 추가 것) 어떤 효과가없는 것 같습니다.

내가 강제로하려는 설정은 다음과 같습니다. 나는이 설정이 개별 사이트의 Web.config 내에서 잘 작동한다는 것을 알고 있습니다. (내가 제작 사이트에서 복사/붙여 넣기했기 때문에) IIS URL Rewrite Module 2이 확실히 설치되었음을 압니다.

<system.webServer> 
    <httpProtocol> 
     <customHeaders> 
      <remove name="X-Powered-By"/> 
     </customHeaders> 
    </httpProtocol> 
    <staticContent> 
     <remove fileExtension=".air"/> 
     <remove fileExtension=".svg"/> 
     <remove fileExtension=".ttf"/> 
     <remove fileExtension=".otf"/> 
     <remove fileExtension=".woff"/> 
     <remove fileExtension=".eot"/> 
     <mimeMap fileExtension=".air" mimeType="application/vnd.adobe.air-application-installer-package+zip"/> 
     <mimeMap fileExtension=".svg" mimeType="image/svg+xml"/> 
     <mimeMap fileExtension=".ttf" mimeType="application/x-font-truetype"/> 
     <mimeMap fileExtension=".otf" mimeType="application/x-font-opentype"/> 
     <mimeMap fileExtension=".woff" mimeType="application/x-font-woff"/> 
     <mimeMap fileExtension=".eot" mimeType="application/vnd.ms-fontobject"/> 
    </staticContent> 
    <rewrite> 
     <outboundRules> 
      <rule name="Remove RESPONSE_Server"> 
       <match serverVariable="RESPONSE_Server" pattern=".+"/> 
       <action type="Rewrite" value=""/> 
      </rule> 
     </outboundRules> 
    </rewrite> 
</system.webServer> 

이 설정은 X-Powered-By: HTTP 헤더가 존재하고 Server: 헤더가 비어 있음을 의미한다,하지만이를 테스트 할 때, 나는 다음과 같은 얻을 :

[12:35:56] [email protected]:~$ curl -I http://new.server.ip 
HTTP/1.1 200 OK 
Content-Length: 689 
Content-Type: text/html 
Last-Modified: Mon, 13 May 2013 15:11:24 GMT 
Accept-Ranges: bytes 
ETag: "2ce2122ec4fce1:0" 
Server: Microsoft-IIS/7.5 
X-Powered-By: ASP.NET 
Date: Tue, 14 May 2013 11:36:16 GMT 

내가 뭔가를 분명 실종? system.webServer 섹션을 기본 구성 파일에서 상속받을 수 없습니까?

+0

ALL_CAPS에서 사용해 보시겠습니까? ServerVariables는 일반적으로 모두 대문자입니다. –

+0

Nah, 발췌 부분은 문제가되지 않습니다. 제가 질문에서 언급했듯이, 이것은 내가 다른 곳에서 일하는 것을 알고있는 구성 발췌 부분입니다. (그리고 헤더, 우리가 ASP 또는 ASP.Net에서 액세스 할 때 HTTP의 ALL_CAPS되지 않습니다.) –

답변

1

Serverfault에서이 질문을 참조하십시오. C : \ WINDOWS \ system32 \ inetsrv \ config의 applicationHost.config 파일에서 IIS 전체 다시 쓰기 규칙을 지정할 수 있습니다. 그러면 IIS를 통해 규칙을 관리하고 상속 할 수 있습니다.

편집 : 좋아, 작동하지 않습니다 ... 시도하십시오 what's recommended here, 차이가 있는지 확인하십시오. 모든 요청에 ​​대해 모든 모듈을 실행하면 다시 작성자가 상속 된 다시 쓰기 설정을 올바르게 선택할 수 있습니다.

+0

그 중 하나라도 차이를 만들 것으로 보이지 않았다, 나는 두렵다. –

+0

기록을 위해, 당신은 또한'C : \ Windows \ SysWOW64 \ inetsrv \ Config'에있는 같은 파일을 검사 할 것을 제안했지만,이 역시 문제를 해결하는 것으로 보이지 않습니다. –

+0

'applicationHost.config'에''섹션이 없습니다; 그 속성을' '노드에 추가해도 아무런 차이가 없습니다. (흥미롭게도,'system32'' applicationHost.config'를 편집 할 때마다,'SysWOW64'는 IIS에 의해 똑같이 편집됩니다.) –