April 07, 2020
서버 한대에 아파치 웹서버, 톰캣 인스턴스 그리고 노드 서버 까지 운용할 수 있을까?
LoadModule proxy_http_module modules/mod_proxy_http.so
LoadModule proxy_scgi_module modules/mod_proxy_scgi.so
LoadModule proxy_ajp_module modules/mod_proxy_ajp.so
LoadModule proxy_balancer_module modules/mod_proxy_balancer.so위의 모듈을 이용해, tomcat 서비스, node 서비스를 둘 다 동시에 서비스 할 수도 있고, tomcat 서비스는 로드 밸런싱도 할 수 있다. (proxyhttp or proxyajp 이용 하면 된다.)
만약, apache httpd에서 tomcat을 proxy 형태로 로드 밸런싱 하고자 한다면, 아래와 같이 설정 하면 된다.
ProxyPassMatch ^/(.*[.](jsp))$ balancer://tomcat
ProxyPassReverse ^/(.*[.](jsp))$ balancer://tomcat
ProxyPass / http://localhost:{{ NODE_PORT }}/ Keepalive=On retry=0
ProxyPassReverse / http://localhost:{{ NODE_PORT }}/
<Proxy balancer://tomcat>
BalancerMember ajp://localhost:{{ tomcat1_ajp_port }} loadfactor=1 route=tomcat1 Keepalive=On
BalancerMember ajp://localhost:{{ tomcat2_ajp_port }} loadfactor=1 route=tomcat2 Keepalive=On
ProxySet lbmethod=bytraffic
</Proxy>로드 밸런싱 메소드는 httpd 문서를 보면 된다.
물론, 굳이 이런 상황이라면, apache httpd를 고집하지 말고, nginx로 가면 된다.
modproxybalancer - Apache HTTP Server Version 2.4