본문 바로가기

Server/Web

Web - Apache를 이용한 프록시 패스 설정 가이드

728x90

프록시 패스란?

프록시 패스는 클라이언트의 요청을 다른 서버로 전달하는 기능입니다.

  • 백엔드 서버 분리 : 클라이언트는 프록시 서버만을 통해 접근하며, 실제 백엔드 서버는 외부에 노출되지 않습니다.
  • 로드 밸런싱 : 프록시 서버에서 요청을 받아 여러 백엔드 서버로 분산시킬 수 있습니다.
  • 보안 강화 : 프록시 서버에서 SSL 종료를 처리하여 백엔드 서버의 부담을 줄여 네트워크 보안을 강화할 수 있습니다.

1. 모듈 활성화

httpd.conf 파일은 일반적으로 /etc/httpd/conf/httpd.conf 또는 /etc/apache2/httpd.conf에 위치합니다.

# mod_proxy 모듈 활성화
LoadModule proxy_module modules/mod_proxy.so

# mod_proxy_http 모듈 활성화 (프록시 패스를 위해 필요)
LoadModule proxy_http_module modules/mod_proxy_http.so

2. 프록시 패스 설정

<VirtualHost *:80>
    ServerAdmin samso@tistory.com
    DocumentRoot /samso/samsodir/samsoroot

    # 프록시 패스 설정
    ProxyPass "/api" "http://192.168.1.111:8080/" timeout=5 retry=60 keepalive=On
    ProxyPassReverse "/api" "http://192.168.1.111:8080/"
    
    ErrorLog ${APACHE_LOG_DIR}/error.log
    CustomLog ${APACHE_LOG_DIR}/access.log combined
</VirtualHost>

 

프록시 패스 설정 설명

  • ProxyPass : 특정 경로의 요청을 다른 서버로 전달합니다.
    위의 코드는 /api로 들어오는 요청은 http://192.168.1.111:8080/ 로 전달합니다.
  • ProxyPassReverse : 프록시된 서버의 응답 헤더를 클라이언트에게 변환하여 전달합니다.

3. ProxyPass / ProxyPassReverse 옵션

옵션 설명
timeout 프록시 요청에 대한 응답을 기다리는 최대 시간을 지정합니다. [초 단위]
retry 프록시 서버가 다운된 후 다시 시도하기까지의 대기 시간을 지정합니다. [초 단위]
noquery 요청 URL의 쿼리 문자열을 프록시된 URL에 추가하지 않습니다.
interpolate 환경 변수 치환을 활성화합니다. [%{VARNAME} 형식]
nocanon 프록시 URL로 요청을 전달할 때 URL을 표준화하지 않습니다.
keepalive 백엔드 서버와의 keep-alive 연결을 사용할지 여부를 지정합니다. [Default : On]

4. 설정 적용

# systemctl restart httpd

 

728x90
반응형