Tôi muốn truy cập Tomcat thông qua máy chủ web Apache bằng các trình kết nối. Tôi đã bám sát tài liệu: http://tomcat.apache.org/connector-doc/generic_howto/quick.html Tôi chỉ sửa đổi một chút để khớp với cấu trúc thư mục được sử dụng trên Debian- (Squeeze) -System.
Vì vậy, tôi đã thêm phần sau vào /etc/apache2/httpd.conf:
# Load mod_jk module
# Update this path to match your modules location
#LoadModule jk_module libexec/mod_jk.so
# Declare the module for <IfModule directive> (remove this line on Apache 2.x)
#AddModule mod_jk.c
# Where to find workers.properties
# Update this path to match your conf directory location (put workers.properties next to httpd.conf)
JkWorkersFile /etc/apache2/workers.properties
# Where to put jk shared memory
# Update this path to match your local state directory or logs directory
JkShmFile /var/log/apache2/mod_jk.shm
# Where to put jk logs
# Update this path to match your logs directory location (put mod_jk.log next to access_log)
JkLogFile /var/log/apache2/mod_jk.log
# Set the jk log level [debug/error/info]
JkLogLevel info
# Select the timestamp log format
JkLogStampFormat "[%a %b %d %H:%M:%S %Y] "
# Send everything for context /examples to worker named worker1 (ajp13)
JkMount /tomcat7/* worker1
Tôi đã nhận xét việc tải mô-đun, vì điều đó đã xảy ra, sau khi tôi cài đặt mod_jk thông qua hệ thống gói (libapache2-mod-jk).
Công nhân của tôi. Sản phẩm trông như thế này:
# Define 1 real worker using ajp13
worker.list=worker1
# Set properties for worker1 (ajp13)
worker.worker1.type=ajp13
worker.worker1.host=localhost
worker.worker1.port=8009
Tomcat 7 được cài đặt trực tiếp từ kho lưu trữ từ Apache, vì nó không phải là một gói trong Squeeze. Tomcat 7 đang chạy và có thể truy cập dưới cổng riêng của nó (8180, để không va chạm với tomcat6 từ hệ thống gói). Theo như tôi hiểu, bây giờ tôi sẽ thấy trang web tomcat với http: // host / tomcat7 / . Nhưng tôi nhận được một 404 thay thế. Chuyện gì thế?
Sau khi lượng tử gợi ý để đặt mức ghi nhật ký để gỡ lỗi (cảm ơn), tôi đã làm điều đó và tìm thấy thông báo lỗi sau trong mod_jk.log: 'jk_map_to_st Storage :: mod_jk.c (3585): thiếu bản đồ uri cho 176.9.9.55:/tomcat7 / '. Tôi đã googled cho điều đó và tìm thấy http://old.nabble.com/mod_jk%2C-missing-uri-map-td23984359.html
Vì vậy, các tùy chọn được đặt trong httpd.conf không được sử dụng trong Virtualhost. Tôi đã thêm 'JkMountCopy On' vào Virtualhost của mình - và lần đầu tiên nhận được Tomcat 404 (thay vì httpd 404). Vấn đề ở đây là anh ta cố gắng truy cập chính xác URI được gắn, vì vậy trong trường hợp của tôi / tomcat7. Tôi đã sử dụng thay vì tên của ứng dụng web là gắn kết và mọi thứ đều tốt cho tôi.