Şimdi gelelim teknik detaylara. Dışardan rahatça erişmek için port olarak 80 yani http portunu kullanmak lazım. Kimse web sitesine girerken www.bilmemne.com:12345 yazmak istemez. Neyse Apache zaten default olarak http portuna kuruluyor. Redhat türevi sunucularda
$yum install httpd
diyerek apache sunucusunu kurabilirsiniz. İsterseniz veya özel bir sürüm kurmak istiyorsanız apache sitesinden de indirebilirsiniz. tar.gz uzantılı dosyayı indirip çıkartıyoruz. Sonra Tomcat'i kurmamız lazım. Sonra derken, aslında sıra farketmez. Onun için de
$yum install tomcat6
diyebilirsiniz. Benim zamanımda son sürümler Apache için 2.2 Tomcat için 6 idi. Hangi programların hangi versiyonlarının yum'da yüklü olduğunu
$yum search httpd
veya
$yum search tomcat
diyerek de kontrol edebilirsiniz. Neyse konumuza geri dönelim. yum ile yüklediğiniz zaman /etc klasörüne yüklüyor. İsterseniz taşıyabilirsiniz de. Mesela /opt'a taşıyabilirsiniz. Yum'suz kurmak için
$wget http://godel.cs.bilgi.edu.tr/apache/tomcat/tomcat-6/v6.0.26/bin/apache-tomcat-6.0.26.tar.gz
deyip indirebilirsiniz. Yalnız bu link sürekli değişebilir. O yüzden Apache sitesinden kontrol edin. Sonra
$tar xzvf apache-tomcat-6.0.26.tar.gz
deyip çıkartın. İsterseniz her defasında apazche-tomcat-6.0.26 yazmak istemiyorsanız sembolik link oluşturabilirsiniz. Bir nevi kısayol olarak düşünülebilir.
$ln -s /opt/apache-tomcat-6.0.26 tomcat
Şimdi teknik detaylara devam edelim. Tomcat'in varsayılan portu 8080. (Bunu da değiştirebilirsiniz. Değiştirmek için tomcat klasörü içinde conf klasöründe server.xml dosyasını açın. Orada comment edilmemiş vaziyette bulunan 8080 portunu değiştirebilirsiniz. Değiştirmeye filan gerek yok aslında ama 8080 başkasına atanmışsa veya illa başka port kullanmak istiyorsanız o sizin bileceğiniz iş.) Benim kullandığım metod proxy. Yani Apache içindeki bir klasörü direk Tomcat'a yönlendirmek. Bunun için Apache'nin httpd.conf doyasını değiştireceğiz.
LoadModule proxy_module modules/mod_proxy.so
LoadModule proxy_http_module modules/mod_proxy_http.so
Bu satırlar zaten vardır. Yoksa ekleyin. Bunlardan sonra
ProxyPass /apac_dir/ http://localhost:8080/tomcat_dir/
ProxyPassReverse /apac_dir/ http://localhost:8080/tomcat_dir/
satırlarını yazın. Bunlar şu manaya geliyor. Apache'ye apac_dir dizini üzerinden gelen istekler direk olarak 8080 portunda çalışan sunucunun tomcat_dir dizinine yönledirilir. Burada Tomcat'e bir bağımlılık yok, porta bir bağımlılık yok, hatta localhost'a bile bağımlılık yok. Yani istediğiniz bir sunucunun istediğiniz bir portuna 'port' edebilirsiniz. Bunu yapmanız sonucunda artık www.mysiteadress.com/apac_dir dediğiniz zaman bu isteği Tomcat karşılar ve Tomcat'in webapps/ROOT içindeki tomcat_dir çalışır. Ha unutmadan b işemleri yaptıktan sonra tomcat ve apache'yi yeniden başlatmayı unutmayın.
Bu yaptığımız yöntem belli bir dizini tamamen apache üzerinden tomcat'e yönlendirmeye yaradı. Fakat apache statik dataları tomcatten daha verimli işlediği için bir dizine gelen bütün istekleri tomcat'e yönlendirmek mantılı olmayabilir. 'Daha verimli bir yol yok mu?' 'Sadece gereken dataları tomcat'e yönlendirsek?' diye düşünenler varsa mod_jk metodunu kullabilirler.
Hiç yorum yok:
Yorum Gönder