2011-01-04 37 views
5

Tôi đang sử dụng tomcat6 với thiết lập mod_jk (cả chạy ở cổng 80) trên ubuntu9.10 và 8.10 máy chủ. Tôi triển khai các tệp chiến tranh trong/usr/share/tomcat/webapps. Trong triển khai, như tôi đã khởi động lại tomcat, tôi sẽ nhận được trang sau khi ứng dụng tomcat được truy cập trên trình duyệt:Chuyển hướng tomcat sang trang bảo trì khi xuống

Service Temporarily Unavailable 

The server is temporarily unable to service your request due to maintenance downtime or capacity problems. Please try again later. 
Apache/2.2.11 (Ubuntu) mod_jk/1.2.15 Server at 192.168.2.54 Port 80 

Làm thế nào tôi có thể chuyển hướng trang này cho một số tự tạo trang bảo trì khác trong khi server tomcat là xuống?.

Trả lời

5

Bạn có thể trang lỗi thiết lập tùy chỉnh trong Apache cho mã lỗi 503.

http://httpd.apache.org/docs/2.2/mod/core.html#errordocument

ErrorDocument 503 /maintance.html 
+0

có nó hoạt động trên một máy. Nhưng trên một máy khác, nó chuyển hướng nhưng trang bảo trì không được hiển thị. Thay vì trang bảo trì, nó hiển thị 'maintenance.html' trên trình duyệt web khi tôi kiểm tra dừng tomcat. Có mẹo hay mẹo nào ở đây không? – user465465

4

Nếu bạn đang sử dụng mod_jk và tomcat nối này dự kiến ​​hành vi. Nếu bạn sử dụng một cái gì đó giống như

ErrorDocument 503 "foo" 

bạn sẽ thấy 'foo' render trên trang hoặc

ErrorDocument 503 "http://www.somedomain.com" 

mà sẽ hướng dẫn bạn đến somedomain.com thành công. Nhưng nếu bạn sử dụng một cái gì đó như

ErrorDocument 503 /maintenance.html 

Apache sẽ không thể tìm thấy [DocumentRoot] /maintenance.html vì nó đang tìm trong bối cảnh đầu nối tomcat. Bạn cần phải ngắt kết nối trình kết nối của mình và yêu cầu Apache phân phối nội dung tĩnh từ một vị trí khác.

Đây là hướng dẫn tốt để giúp bạn bắt đầu với mod_jk. Custom Error Pages with Apache and Tomcat Connectors

chỉnh sửa: Đây là giải pháp tôi đã sử dụng để có được 503 trang tùy chỉnh để hiển thị chính xác.

Đầu tiên, tất cả các trang lỗi tùy chỉnh của chúng tôi được đặt trước bằng mã lỗi vì có khả năng ứng dụng web của chúng tôi sẽ không chứa các tệp có các mã trạng thái này làm gốc của tên tệp. Vì vậy, sử dụng ví dụ của bạn, tôi sẽ có một cái gì đó giống như ba tập tin sau đây trong một thư mục gọi là 'custom_errors':

/503_maintenance.html 
/503_maintenance.css 
/503_corp_logo.png 

Điều này làm cho nó dễ dàng để loại trừ bất kỳ các file liên quan đến các trang lỗi tùy chỉnh từ jk gắn kết. Trong file vhost của chúng tôi, sau đó chúng tôi thiết lập các vị trí tài liệu lỗi và bí danh

#Alias the location of your custom error page files 
Alias   /error/ /var/apache2/2.2/htdocs/custom_errors 
ErrorDocument 503  /error/503_maintenance.html 

#mount the core tomcat application 
JkMount  /*  myWorker 

#set the 503 code if myWorker is unavailable 
#and exclude the 503 pages from the tomcat/jboss application 
JkMount  /*  myWorker;use_server_errors=503 
JkUnMount /503* myWorker 

này về cơ bản cho Apache và mod_jk không để gắn kết bất kỳ tập tin với tiền tố 503 trong bối cảnh đầu nối tomcat và sẽ xem xét tại địa phương đối với những file thay thế. Nếu bạn không muốn sử dụng một vị trí liên quan đến DocumentRoot, bạn có thể sử dụng và bí danh như tôi đã làm.

+0

Trả lời tuyệt vời, nhưng nó không hoạt động cho tôi ... Tôi phải thay đổi hai thứ 1. thêm dấu gạch chéo vào hàng "Bí danh" 2. tháo gắn/lỗi * thay vì/503 * –

+0

Xin chào Andrij: Bạn có thể hãy kiểm tra câu hỏi này, nó tương tự. Tôi sẽ không nhớ sử dụng một trang web để bảo trì, nhưng tôi không biết nơi nào tôi nên đặt chúng cho các cấu hình để làm việc, vui lòng kiểm tra liên kết này: http: // serverfault.com/questions/741494/tomcat-httpd-chạy-một-webapp-khi-dịch vụ-là-không-sẵn-hoặc-quá tải –

Các vấn đề liên quan