Squid 역방향 프록시를 사용하여 Apache http에서 https로 리디렉션

Squid 역방향 프록시를 사용하여 Apache http에서 https로 리디렉션

웹사이트 example.com을 실행하는 웹 서버가 있습니다. Apache에서 https 리디렉션으로 http를 구성했습니다. 아래를 참조하세요

<VirtualHost *:80> 
  ServerName www.example.com 
  Redirect permanent / https://www.example.com
</VirtualHost>

<VirtualHost *:443> 
  ServerName www.example.com 
  DocumentRoot /usr/www/htdocs 
  SSLEngine On #etc... 
</VirtualHost>

http에 대한 요청이 내부적으로 성공적으로 리디렉션되었습니다.

따라서 문제는 Squid Reverse Proxy를 거쳐야 하는 외부 요청입니다. 그리고 http://example.com에 연결을 시도하면 http 연결이 설정됩니다. https가 아닌 경우 리디렉션에 실패합니다.

URL을 다음과 같이 입력하면http://example.com/index.html, 연결이 https로 성공적으로 리디렉션됩니다.

이 문제를 어떻게 정리할 수 있을지 아는 사람 있나요?

답변1

에 연결하려고 하면 http://example.comHTTPS가 아닌 HTTP 연결이 설정되고 리디렉션이 실패합니다.

http://example.com당신이 겪고 있는 한 가지 문제는 Apache 가상 호스트 구성에 항목이 없다는 것입니다 . 접두사 www는 기술적으로 의 하위 도메인 example.com이므로 해결을 위한 별도의 사이트로 간주됩니다. Squid 관련 문제를 제외하고 간단한 수정 방법은 example.com지시문 의 다양한 변형을 고려하여 가상 호스트를 수정하는 것입니다 ServerAlias.

# Redirect http://example.com and http://www.example.com
# to https://www.example.com

<VirtualHost *:80> 
   ServerName example.com
   ServerAlias www.example.com
   Redirect permanent / https://www.example.com
</VirtualHost>

# Serve https://example.com and https://www.example.com
# from the same DocumentRoot

<VirtualHost *:443> 
  ServerName example.com 
  ServerAlias www.example.com
  DocumentRoot /usr/www/htdocs 
  SSLEngine On #etc... 
</VirtualHost>

https://example.com다음 으로 리디렉션할 수도 있습니다 https://www.example.com.

# Redirect http://example.com and http://www.example.com
# to https://www.example.com

<VirtualHost *:80> 
   ServerName example.com
   ServerAlias www.example.com
   Redirect permanent / https://www.example.com
</VirtualHost>

# Redirect https://example.com to https://www.example.com

<VirtualHost *:443> 
  ServerName example.com 
  Redirect permanent / https://www.example.com
  SSLEngine On #etc... 
</VirtualHost>

# Serve https://www.example.com

<VirtualHost *:443> 
  ServerName www.example.com 
  DocumentRoot /usr/www/htdocs 
  SSLEngine On #etc... 
</VirtualHost>

이름 기반 가상 호스트에 대해 자세히 알아볼 수 있습니다.여기.

관련 정보