| | |
| |
|
... поврзам Apache и Tomcat користејќи mod_jk |
прегледано: |
208086 |
вкупно гласови: |
2 |
средна оценка: |
4.5 |
коментари: |
2 |
испрати до пријател
испечати
|
Предефинирана порта, на која што секогаш “слуша” Tomcat-от е 8080. Ова баш и не е толку згодно и практично кога имаме web апликација која што сакаме да ја ставиме “online”. Корисниците би требало секогаш после адреса да допишуваат :8080, и евентуално патеката до сервлетот или jsp страната. Доколку имаме само една аплкација на Tomcat-oт тогаш проблемот со допшување на името на сервлетот може да се избегне со поставување на апликација како предефинирана, но што ако на еден Tomcat сервер имаме повеќе апликации, и сакаме секоја од нив да биде достапна преку единствено адреса, без никакви допишувања на порти или имиња на сервлети и апликации?
Постои многу елеганто решение , кое не само што ни го решава овој проблем, туку и додава екстра ниво на безбедност на нашите апликации. Идеата се состои во следното: поврзување на добро познатиот Apache веб сервер со Tomcat серверот така што сите барања за соодветните апликации ке стигнуваат до Apache веб серверот, тој во позадина , ке прати барање до Tomcat-от , Tomcat-oт ке го обработи барањето, ке го врати до Apache веб серверот, и преку него ке се прати до интернет прелистувачот на корисникот. Во овој случај, корисникот воопшто нема да биде свесен за сето тоа што се случува во позадина,а ние од друга страна ке можеме да ги искористиме сите можности на Apache веб серверот. Како се изведува ова поврзување? Во принцип, конфигурацијата е иста без оглед на тоа дали се работи за Windows или Linux платформа, па затоа она што ке го кажеме важи и за двете. Значи да претпоставиме дека имаме сервер со инсталиран Apache web сервер и Tomcat.
Прво што треба да направиме е да провериме дали во инсталацијата на Apache web сервероте вклучена библиотеката што ни е потребна за меѓусебно поврзување. Библиотеката се вика mod_jk.so. Доколку ја немате инсталирано заедно со Apache web серверот, можете да инсталирате накнадно. Библиотеката може да се разликува во зависност од верзијата на apache-то.Ако ја немате инсталирано, можете да ја превземете од интернет верзијата соодветна на верзијата за apache-то што го имате инсталирено, или можете да го преинсталирате apache-то и при инстсалацијата да назначите да се инсталира и таа библиотека. Откако ке се осигурате дека ја имате потребната библиотека, потребно е да ја вчитате. Тоа се прави на следниот начин: во конфигурациската датотека на apache-то напишете :
LoadModule jk_module modules/mod_jk.so
Со ова, на apache-то му кажуваме ја ја вчитата библиотеката mod_jk.so, која се наоѓа во директориумот modules, кој е стандардниот директориум каде што се сите библиотеки за apache-то. Доколку вие сте ја снимиле библиотеката во некој друг директориум, можете слободно да ја впишете патеката овде. Исто така потребно е да се конфигурираат уште неколку парамерти во конфигурациската датотека на apache-то:
JkWorkersFile conf/workers.properties
JkLogFile logs/mod_jk.log
JkLogLevel info
Со овие параметри, кажуваме каде ке биде во која ке бидат сместени подесувањата во врска со поврзувањето на apache-то и Tomcat-от (во случајов тоа е workers.properties), кажуваме каде ке биде сместена датотетака со логовите и што и како ке се логира. Сега за сега завршивме со конфигурација на apache-то.
Сега ке го разгледаме конфигурациската датотека што ги одредува параметрите за мегусебната комуникација меѓу Apache и Tomcat. Она што задолжително мора да се наоѓа во датотеката е следното:
-Директориумот каде што е инсталирата јава
workers.java_home=C:\java\jdk1.5.0_08
-Директориумот каде што е инсталиран Tomcat-от
workers.tomcat_home=C:\tomcat
-Workers,односно листа на посредници кои го остваруваат поврзувањето
worker.list=konektor1
Може да имаме и повеќе од еден посредник, односно конектор, но во случајов еден е доволен. И на крајот, потребно е да подесиме уште неколку параметри за конекторот.
worker. konektor1.port=8009
worker. konektor1.host=localhost
worker. konektor1.type=ajp13
Како што се гледа, конекторот се поврзува на порта 8009. Пред да продолжите понатаму, отворете ја конфигурациската датотека на Tomcat-от (server.xml) и проверете дали е дефиниран овој ajp13 конектор на порта 8009. Вообичаено , тој е автоматски дефиниран за секоја инсталација на Tomcat. Доколку во датотеката не постои податок за овој конектор, додадете ја следната линија
<Connector port="8009" enableLookups="false" redirectPort="8443" protocol="AJP/1.3" URIEncoding="Windows-1251"/>
Со тоа е завршена конфигурацијата. Сега само треба да му кажеме на apache-то за кои апликациите треба да се обрати до Tomcat-от. Да претпоставиме дека имам некојa Tomcat апликација со име “app”. Сега во конфигурациската датотека за apache-то го додаваме следниот VirtualHost блок
<VirtualHost *:80>
ServerName www.mojsajt.com.mk
RewriteEngine on
JkMount /app* konektor1
RewriteRule ^/$ /app [R,L]
RewriteRule ^$ /app [R,L]
</VirtualHost>
ServerName, го означува името со кое пристапуваме на сајтот. Со JkMount /app* konektor1 ја монтираме Tomcat апликацијата со име app на apache-то , со помош нa konektor1 кој го дефиниравме претходно во датотетеката workers.properties. RewriteEngine и RewriteRule користиме за apache-то да знае кои делови од URL-то се однесуваат на апликацијата на Tomcat-от , а кои делови се користат за пристапување до сајтот.
На крајот, откако е се ова подесено, рестартирајте го прво Tomcat-от, потоа apache-то и проверете како функцинорираат поврзани заедно.
|
|
|
|
|
|
| |
|
|
---|
JavaTM и Java-базираните ознаки се трговски марки или регистрирани трговски марки на Sun Microsystems, Inc. во САД и други држави. Java.com.mk никако не соработува со Sun Microsystems, Inc. Сите други трговски марки се сопственост на нивните сопственици. |
|