遇到的問題跟之前fedora與centos遇到的完全不同
像使用OSS11.1之中的YAST2新增的apache2、tomcat6與內定的mod_jk,按理來說,本身提供的應該新增好啟動就會正常,但聽原使用OSS的老師是說不行
然後我就以我的經驗來做,一開始就發現tomcat可以正常啟動,但apache會卡在mod_jk.log說worker don't create
後來發現,原來在wokers.properties上worker.ajp13.host若設為localhost,那就會對應到tomcat config server.xml中的<host name="localhost"....>
但之前的文章在這邊都沒問題,因為OSS的tomcat config server.xml我照文章做新增加一個<host name="ipaddress" ...>的,但workers.properties中的worker.ajp13.host我還是用localhost,所以apache啟動做mod_jk initial時就會對應不起來,所以,把localhost改ipaddress之後就正常了
但在找尋資料時發現一個大陸blog上有一份資料還不錯
apache和tomcat的整合 --使用mod_jk.so
在文章的內容我發現,原來之前的mod_jk的用法根本就不需要那麼麻煩
只要把mod_jk.so與worker.properties準備好
然後自己寫一份單純的jk.conf,再叫apache去include…一切搞定
最後,我發現雖然mod_jk美其名是建立apache與tomcat的tunnel
但實際上是假象
在jk.conf中的
JkMount /*.jsp ajp13
JkMount /test/* ajp13
...
...
上述的一切是依tomcat-documentROOT為起點的指示來做
也就是說
/*.jsp是指如果網址上輸入http://domain/a.jsp時,server接到request時,會在tomcat的webapps/ROOT去找,而不是apache的www/html(或www/htdocs)來找
/test/*.jsp是指如果網址上輸入http://domain/test/a.jsp時,server接到request時,會在tomcat的webapps/ROOT/test去找,而不是apache的www/html/test(或www/htdocs/test)來找
不但找的位置是如上述所說,基本上還會有一個問題
以http://domain/a.jsp為例
基本上,要找a.jsp的話,應該會到tomcat/webapps/ROOT底下去找
但是,如果你在apache的對等位置(如:www/html)底下已放了a.jsp的話,apache會優先把a.jsp執行,那因為apache無法直接執行jsp檔,所以,就會印出jsp的原始內容
很奇怪吧…就以我們想用mod_jk的理念是,在網址上遇到*.jsp的,應該都先丟給tomcat來執行,然後執行後產生的html再丟給apache來實現…但事實上並不然…
這是一個蠻重要的觀念
(感覺上,還不如使用mod_proxy...)
沒有留言:
張貼留言