Apache를 이용한 WAS 연동에는 jk_mod를 이용하여 apj 통신을 하는 방법과, proxy를 이용하여 연결을 전달되도록 사용할 수 있는 방법이 있습니다.
mod_jk를 통하여 설정을 하는 경우 정적 파일의 처리 및 로드밸런싱 등 세밀한 부분을 설정할 수 있다는 장점이 있습니다.
proxy의 설정은 단순하게 해당 URL을 내부의 다른 URL로 변경하여 처리하는 방식으로 web server의 역할이 부하 분산이 아닌 내부의 특정 서버가 처리할 수 있도록 전달하는 방법입니다. 해당 방법은 쉽게 설정이 가능하며, WAS 다른 설정을 할 필요성이 없습니다.
http.conf 파일 중 mod_proxy 관련 설정 정보 주석 제거
LoadModule proxy_module modules/mod_proxy.so
LoadModule proxy_http_module modules/mod_proxy_http.so
http://dev.nakanara.com 주소로 접속하였을 때 내부적으로 http://localhost:8080 넘겨서 처리하도록 설정하였습니다.
extra/httpd-vhosts.conf
<VirtualHost *:80>
ServerAdmin dev.nakanara.com
ProxyRequests off
ProxyPreserveHost On
ProxyPass / http://localhost:8080/ acquire=3000 timeout=600 Keepalive=On
ProxyPassReverse / http://localhost:8080/
</VirtualHost>
이를 응용한다면 부하 분산을 위해서 기능에 따른 서브도메인을 분리하여 사용하도록 설정도 가능합니다.
http://dev.nakanara.com -> 8080, http://api.nakanara.com -> 9090 연결하여 서버의 부하를 줄일 수 있는 방법도 있습니다.
extra/httpd-vhosts.conf
<VirtualHost *:80>
ServerAdmin dev.nakanara.com
ProxyRequests off
ProxyPreserveHost On
ProxyPass / http://localhost:8080/ acquire=3000 timeout=600 Keepalive=On
ProxyPassReverse / http://localhost:8080/
</VirtualHost>
<VirtualHost *:80>
ServerAdmin api.nakanara.com
ProxyRequests off
ProxyPreserveHost On
ProxyPass / http://localhost:9090/ acquire=3000 timeout=600 Keepalive=On
ProxyPassReverse / http://localhost:9090/
</VirtualHost>
이와 별도로 API의 버전을 변경하였지만, 외부에서는 동일한 주소를 사용하도록 하고, 내부에서만 다르게 호출하도록 설정하여 사용할 수 있습니다.
http://api.nakanara.com/user -> http://localhost:8080/user/v1 변경된 API 호출
extra/httpd-vhosts.conf
<VirtualHost *:80>
ServerAdmin api.nakanara.com
ProxyRequests off
ProxyPreserveHost On
<Location /user>
ProxyPass http://localhost:8080/user/v2 acquire=3000 timeout=600 Keepalive=On
ProxyPassReverse http://localhost:8080/user/v2
</Location>
</VirtualHost>
-
Keepalive
- 사용자로부터 연결된 Port를 유지하여 동일한 사용자의 요청을 처리하도록 하는 옵션
- 요청마다 Port를 새로 연결하는 것은 비효율
- KeepAliveTimeout 설정값을 초과하는 경우 close 함
- KeepAliveTimeout 전에 요청이 오는 경우 대기시간 초기화
관련 정보
- https://httpd.apache.org/docs/2.4/mod/mod_proxy.html
- https://codebeamer.com/cb/wiki/6027114#section-1-1_+Install+httpd
#apache #httpd #proxy #webserver
'FullStack > 10. WeB' 카테고리의 다른 글
전자 결재 연동 시 세션 끊김 현상 (0) | 2022.12.16 |
---|---|
폐쇄망에서 HTTPS 접속 시 IE 페이지 표시 안 되는 현상 (0) | 2021.11.23 |
[HTTPS] https + ie11 에서 fontawesome가 표시 안되는 현상 (0) | 2020.12.20 |
[APACHE] 로컬에서 https 테스트 환경 (0) | 2020.12.18 |
[HTML] Iframe 사이즈에 따른 Frame 조절 (0) | 2020.11.16 |