IIS + Tomcat
Not: Bu yapılandırma örneğinde IIS 5.0 ve Tomcat 4.0.3 kullanılmıştır. IIS ve/veya Tomcat’in farklı versiyonları için işe yaramayabilir.
IIS ve Tomcat kurulumu için hem Tomcat hem de IIS tarafında yapılması gerekenler ayrı başlıklar altında aşağıdaki gibidir:
Tomcat tarafı:
- ISAPI Redirect DLL’inin kopyalanması
- Registry dosyasının hazırlanması
- Tomcat uriworkermap.properties dosyasının düzenlenmesi
- Tomcat worker.properties dosyasının düzenlenmesi
- Tomcat server.xml dosyasının düzenlenmesi
- Tomcat’in Windows NT/2K servisi olarak ayarlanması
IIS tarafı:
- Tomcat ISAPI filtresinin eklenmesi
- Hoşgeldin sayfalarının ayarlanması
ISAPI Redirect DLL’inin kopyalanması
IIS’e gelen Java Servlet/JSP istekleri IIS’e yüklenen bir ISAPI filtresi üzerinden Tomcat’e gönderilir. Bu iş için isapi_redirect.dll isimli bir dosya kullanılır. Bu dosyayı (isapi_redirect.dll) Tomcat’i kurduğunuz dizin altında bin dizinine kopyalamanız gerekir. (Başka bir dizin de tercih edilebilir. Ancak dosyaların ilgili yerlerde bulundurulması açısından bin dizinini tercih etmemizde yarar var.)
Registry dosyasının hazırlanması
isapi_redirect.dll’i ihtiyacı olan yapılandırma değişkenlerine erişmek için Windows Registry’sini kullanır. Bu yüzden bir registry dosyası hazırlayıp bunu Windows Registry’ sine eklemek ya da direkt olarak gidip registry’i düzenlemek gerekir. Birincisi nisbeten daha kolay olacağından onu tercih edebiliriz. Bunun için Tomcat’i kurduğumuz dizin altındaki conf dizinine gidip altına jk isminde bir dizin açalım. Dizin ismi olarak jkyı şeçmemizin herhangi bir özel nedeni yok. Kısaca Jakarta ismini ifade ediyor sadece. Daha sonra bu dizin altına diğer yapılandırma dosyalarını da ekleyeceğiz. jk dizini altında iis_redirect.reg isminde bir dosya açarak içerisine şunları yazalım:
Not: Buradaki ${TOMCAT_HOME}’u Tomcat’i kurduğunuz dizin ismi ile değiştirin. (mesela: C:\\Tomcat4IIS gibi.) Ayrıca dizin ayracı olarak \\ kullanmayı unutmayın.
[HKEY_LOCAL_MACHINESOFTWAREApache Software FoundationJakarta Isapi Redirector1.0]
“extension_uri”=”/jakarta/isapi_redirect.dll”
“log_file”=”${TOMCAT_HOME}logsiis_redirect.log”
“log_level”=”emerg”
“worker_file”=”${TOMCAT_HOME}confjkworker.properties”
“worker_mount_file”=”${TOMCAT_HOME}confjkuriworkermap.properties”
Dosyayı Windows Registry’sine eklemek için üzerine sağ tuş ile tıklayıp menüden Ekle (Merge)’i seçin.
Tomcat uriworkermap.properties dosyasının düzenlenmesi
uriworkermap.properties IIS’e gelen hangi isteklerin Tomcat’e yönlendirilmesi konusunda gerekli bilgileri içerir. Bu dosyayı ilk kurulumda elle üretmemiz gerekir. Bunun için Tomcat’i kurduğumuz dizin altındaki conf dizini altında bir önceki adımda açmış olduğumuz jk dizinine giderek uriworkermap.properties isminde bir dosya üretelim. Dosyaya verdiğimiz ismi farklı seçebiliriz. Ancak registry’de de bu ismi kullandığımızdan dolayı onu da değiştirmek kaydıyla. Bu dosya içerisine şunları yazalım:
# '/servlet' ile başlayan tüm linkleri 'myTomcatWorker' a gönder.
/servlet/*=myTomcatWorker
# '.jsp' ile biten tüm tüm linkleri 'myTomcatWorker' a gönder.
/*.jsp=myTomcatWorker
Tomcat worker.properties dosyasının düzenlenmesi
Tomcat, IIS’den gelen istekleri arkada çalışan worker isimli bir işlem ile çalıştırır. worker.properties dosyası bunun için gerekli yapılandırma değişkenlerinin tanımlandığı yerdir. Bu dosyayı elle üretmemiz gerekir. Bunun için Tomcat’i kurduğumuz dizin altındaki conf dizini altında açmış olduğumuz jk dizinine giderek worker.properties isminde bir dosya üretelim. Dosyaya verdiğimiz ismi farklı seçebiliriz. Ancak registry’de de bu ismi kullandığımızdan dolayı onu da değiştirmek kaydıyla. Bu dosya içerisine şunları yazalım:
#
worker.tomcat_home={beni-değiştir}#
# worker.java_home java platform’unu kurduğunuz dizini göstermeli. Mesela: C:jdk1.4.0 gibi.
#
worker.java_home={beni-değiştir}
#
# Dizinleri ayırmak için kullanılan karakter NT için: , UNIX için: /
#
ps=
#
# Tomcat’in kullandığı worker’ların isim listesi. Bizim örneğimizde
# bir tane var onu yazmamız gerekir. Birden fazla olduğu durumlarda
# virgül (,) ile ayrılır.
#
worker.list=myTomcatWorker#
# worker tipi, portu ve dinleyeceği host isimleri.
# Biz bu örnek için sadece ajp13 isimli tip ile ilgileniyoruz. AJP Tomcat ile
# web sunucularının konuşurken kullandığı protokol. ajp13 -< AJP v1.3 protokolu
#
# port numarası daha sonra server.xml’de tanımlayacağımız AJP protokol sunucusunun
# istekleri dinlediği port numarası
#
worker.myTomcatWorker.type=ajp13
worker.myTomcatWorker.port=9009
worker.myTomcatWorker.host=localhost
Tomcat server.xml dosyasının düzenlenmesi
Server.xml dosyası Tomcat’in yapılandırma dosyasıdır. Tomcat’i ilk kurduğunuzda hazırlanmış olarak gelir. Bu adımda Tomcat’in sadece IIS ile çalışması için gerekli ayarları yapacağız. server.xml dosyası Tomcat dizini altındaki conf dizini içerisindedir. Bu dosyayı açıp içeriğini aşağıdaki kısımla değiştirelim:
server.xml Indir
port=”9009″ minProcessors=”5″ maxProcessors=”75″
acceptCount=”10″ debug=”0″/>
<Engine name=”Standalone” defaultHost=”localhost” debug=”0″>
<Logger className=”org.apache.catalina.logger.FileLogger”
prefix=”catalina_log.” suffix=”.txt”
timestamp=”true”/>
<Realm className=”org.apache.catalina.realm.MemoryRealm” />
<Host name=”localhost” debug=”0″ appBase=”c:/inetpub/wwwroot” unpackWARs=”true”>
<Valve className=”org.apache.catalina.valves.AccessLogValve”
directory=”logs” prefix=”localhost_access_log.” suffix=”.txt”
pattern=”common”/>
<Logger className=”org.apache.catalina.logger.FileLogger”
directory=”logs” prefix=”localhost_log.” suffix=”.txt”
timestamp=”true”/>
<Context path=”" docBase=”" debug=”0″/>
</Host>
</Engine>
</Service>
</Server>
Aşağıdaki kısımda C:/inetpub/wwwroot’u IIS’in sizin kurulumunuzdaki web kök dizini ile değiştirin.
<!-- Define the default virtual host --> <Host name="localhost" debug="0" appBase="c:/inetpub/wwwroot" unpackWARs="true">
Böylece Tomcat’e Java Servlet ve JSP’lerini IIS’in web kök dizini içerisinde arayacaktır.
Not: Bunu mevcut server.xml üzerinde bir kısım değişiklikler yaparak da elde etmek mümkündür. Zaten dikkat edilirse içeriğin çoğunluğu aynıdır. Fakat burada açıklanmasının kafa karıştırabileceğini düşündüğümden hazır halini veriyorum
Tomcat’in Windows NT/2K servisi olarak ayarlanması
Tomcat’i Windows NT/2K servisi olarak ayarlayabiliriz. Böylece makine açılır açılmaz Tomcat’in çalışması sağlanabilir. Tomcat’i kurduğumuz dizin altında bin dizininde bir betik dosyası hazırlayıp bunu çalıştırarak Tomcat’i servis olarak yükleyebiliriz. Aynı şekilde servis olarak eklediğimiz Tomcat’i Windows NT/2K servisleri arasından çıkarabiliriz.
Eklemek için:
inst-as-service.bat isminde bir dosya üretin ve içine şunları yazın:
set TOMCAT_HOME=c:tomcat4iis "%TOMCAT_HOME%bintomcat.exe" -install Tomcat "%JAVA_HOME%jrebinserverjvm.dll"-Djava.class.path="%TOMCAT_HOME%binbootstrap.jar;%JAVA_HOME%libtools.jar" -Dcatalina.home="%TOMCAT_HOME%" -start org.apache.catalina.startup.BootstrapService -params start -stop org.apache.catalina.startup.BootstrapService -params stop -out "%TOMCAT_HOME%"logsstdout.log -err "%TOMCAT_HOME%"logsstderr.log
Çıkarmak için:
uninst-service.bat isminde bir dosya üretin ve içine şunları yazın:
set TOMCAT_HOME=c:tomcat4iis "%TOMCAT_HOME%bintomcat.exe" -uninstall Tomcat
Tomcat ISAPI filtresinin eklenmesi
IIS’e gelen Java Servlet ve JSP isteklerinin Tomcat’e yönlendirilmesi için gerekli olan isapi_redirect.dll dosyasından bahsetmiştik. Şimdi bu dll’i IIS’e tanıtmamız gerekir. Öncelikle IIS servislerini kapatmamız gerekir. Sonra IIS’in yönetim konsolunu açalım. Windows 2000 Professional’da konsola Denetim Masası (Control Panel), Yönetim Araçları (Administrative Tools), Internet Servisleri Yönetimini (Internet Services Management) açın.





Hoşgeldin sayfalarının ayarlanması
Hoşgeldin sayfaların web sunucusunun kök dizininde bir dizin isteği geldiğinde sunulacak ilk dosyadır. Mesela: index.html gibi. Doğal olarak IIS .jsp ile biten dosyaları hoşgeldin sayfası olarak kabul etmez. Bunun için yukarıda olduğu gibi IIS’in yönetim konsolundan Ana Özellikler’den (Master Properties) WWW Servisi (WWW Service) düzenleme ekranına gidin.


