Apache를 리버스 프록시 서버로 구성하려면 Apache 구성 파일을 수정하기위한 일련의 단계를 따라야합니다. 다음은 단계별 가이드를 설정하는 데 도움이됩니다.
필요한 모듈 활성화 : 필요한 모듈이 활성화되어 있는지 확인하십시오. 로드 균형을 유지하려면 일반적으로 mod_proxy
, mod_proxy_http
및 mod_proxy_balancer
필요합니다. 데비안 기반 시스템에서 a2enmod
명령을 사용하여 이러한 모듈을 활성화 할 수 있습니다.
<code>sudo a2enmod proxy sudo a2enmod proxy_http sudo a2enmod proxy_balancer</code>
구성 파일 편집 /etc/httpd/conf/httpd.conf
Apache 구성 파일을 엽니 /etc/apache2/apache2.conf
. 백엔드 서버로 트래픽을 직접하기 위해 다음 줄을 추가하십시오.
<code><virtualhost> ServerName example.com ProxyPass / http://backend-server:8080/ ProxyPassReverse / http://backend-server:8080/ </virtualhost></code>
example.com
도메인으로 바꾸고 백엔드 서버의 주소로 http://backend-server:8080/
하십시오.
Apache를 다시 시작 : 구성 파일을 변경 한 후 변경 사항을 적용하려면 Apache를 다시 시작하거나 다시로드해야합니다.
<code>sudo systemctl restart apache2</code>
또는
<code>sudo service apache2 restart</code>
Apache를 리버스 프록시로 설정할 때 몇 가지 일반적인 문제가 발생할 수 있습니다. 다음은 몇 가지 문제와 해당 솔루션입니다.
SSL/TLS 문제 : 백엔드 서버에 SSL/TLS가 필요하고 Apache 구성에서 올바르게 처리하지 않으면 오류가 발생할 수 있습니다. mod_ssl
활성화하고 SSL 연결을 처리하도록 Apache를 구성하십시오. VirtualHost 구성에서 SSLProxyEngine On
사용할 수 있습니다.
<code><virtualhost> ServerName example.com SSLEngine on SSLCertificateFile /path/to/cert.pem SSLCertificateKeyFile /path/to/key.pem ProxyPass / https://backend-server:8443/ ProxyPassReverse / https://backend-server:8443/ </virtualhost></code>
응답 시간이 느린 경우 리버스 프록시 설정이 느린 응답 시간이 발생하면 Apache 서버가 충분한 리소스를 가지고 있는지 확인하고 연결 풀링 또는 시간 초과 설정 조정을 고려하십시오.
<code>ProxyPass / http://backend-server:8080/ connectiontimeout=5 timeout=30</code>
URL 재 작성 문제 : URL을 올바르게 다시 작성하지 않으면 특정 URL 패턴을 처리하도록 mod_rewrite
구성해야 할 수도 있습니다. VirtualHost 구성에 다시 쓰기 규칙 추가 :
<code>RewriteEngine On RewriteRule ^/oldpath/(.*)$ /newpath/$1 [P,L]</code>
예, Apache는 여러 백엔드 서버의 역전 프록시로 사용할 수 있습니다. 이것은 일반적으로로드 밸런싱을 통해 수행됩니다. 설정하는 방법은 다음과 같습니다.
로드 밸런싱 모듈 활성화 : mod_proxy_balancer
모듈이 활성화되었는지 확인하십시오.
<code>sudo a2enmod proxy_balancer</code>
로드 밸런싱 구성 : Apache 구성 파일에 다음 구성을 추가하십시오.
<code><proxy balancer:> BalancerMember http://backend1:8080 BalancerMember http://backend2:8080 ProxySet lbmethod=byrequests </proxy> <virtualhost> ServerName example.com ProxyPass / balancer://mycluster/ ProxyPassReverse / balancer://mycluster/ </virtualhost></code>
이 구성은 2 개의 백엔드 서버 ( backend1
및 backend2
)가있는로드 밸런싱 클러스터 ( mycluster
)를 설정하고 요청에 따라로드를 배포합니다.
Apache를 다시 시작 : 변경 사항을 적용하려면 Apache를 다시 시작하거나 다시로드하십시오.
<code>sudo systemctl restart apache2</code>
Apache를 리버스 프록시로 구성 할 때 서버 및 백엔드 응용 프로그램을 보호하기위한 몇 가지 보안 조치를 구현하는 것이 중요합니다. 몇 가지 권장 단계는 다음과 같습니다.
SSL/TLS를 활성화하여 SSL/TLS를 활성화하여 클라이언트와 리버스 프록시 간의 보안 연결을 활성화하십시오. 유효한 SSL 인증서로 Apache를 구성하십시오.
<code><virtualhost> ServerName example.com SSLEngine on SSLCertificateFile /path/to/cert.pem SSLCertificateKeyFile /path/to/key.pem ProxyPass / https://backend-server:8443/ ProxyPassReverse / https://backend-server:8443/ </virtualhost></code>
HTTP 헤더 구현 : 보안 관련 HTTP 헤더를 사용하여 보호를 향상시킵니다.
<code>Header always set X-Frame-Options "SAMEORIGIN" Header always set X-Content-Type-Options "nosniff" Header always set X-XSS-Protection "1; mode=block" Header always set Content-Security-Policy "default-src 'self';"</code>
액세스 제한 : 특정 디렉토리 또는 리소스에 대한 액세스를 제한하기 위해 .htaccess
파일 또는 <directory></directory>
지시문을 사용하십시오.
<code><directory> Require all denied </directory></code>
요금 제한 : mod_ratelimit
또는 mod_evasive
사용한 DOS 공격을 방지하기위한 비율 제한을 구현하십시오.
<code><ifmodule mod_ratelimit.c> <location></location> SetOutputFilter RATE_LIMIT SetEnv rate-limit 500k </ifmodule></code>
로깅 및 모니터링 : 트래픽을 모니터링하고 의심스러운 활동을 감지하기 위해 자세한 로깅을 활성화합니다. 로그 액세스 및 오류 로그로 Apache를 구성하고 모니터링 도구를 설정하여 이상을 경고합니다.
<code>ErrorLog /var/log/apache2/error.log CustomLog /var/log/apache2/access.log combined</code>
이러한 단계를 수행하고 이러한 보안 조치를 구현함으로써 Apache로 강력하고 안전한 역 프록시 설정을 보장 할 수 있습니다.
위 내용은 Apache를 리버스 프록시 서버로 어떻게 구성합니까?의 상세 내용입니다. 자세한 내용은 PHP 중국어 웹사이트의 기타 관련 기사를 참조하세요!