Чекор по чекор
Почетни чекори со Java
Објектно оријентирани концепти во Јава - Прв дел
Објектно оријентирани концепти во Јава - Втор дел
Објектно оријентирани концепти во Јава - Трет дел
Јава сервлети - Прв дел
Единствен Јава објект (singleton)
Најчести 10 грешки што ги прават Java програмерите
повеќе...
Што е тоа ...
... IDE
... Tomcat
... објект?
... класа?
... наследување?
... интерфејс?
... наследување? (прашања и одговори)
повеќе...
За загревање
Нов проект во Eclipse?
Примитивни податочни типови
Променливи
Оператори
Доделувачки, аритметички и Unary оператори
Оператори за еднаквост, релации и услови
Изрази, искази и блокови
повеќе...
Како да ...
... конвертирам java.sql.Timestamp во java.util.Date
... зададам формат на датум
... ковертирам „long“ во HEX и обратно
... прочитам датотека и променам стринг
... креирам ZIP датотека
... поврзам Apache и Tomcat користејќи mod_jk
... пратам недефиниран број на атрибути до некоја метода
повеќе...
Java преку примери
new Socket(String addr,int port)
new URL(String address)
new URL(String protocol, String host, int port, String file)
CommPort: getInputStream()
CommPortIdentifier: getPortIdentifiers()
Statement: executeQuery(String sql)
Statement: getMaxRows()
повеќе...
Грешка
Нов напис
Рубрика:
Наслов:
  
  

страна број:123
... поврзам Apache и Tomcat користејќи mod_jk
прегледано:  2460
 вкупно гласови:  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-то и проверете како функцинорираат поврзани заедно.
 
Коментирај
автор: Анонимус
Анонимните коментари ќе бидат објавувани веднаш после нивната проверка.
За да вашиот коментар биде веднаш валиден претходно пријавете се или креирајте свој профил


напишал: Анонимус (18.01.2008 10:56:26)
Може и со proxyPass и proxyPassReverse, јас така ги поврзувам.
напишал: igor (21.01.2008 12:12:11)
Е како де, дај повеќе детали.

А како си задоволен со брзина?
пребарување
најди
 
Форум
 
JugMK
GetJava Download Button
http://www.eclipse.org
 
 
 
 
Copyrights © 2006 - 2017 by Java.com.mk
Права и правила за користење на java.com.mk
Контакт адреса:
contact AT java.com.mk
Powered by Supernova v.0.70 beta
JavaTM и Java-базираните ознаки се трговски марки или регистрирани трговски марки на Sun Microsystems, Inc. во САД и други држави. Java.com.mk никако не соработува со Sun Microsystems, Inc.
Сите други трговски марки се сопственост на нивните сопственици.