mod_proxy 설정
목적
Apache 로 간단하게 프록시 서비스를 구현하는 설정이다. Apache 를 프록시로 사용하는 이유중에 하나는 Apache 모듈의 기능을 이용할 수 있다 Mod_Security 를 mod_proxy 와 같이 설정하여 웹방화벽 기능을 제공 할 수도 있다. |
셋팅 환경
CentOS 7.X 64bit HTTP (RPM) + MOD SSL (RPM) + Lets Encrypt SSL 인증서 + MOD_PROXY (기본내장) 테스트 도메인 : test.kensei.co.kr DNS A Record 변경작업 필요 : mod_proxy 를 설정한 서버 아이피로 변경 필요 |
서비스 (테스트) 구조
요청 : Client –> MOD_PROXY (프록시) –> 웹서버 응답 : 웹서버 –> MOD_PROXY (프록시) –> Client |
커널 패킷 포워딩 설정
/etc/sysctl.conf
net.ipv4.ip_forward = 1 |
/etc/httpd/conf/httpd.conf
<Directory /> AllowOverride none # Require all denied Require all granted </Directory> |
/etc/httpd/conf.d/vhost.conf (HTTP 프록시 설정)
<VirtualHost *:80> ServerName test.kensei.co.kr ProxyPass / http://test.kensei.co.kr/ ProxyPassReverse / http://test.kensei.co.kr/ </VirtualHost> |
/etc/httpd/conf.d/ssl.conf (HTTPS 프록시 설정)
<VirtualHost *:443> ServerName test.kensei.co.kr:443 SSLEngine on ProxyPass / https://test.kensei.co.kr/ ProxyPassReverse / https://test.kensei.co.kr/ SSLProxyEngine on SSLCertificateFile “/root/test.kensei.co.kr/cert.pem” SSLCertificateKeyFile “/root/test.kensei.co.kr/privkey.pem” SSLCertificateChainFile “/root/test.kensei.co.kr/chain.pem” </VirtualHost> |
: 웹 서버의 인증서 파일을 MOD_PROXY 를 설정한 서버로 복사해야 한다
위에서 DNS A RECORD 변경 되므로 프록시 서버는 test.kensei.co.kr 의 도메인을 찾을수 없음
웹서버 아이피와 도메인을 명시해준다.
: /etc/hosts 수정
127.0.0.1 localhost localhost.localdomain localhost4 localhost4.localdomain4 ::1 localhost localhost.localdomain localhost6 localhost6.localdomain6 # 아이피 도메인 12x.45.67.xx test.kensei.co.kr |
비교적 간단하게 프록시 서버 설정을 할 수 있다.