이 기사는 Apache를 리버스 프록시로 구성하는 것을 자세히 설명합니다. ProxyPass 및 ProxyPassReverse를 사용하여 필요한 모듈을 사용하고 가상 호스트를 작성하고 일반적인 문제 (예 : 구성 오류, 연결 문제) 및 제출에 필요한 모듈을 제작합니다.
리버스 프록시로 아파치를 구성하려면 요청을 백엔드 서버로 전달하는 가상 호스트를 설정해야합니다. 이는 일반적으로 Apache 구성 파일 내에서 ProxyPass
및 ProxyPassReverse
지시문을 사용하여 수행됩니다 (일반적으로 운영 체제에 따라 /etc/apache2/sites-available/
또는 유사한 디렉토리에 위치). 과정을 세분화합시다.
1. 필요한 모듈 활성화 : proxy
및 proxy_http
모듈이 활성화되어 있는지 확인하십시오. Debian/Ubuntu 시스템에서는 다음을 사용합니다.
<code class="bash">sudo a2enmod proxy proxy_http sudo systemctl restart apache2</code>
다른 분포에는 명령이 약간 다를 수 있습니다. 자세한 내용은 배포 문서를 참조하십시오.
2. 가상 호스트 생성 : 새 가상 호스트 구성 파일을 만듭니다. 예를 들어, 백엔드 서버가 http://backend.example.com:8080
에서 실행 중이라고 가정 해 봅시다. 구성 파일은 다음과 같습니다.
<code class="apache"><virtualhost> ServerName proxy.example.com ServerAlias www.proxy.example.com ProxyPreserveHost On #Preserve the original host header ProxyPass / http://backend.example.com:8080/ ProxyPassReverse / http://backend.example.com:8080/ #Optional: Add error handling ErrorLog ${APACHE_LOG_DIR}/proxy-error.log CustomLog ${APACHE_LOG_DIR}/proxy-access.log combined </virtualhost></code>
ServerName
및 ServerAlias
: 리버스 프록시에 액세스하는 데 사용될 도메인 이름을 정의합니다.ProxyPreserveHost On
: 이것은 중요합니다. 클라이언트의 원래 호스트 헤더가 보존 및 백엔드 서버로 전달되도록합니다. 이것은 적절한 기능을 위해 호스트 헤더에 의존하는 응용 프로그램에 필수적입니다.ProxyPass / http://backend.example.com:8080/
: 이 지침은 Apache에게 모든 요청을 http://backend.example.com:8080/ ( http://backend.example.com:8080/
/
의 모든 요청을 백엔드 서버로 전달하도록 지시합니다. 필요에 따라 경로를 조정할 수 있습니다.ProxyPassReverse / http://backend.example.com:8080/
: 이 지침은 백엔드 서버의 응답에서 URL을 수정하는 데 필수적입니다. 그것 없이는 백엔드의 응답에서 링크와 리디렉션이 올바르지 않습니다.ErrorLog
및 CustomLog
: 선택 사항이지만 디버깅 및 모니터링에 적극 권장됩니다.3. 가상 호스트를 활성화하고 Apache를 다시 시작하십시오 : 새로 생성 된 가상 호스트를 활성화하고 Apache를 다시 시작하여 변경 사항을 적용하십시오. 다시, 명령은 분포에 따라 다를 수 있습니다. 데비안/우분투 :
<code class="bash">sudo a2ensite <your_virtual_host_file_name> sudo systemctl restart apache2</your_virtual_host_file_name></code>
성숙하고 널리 사용되는 웹 서버 인 Apache는 리버스 프록시로 사용될 때 몇 가지 장점을 제공합니다.
mod_proxy_balancer
와 같은)을 사용하여 Apache는 여러 백엔드 서버에 트래픽을 배포하여 성능 및 가용성을 향상시킬 수 있습니다.리버스 프록시 문제 문제 해결에는 종종 Apache의 오류 로그를 검사하고 실수에 대한 구성 파일을 확인하는 것이 포함됩니다. 일반적인 문제와 해당 솔루션은 다음과 같습니다.
ProxyPass
및 ProxyPassReverse
지시문을 다시 확인하고 백엔드 서버가 올바르게 도달하고 응답 할 수 있는지 확인하십시오.Host
헤더에 의존하는 경우 Apache 구성에 ProxyPreserveHost On
설정되어 있는지 확인하십시오./var/log/apache2/error.log
또는 유사한 위치에 있습니다). 이 로그는 종종 문제의 원인에 대한 귀중한 단서를 제공합니다.curl
로 테스트 : curl
사용하여 Apache 서버의 관점에서 백엔드 서버에 대한 연결을 직접 테스트하십시오. 이를 통해 문제가 Apache의 구성 또는 백엔드 서버 자체에 있는지 여부를 분리하는 데 도움이 될 수 있습니다.예, Apache를 HTTPS와의 역 프록시로 절대적으로 사용할 수 있습니다. 이것은 보안을위한 일반적이고 적극 권장되는 관행입니다. Apache 서버에서 SSL/TLS를 구성한 다음 가상 호스트를 구성하여 요청을 안전하게 전달해야합니다.
HTTPS를 지원하기 위해 이전 예제를 수정하는 방법은 다음과 같습니다.
<code class="apache"><virtualhost> ServerName proxy.example.com ServerAlias www.proxy.example.com SSLEngine on SSLCertificateFile /etc/ssl/certs/your_certificate.crt SSLCertificateKeyFile /etc/ssl/private/your_certificate.key ProxyPreserveHost On ProxyPass / https://backend.example.com:8443/ ProxyPassReverse / https://backend.example.com:8443/ #Optional: Add error handling ErrorLog ${APACHE_LOG_DIR}/proxy-error.log CustomLog ${APACHE_LOG_DIR}/proxy-access.log combined </virtualhost></code>
/etc/ssl/certs/your_certificate.crt
및 /etc/ssl/private/your_certificate.key
SSL 인증서 및 개인 키 파일의 실제 경로로 바꾸십시오. 또한 지정된 포트 (예 : 8443)의 HTTP를 통해 백엔드 서버에 액세스 할 수 있는지 확인해야합니다. Apache에서도 proxy_ssl
모듈을 활성화해야 할 수도 있습니다.
위 내용은 Apache를 리버스 프록시로 어떻게 구성합니까?의 상세 내용입니다. 자세한 내용은 PHP 중국어 웹사이트의 기타 관련 기사를 참조하세요!