2016-12-20 3 views
1

Apache 2.4.6을 실행하는 CentOS 7은 인터넷에 연결된 웹 서버의 중심 역할을합니다. 따라서 역방향 프록시 연결 설정이 몇 가지 있습니다. 그들은 모두 다른 램프를 가리키며 훌륭하게 작동합니다. 그러나 나는 그 중 하나를 실행하는 하나의 IIS 서버가 있습니다 .Net/ASP 웹 사이트는 제대로로드하고 싶지 않습니다. IIS 웹 사이트는 Apache에서 아래 설정을 사용하여 모든 & CSS 항목을로드합니다.IIS에 대한 Apache 역방향 프록시

<VirtualHost *:80> 
    SeverName example.com 
    ProxyRequests Off 
    ProxyPreserveHost On 
    ProxyPass /extDirectory/ http://internalserver/internalDirectory/ 

    <Location /extDirectory/ > 
     ProxyPassReverse http://internalserver/internalDirectory/ 
     Order allow,deny 
     Allow from all 
    </Location> 

</VirtualHost> 

외부 사이트에 액세스하는 동안이 스크린 샷 당 세션 ID 사고가있을 것 같습니다 그러나 : internal-is-OK

아파치 로그와 내가 무엇을 할 수 있습니다 액세스하는 같은 내부 사이트에 비해 External-gets-error

IIS의 로그에서 수집 오류가 표시되지 않습니다. 내가 얻는 유일한 오류는 개발자 도구에서 IE의 buil; t를 사용할 때 "200 인증을 찾을 수 없습니다"라는 메시지가 표시되는데, 성공적으로 로그인되어 있습니다.

답변

1

ASP.Net 개발자가 소프트웨어 수정을 통해 Apache를 사용하여이 문제를 해결할 수 없었습니다. 응답 및 솔루션은 다음과 같습니다.

엔터프라이즈는 서버로 오는 각 요청을 인증하는 데 사용되는 인증 토큰을 만듭니다. 모든 AJAX 요청에는 유효한 인증 토큰이 있어야합니다. 그렇지 않으면 거부됩니다. 토큰의 일부는 최종 사용자의 IP 주소입니다. AJAX 요청의 IP 주소가 원래 로그인 요청과 다른 경우 토큰 유효성 검사가 실패하고 AJAX 요청이 거부됩니다. Enterprise v6.5.2는 HTTP_X_CLUSTER_CLIENT_IP, HTTP_X_FORWARDED_FOR, REMOTE_ADDR 순으로 세 가지 특정 HTTP 헤더를 찾아 최종 사용자의 IP 주소를 결정합니다. 우리는 프록시 서버가 AJAX 요청에 대해 다른 IP 주소를 전송하고 있다고 생각합니다. 그러면 토큰 유효성 검사가 실패하고 AJAX 요청이 거부됩니다. 바로 요소 아래

열기 기업의 web.config 상단 ADD 근처에서이 라인 :

<add key="USER_HOST_ADDRESS" value="127.0.0.1" /> 

저장하고 닫습니다 Web.config의 후 IIS를 다시 시작합니다.

그게 전부입니다. 아파치가 아니라 ASP.NET 문제로 판명되었습니다.