โดยปรกติเมื่อเราลง Tomcat เรียบร้อยแล้วก็ยังไม่สามารถเรียกใช้ไฟล์ jsp จาก Apache ผ่านทางพอร์ต 80 ได้โดยตรง เรายังต้องเรียกใช้ผ่านพอร์ต 8180 อยู่ หากเราต้องการให้ Apache รู้จักไฟล์ jsp และทำให้ jsp สามารถทำงานได้โดยใช้ Tomcat เป็นตัวจัดการกับไฟล์เหล่านี้อีกทีนึง เราสามารถทำได้โดยการเพิ่ม mod_jk ให้กับ Apache มีวิธีดังต่อไปนี้
เพิ่มมอดูลให้กับ Apache โดยถ้าเป็น Apache 2 ก็สั่ง:
# aptitude install libapache2-mod-jk
ถ้าหากต้องการใช้กับ Apache 1 ก็เป็นแพกเกจชื่อ libapache-mod-jk
เมื่อลงเสร็จเรียบร้อยแล้ว หากเราเข้าไปที่ /etc/apache2/mods-available จะปรากฏ jk.load ขึ้น คราวนี้เราต้องสร้างไฟล์คอนฟิก mod_jk สำหรับ Apache ขึ้นมา โดยให้ชื่อว่า jk.conf
# vi /etc/apache2/mods-available/jk.conf
ข้างในไฟล์ให้ใส่ข้อความดังต่อไปนี้
JkWorkersFile "/etc/libapache2-mod-jk/workers.properties"
JkLogFile "/var/log/apache2/mod_jk.log"
JkShmFile "/var/log/apache2/jk-runtime-status"
JkLogLevel debug
JkOptions +ForwardKeySize +ForwardURICompat -ForwardDirectories
# หากใช้ virtual host เข้าร่วมให้ comment บรรทัดข้างล่างนี้ออกครับ
# วิธีนี้ใช้ได้เฉพาะไฟล์ jsp เท่านั้น ไม่สามารถใช้กับ servlet ได้ ซึ่งต้อง mount อีกแบบนึง
JkMount /*.jsp ajp13_worker
คราวนี้เราก็พร้อมที่จะโหลด mod_jk ให้กับ Apache แล้วครับ
# a2enmod jk
ยังไม่จบแต่เพียงเท่านี้เราต้องแก้ไขค่า workers.properties ก่อนเพื่อให้ Apache สามารถทำงานได้อย่างถูกต้อง
# vi /etc/libapache2-mod-jk/workers.properties
โดยตัวหลัก ๆ ที่ต้องแก้ไขมีดังต่อไปนี้
workers.tomcat_home=/usr/share/tomcat5.5
workers.java_home=$JAVA_HOME
ps=/
worker.list=ajp13_worker
worker.ajp13_worker.port=8009
worker.ajp13_worker.host=localhost
worker.ajp13_worker.type=ajp13
worker.ajp13_worker.lbfactor=1
worker.loadbalancer.type=lb
worker.loadbalancer.balanced_workers=ajp13_worker
เมื่อบันทึกไฟล์เรียบร้อยแล้วคราวนี้เราก็ restart apache เป็นอันเสร็จพิธี หากลองเรียก http://localhost/index.jsp จะแสดง page เหมือนกับ http://localhost:8180 แต่ root ของไฟล์ jsp จะขึ้นอยู่กับ ROOT.xml หากต้องการใช้งานให้เต็มที่สามารถใช้เวอร์ชวลโฮสต์เข้าช่วยอีกแรง