¾ÆÆÄÄ¡ À¥¼¹ö ¿Í ÅèĹ ¿¬µ¿Çϱâ - tomcat connector(mod_jk) , reverse proxy(mod_proxy)
°³¿ä
Apache httpd web server ¿Í tomcat À» ¿¬°èÇÏ´Â ¹æ¹ýÀº ¼¼ °¡Áö°¡ ÀÖ´Ù.
¿¹ÀüºÎÅÍ ¸¹ÀÌ ¾²´ø ¹æ¹ýÀº tomcat connector(mod_jk)¸¦ »ç¿ëÇÏ´Â ¹æ¹ýÀÌ°í ´Ù¸¥ Çϳª´Â mod_proxy¸¦ »ç¿ëÇÏ¿© reverse proxy ±â´ÉÀ» »ç¿ëÇÏ´Â ¹æ¹ý, ¸¶Áö¸·Àº mod_proxy_ajp ¸¦ »ç¿ëÇÏ¿© AJP ProtocolÀ» reverse proxy ·Î »ç¿ëÇÏ´Â ¹æ¹ýÀÌ´Ù.
mod_proxy °¡ mod_jk ¿¡ ºñÇØ ¼³Á¤ÀÌ °£ÆíÇÏ°í AJP °°Àº ƯÁ¤ WAS ÀÇÁ¸ÀûÀÎ ÇÁ·ÎÅäÄÝÀ» »ç¿ëÇÏÁö ¾ÊÀ¸¹Ç·Î ¼º´ÉÀÌ ´õ ÁÁ´Ù°í ÇÏÁö¸¸ mod_jk °¡ ¿À·§µ¿¾È ½á¿Ô°í Ä£¼÷Çؼ mod_jk ¸¦ ¸¹ÀÌ »ç¿ëÇÏ´Â ÆíÀε¥ ¼¼ °¡Áö ¹æ¹ý ¸ðµÎ Á¤¸®ÇØ º»´Ù.
¿¬°á ¹æ½Ä | ÀåÁ¡ | ´ÜÁ¡ | Ư¡ |
---|---|---|---|
mod_jk |
|
| |
mod_proxy |
|
| |
mod_proxy_ajp |
|
| |
Tomcat Connector mod_jk
mod_jk compile
- RHEL6/CentOS 6 ±âÁØÀ̸ç compile À» ÇÏ·Á¸é »çÀü¿¡ gcc ¿Í httpd-devel ÆÐÅ°Áö°¡ ¼³Ä¡µÇ¾î ÀÖ¾î¾ß ÇÑ´Ù. (yum install gcc gcc-c++ httpd-devel)
- mod_jk compile ÀÌ ±ÍÂúÀ¸¸é ÷ºÎµÇ¾î ÀÖ´Â pre-compiled connector ¸¦ ´Ù¿î¹ÞÀº ÈÄ¿¡/etc/httpd/moduels ¿¡ º¹»çÇØ ÁØ´Ù.
- mod_jk_1.2.37-x86_64.tar.gz - RHEL6 64bit
- mod_jk_1.2.37-x86.tar.gz - RHEL6 32bit
- http://tomcat.apache.org/download-connectors.cgi ¿¡¼ ¼Ò½º download (ÇöÀç 1.2.37)
- tar zxvf tomcat-connectors-1.2.37-src.tar.gz
- cd tomcat-connectors-1.2.37-src/native
- ./configure --with-apxs=/usr/sbin/apxs
- make
- make install
make install ÈÄ /etc/httpd/modules/mod_jk.so ¿¡ º¹»ç°¡ µÈ´Ù.
SELinux ¸¦ »ç¿ëÇÑ´Ù¸é mod_jk.so ¿¡ httpd_modules_t Context °¡ ¼³Á¤µÇ¾î¾ß apache httpd °¡ ÀÐÀ» ¼ö ÀÖ´Ù. ´ÙÀ½ ¸í·É¾î·Î ¼³Á¤ÇÏÀÚ.
chcon -u system_u -r object_r -t httpd_modules_t /etc/httpd/modules/mod_jk.so
Apache httpd ¼³Á¤
- cd /etc/httpd
vim conf/httpd.conf
vim conf.d/mod_jk.conf
vim conf/workers_jk.properties
tomcat Àº server1, server2 µÎ ´ë¿¡ ¼³Ä¡µÇ¾î ÀÖ°í Connector Port´Â 8009 ¶ó °¡Á¤
TomcatÀÇ AJP Connector °¡ listenÇÏ´Â Port´Â tomatÀÇ conf/server.xml ¿¡¼ ´ÙÀ½ Ç׸ñ¿¡¼ È®ÀÎÇÒ º¼ ¼ö ÀÖ´Ù.
tomcat Àº ±âº» URIEncoding ÀÌ ISO-8859-1 À̹ǷΠÇѱÛÀÌ ±úÁö¹Ç·Î ¸ðµç Ä¿³ØÅÍ ¼³Á¤¿¡ URIEncoding="UTF-8" À» Ãß°¡ÇØ¾ß ÇÑ´Ù.
vim conf/uriworkermap.properties - ¾î¶² url ¿äû¿¡ ´ëÇØ tomcat °ú ¿¬°èÇÒÁö ¼³Á¤ÇÑ´Ù. (uriworkermap.properties configuration )
- service httpd restart
- Browser ·Î ¿¬°áÇÏ¿© Á¤»ó µ¿ÀÛ ¿©ºÎ È®ÀÎ
TroubleShooting
- SELinux ¸¦ ¾µ °æ¿ì(¼ºñ½º ¼¹ö¶ó¸é SELinux »ç¿ëÀ» Àû±Ø ±ÇÀåÇÑ´Ù!) ¹®Á¦°¡ ¹ß»ýÇÒ ¶§ ´ÙÀ½ ¹®¼ Âü°í
mod_proxy »ç¿ë
reverse proxy ·Î µ¿ÀÛÇÏ´Â ¸ðµâÀÌ´Ù. º¸¾È»ó ¹®Á¦°¡ ÀÖÀ» ¼ö ÀÖÀ¸¹Ç·Î reverse proxy ¿¡ ´ëÇؼ ¼÷ÁöÇÑ ÈÄ¿¡ ¼³Á¤ÇÏ´Â °ÍÀ» ±ÇÀåÇÑ´Ù.
mod_proxy.so ¿Í mod_proxy_http.so °¡ LoadModule ·Î ·ÎµùÇØ¾ß ÇÑ´Ù. (RHEL/CentOS ´Â ±âº» ·ÎµùµÊ)
reverse proxy ·Î »ç¿ëÇÒ °æ¿ì ±âº»ÀûÀ¸·Î ¸ðµç clinet °¡ ¿¬°á °¡´ÉÇϹǷΠ³»ºÎ¿¡¼¸¸ »ç¿ëÇØ¾ß ÇÏ´Â serviceµîÀÇ °æ¿ì Àû¿ë½Ã access control À» ¿©ºÎ¸¦ °ËÅäÇØ¾ß ÇÑ´Ù.
¼³Á¤ ¿¹
WAS IP °¡ 192.168.10.100ÀÌ°í WebApp À̸§ÀÌ mywebapp
- Web ServerÀÇ VirtualHost À̸§Àº dummy-host.example.com
- ProxyRequests - On ÀÏ °æ¿ì Forward Proxy ·Î µ¿ÀÛÇϸç Off ÀÏ °æ¿ì Reverse Proxy ÀÌ´Ù.
ProxyPreserveHost - On ÀÏ °æ¿ì HTTP ¿äû Çì´õÁß Host: ºÎºÐÀ» À¯ÁöÇÑ´Ù.
httpd´Â /mywebapp/foo, /mywebapp/bar ¸ðµÎ 192.168.10.100:8080/mywebapp ¿¡ ¿¬°áÇÏ°Ô µÈ´Ù. ¸¸¾à ƯÁ¤ URL ÆÐÅÏÀº reverse proxy ·Î µ¿ÀÛÇÏÁö ¸»¾Æ¾ß ÇÑ´Ù¸é ProxyPassMatch À¸·Î URL À» ó¸®ÇÒ ¼ö ÀÖ´Ù.
SSL PROXY
SSL ÀÏ °æ¿ì Proxy ±â´ÉÀÌ ²¨Á® ÀÖ´Ù. SSL ÇÁ·ÎÅäÄÝÀ϶§µµ mod_proxy ¸¦ »ç¿ëÇÏ·Á¸é °¡»ó È£½ºÆ® Ç׸ñ¿¡ ´ÙÀ½ ³»¿ëÀ» Ãß°¡ÇØ¾ß ÇÑ´Ù.
TODO
mod_proxy_balancer Àû¿ë¿¹Á¦ Ãß°¡
mod_proxy_ajp »ç¿ë
AJP13 protocolÀ» »ç¿ëÇؼ reverse proxy ·Î µ¿ÀÛÇÏ´Â ¹æ½ÄÀÌ´Ù. http reverse proxy ¿Í ºñ½ÁÇÏÁö¸¸ protocol À» ajp ·Î Àû¾îÁÖ¸é µÈ´Ù.
°°ÀÌ º¸±â