2013-05-01 42 views
9

Tôi có một webapp trên máy chủ tomcat của tôi như thế này:Tomcat webapp trên cổng 80

mydomain.com:8080/mywebapp

Sau đó, tôi kết nối với webapp của tôi, và nó đang làm việc một cách chính xác, nhưng những gì tôi muốn là để xem webapp của tôi như thế này:

mydomain.com

Vì vậy, tôi không muốn chỉ tomcat trên cổng 80, tôi không muốn truy cập ứng dụng web của mình thông qua tên của nó, tôi muốn kết nối trực tiếp sử dụng tên miền của tôi URI.

Làm thế nào tôi có thể làm điều này? Tôi muốn điều này để làm việc với Linux (Ubuntu 12.04 LTS) và các máy chủ Windows.

Trả lời

9

Có một số cách để đạt được điều này, nhưng cách phổ biến nhất để giải quyết nó là để chạy Apache như một proxy ngược lại ở phía trước của nó. Bạn có thể tìm thấy một số chi tiết here. Điều này sẽ làm việc trên cả Linux và Windows. Đối với Linux, bạn cũng có thể sử dụng authbind để cho phép Tomcat liên kết với cổng 80. Chỉ cần thay đổi cổng thành 80 trong server.xml của bạn sẽ không hoạt động trong Linux, vì nó yêu cầu bạn khởi động Tomcat là root, không phải là rất tốt ý kiến.

Ngoài ra, để có webapp của bạn tại /, bạn có thể triển khai tệp chiến dịch của mình dưới dạng ROOT.war.

+1

Tuyệt vời, tôi nghĩ rằng tôi sẽ sử dụng authbind, bằng cách sử dụng các bước sau: http://java.dzone.com/articles/running-tomcat-port-80-user – eLRuLL

1

Bạn cần đặt máy chủ web apache và định cấu hình để sử dụng tomcat.

Bạn cần sử dụng mod_jk để định cấu hình máy chủ web apache để liên lạc với tomcat.

Sử dụng số link này để thiết lập mod_jk.

6

Chạy bất kỳ ứng dụng nào trên cổng đặc quyền (dưới 1024) yêu cầu các đặc quyền đặc biệt. Nếu bạn làm điều này, bạn nên đảm bảo cá thể của bạn là properly hardened.

Để cấu hình tomcat cổng lắng nghe trên bạn phải thay đổi các kết nối HTTP trong conf/server.xml (server reference documentation):

<Connector port="80" protocol="HTTP/1.1" 
      connectionTimeout="20000" 
      redirectPort="8443" /> 

Để thay đổi đường dẫn bối cảnh của một ứng dụng, bạn có thể đổi tên các tập tin chiến tranh . Để triển khai nó tại thư mục gốc, hãy đổi tên tập tin chiến tranh của bạn thành ROOT.war. Hoặc bạn có thể thêm một META-INF/context.xml trong đó bạn có thể chỉ định đường dẫn bối cảnh mong muốn (context reference docs):

<?xml version="1.0" encoding="UTF-8"?> 
<Context path="/" /> 
+0

Tôi đã thử cổng thay đổi thành 80 điều, nhưng nó không hoạt động trên Linux, có thể nó cần thêm một số bước, nhưng tôi không muốn các rủi ro bảo mật. – eLRuLL

+0

Đó có thể là do tomcat không chạy dưới dạng root; các quy trình không phải gốc không được phép liên kết với các cổng đặc quyền. Một cách tuyệt vời để đối phó với điều này là để thực hiện hoặc mod_jk hoặc thiết lập một proxy ngược sử dụng apache. – ilikeorangutans

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