Pound를 통해 Location 헤더를 반환하는 경우

2229 단어 pound아파치
테스트 서버에 Pound를 넣고 다양한 서비스를 테스트하고 있습니다.
http로 액세스 할 때 https로 리디렉션하고 싶지만 왜 http가되는 현상이 있습니다.
구체적으로

80port 액세스는 Pound에서받습니다.
Pound는 Apache의 VirtualHost 8080으로 전송합니다.
Apache는 Mod_rewrite를 사용하여 URI를 유지하면서 https로 리디렉션합니다.
Apache에서 “Location: https://hoge.jp/”라는 헤더 첨부로 출력된다
Pound가 요청한 기기로 반환

단순한 역방향 프록시 처리입니다.
Pound가 왜 "Location: htps : // 허리. jp/ "을 "Location: h tp:// jp/ "로 변경합니다.
입니다.



해결책은 RewriteLocation 0을 넣는 것이 었습니다.
ListenHTTP
    Address 0.0.0.0
    Port    80
    Client  120
    xHTTP   1
    AddHeader "X-Forwarded-Port: 80"
    RewriteLocation 0

    Service
        HeadRequire "Host: hoge.jp"
        BackEnd
            Address 127.0.0.1
            Port    8002
            Priority 1
        End
    End
End

man pound에서 문서를 읽으면 · ·
   RewriteLocation 0|1|2
          If 1 force Pound to change the Location: and Content-location: headers in responses. If they point to the back-end itself or to  the
          listener  (but  with  the wrong protocol) the response will be changed to show the virtual host in the request. Default: 1 (active).
          If the value is set to 2 only the back-end address is compared; this is useful for redirecting a request to an HTTPS listener on the
          same server as the HTTP listener.

아무래도 틀리거나 하고 있는 것을 수정해 주는 것 같은 기능인 것 같습니다만···
여러 가지 시도했지만 동일한 호스트 이름의 경우 Schema는 원래와 동일하게 유지하는 경향이 있습니다.
다른 도메인으로 리디렉션할 때는 그대로 합니다.

Pound + apache나 PHP(Header("Location: https://~);)로 http->https로 리디렉션시킨 경우
의도하지 않은 움직임을 한 경우는 보면 좋다고 생각합니다.

좋은 웹페이지 즐겨찾기