Apache 쿼리 문자열 재작성이 작동하지 않습니다.

Apache 쿼리 문자열 재작성이 작동하지 않습니다.

프록시를 강화하려면 쿼리 매개변수에서 도메인 이름을 다시 작성해야 합니다. 프록시는 기본적으로 도메인 재작성이지만 업스트림 서버의 일부 응답에는 궁극적으로 리디렉션으로 사용되는 쿼리 매개변수("위치" 헤더에 있음)가 포함되어 있습니다. 업스트림 서버 대신 프록시를 가리키도록 이 도메인 이름을 다시 작성할 수 있어야 합니다. 내 현재 구성은 다음과 같습니다.

<VirtualHost *:443>

SSLEngine On
SSLProxyEngine On
# Set the path to SSL certificate
# Usage: SSLCertificateFile /path/to/cert.pem
SSLCertificateFile /etc/apache2/ssl/apache.crt
SSLCertificateKeyFile /etc/apache2/ssl/apache.key

# Servers to proxy the connection, or;
# List of application servers:
# Usage:
# ProxyPass / http://[IP Addr.]:[port]/
# ProxyPassReverse / http://[IP Addr.]:[port]/
# Example:

RewriteEngine On
LogLevel alert rewrite:trace6
RewriteCond %{QUERY_STRING} (.*)upstream\.com(.*)
RewriteRule (.*)upstream\.com(.*)  %1proxy.com%2 [N]

ProxyPass / https://upstream.com/
ProxyPassReverse / https://upstream.com/

</VirtualHost>

프록시는 제대로 작동하지만 업스트림 서버가 가장 먼저 하는 일은 두 번째 리디렉션에 대한 쿼리 매개변수가 포함된 리디렉션을 보내는 것입니다. 이로 인해 프록시는 트래픽 제어를 잃게 됩니다. 업스트림 서버 응답으로 인해 업스트림 서버 대신 프록시로 다시 리디렉션되도록 이 쿼리 문자열을 다시 작성해야 합니다.

mod_rewrite가 활성화되고 "apachectl -t"는 구성이 정상이라고 보고합니다.

답변1

a2enmod Rewrite터미널에 입력한 다음 Apache를 다시 시작하여 다시 쓰기 모듈이 켜져 있는지 확인하십시오.

또한 가상 호스트 내부의 디렉터리 블록에 AllowOverride가 있는지 확인하세요.

관련 정보