需求:客戶的服務器由我及他自己的技術人員維護,服務器上有多個web在運營,asp、php、java的混合著都有,原先的web架構是nginx+apache+iis+x*tomcat,但客戶的技術人員時常要對一些小站點[asp、php]進行調整,如增刪站點或做偽靜態規則等處理,而此時問題出來了,客戶技術員只對iis配置熟悉,對配置nginx、apache這些很不熟悉,并且這些web站點也沒什么訪問量,所以基本上不用考慮性能這塊。所以最終決定給全換成iis+x*tomcat,asp、php全由iis搞定。由于iis配置與php的集成網上很多,所以這里我只記錄iis與java服務器tomcat的集成。
不知道我以這張圖能不能說明我要表達的意思,一句話,把站點中uri請求以ejf后綴結尾的都轉發給后端java服務器tomcat來處理。好了,廢話不多說了,準備實站開工。
1、第一步首先下載isapi_redirect.dll 文件,目前最新版本為1.2.31,下載地址為:http://archive.apache.org/dist/tomcat/tomcat-connectors/jk/binaries/ 注意下載的版本與你的os關系,我的服務器是使用的win 2003 32位版本。所以應該下載win32版本。將下載下來的isapi_redirect-1.2.31.dll放在tomcat7根目錄下的jakarta目錄中,當然你也可以隨意的放在其它目錄。
2、在jakarta目錄下同時建立三個文件:install.reg、uriworkermap.properties、workers.properties,千萬別在這三個文件中的配置沒有完全對的情況下就導入install.reg這個文件到注冊表中。
install.reg文件內容:
[-hkey_local_machine\software\apache software foundation\jakarta isapi redirector\1.0]
[hkey_local_machine\software\apache software foundation\jakarta isapi redirector\1.0]
"extension_uri"="/jakarta/isapi_redirect-1.2.31.dll"
"log_file"="d:\\usr\\local\\lyservice\\tomcat\\tomcat7\\jakarta\\logs\\isapi.log"
"log_level"="error"
"worker_file"="d:\\usr\\local\\lyservice\\tomcat\\tomcat7\\jakarta\\workers.properties"
"worker_mount_file"="d:\\usr\\local\\lyservice\\tomcat\\tomcat7\\jakarta\\uriworkermap.properties"
uriworkermap.properties文件內容
#所有請求后綴為ejf的uri都攔截轉發給對應的后端java服務器來處理
/en.dgdy.cc/*.ejf=worker1
/cn.dgdy.cc/*.ejf=worker2
3、到這里,針對tomcat的配置處理就配置完了,接下來就是需要在iis中進行配置,首先在iis中建立對應的兩個web站點,對應的目錄也應該指向到與你tomcat配置虛擬主機所指向的同一個文件夾下。這里在iis中的建立web站點與建立其它站點完全沒有區別。
4、接下來就是比較重要的配置了,分別為這兩個站點建立一個虛擬目錄<jakarta>。注意此虛擬目錄的路徑一定要為tomcat7\jakarta這個目錄,并且在此目錄下一定要有最前面我們配置的三個配置文件及那個dll文件。
5、在iis en.dgdy.cc站點上右鍵--->屬性--->主目錄,將執行權限設置為腳本和可執行文件。
再點擊isapi篩選器打開如下窗口并進行配置,一定要注意可執行文件的引用位置一定要與上面的虛擬目錄及注冊表文件中配置的目錄一致,切記切記。
6、添加一個新的web服務擴展
這里的擴展名不能隨便亂改,要求的文件也一定要是對應目錄下的那個dll文件,同時一定要把下面的“設置擴展狀態為允許”勾上。切記切記。
7、好了,針對en.dgdy.cc 站點在iis中的配置就完成了,同上步驟,把cn.dgdy.cc在iis中的配置也配置上,并且把install.reg這個注冊表文件導入到注冊表中。這點千萬也別忘了,如果配置完后再次分別打開這兩個站點的屬性面板切換到isapi篩選器選項卡面板中如果看到的都是綠色向上箭頭則表示配置無誤,反之如果是紅色,則配置有問題或需要重啟iis服務器。如下圖所示。
8、最后,如果都變成了綠色向上箭頭,那么我們就來驗證一下吧,如訪問http://cn.dgdy.cc/html/callme.html?act=contact這個頁面 如果頁面中的留言驗證碼能出來,則表明配置成功。
最后的話:如果照著以上配置你確保一針一線都沒有配錯,但訪問對應的動態頁面還是不能轉發給后端java服務器來處理,則我能想的有可能你存在以下幾點錯誤之一。
a)、服務器os是64位,但你下載的是32位的dll類庫文件,反之。。。。。。
b)、測試一下直接加上端口號連接你的tomcat服務器看是否能正常訪問
c)、導入install.reg文件過早并且文件中的jdk或dll類庫文件目錄沒有設置對
d)、rp問題。。。。。。