Để truyền lưu lượng truy cập đến JBoss / TomCat trên cổng 80 bằng cách sử dụng Apache, chúng tôi đã sử dụng để cài đặt và định cấu hình mod_jk
.
Có tương đương với nginx? Về cơ bản muốn tất cả lưu lượng truy cập cổng 80 được chuyển đến jboss.
Để truyền lưu lượng truy cập đến JBoss / TomCat trên cổng 80 bằng cách sử dụng Apache, chúng tôi đã sử dụng để cài đặt và định cấu hình mod_jk
.
Có tương đương với nginx? Về cơ bản muốn tất cả lưu lượng truy cập cổng 80 được chuyển đến jboss.
Câu trả lời:
Đối với nginx kiểm tra tài liệu của họ ở đây . Hỗ trợ proxy được tích hợp sẵn.
Trong ví dụ dưới đây từ trang web của họ, bạn sẽ thấy lưu lượng truy cập cổng 80 cụ thể đang được gửi đến một thùng chứa servlet duy nhất chạy trên cổng 8080.
Lưu ý rằng nếu bạn muốn chạy nhiều thùng chứa dịch vụ phụ trợ (để cân bằng tải, chia tỷ lệ, v.v.), bạn nên xem Mô-đun công bằng ngược dòng sẽ gửi lưu lượng đến máy chủ phụ trợ ít bận rộn nhất. Nó không được vận chuyển bởi defaul w / nginx.
server {
listen 80;
server_name YOUR_DOMAIN;
root /PATH/TO/YOUR/WEB/APPLICATION;
location / {
index index.jsp;
}
location ~ \.do$ {
proxy_pass http://localhost:8080;
proxy_set_header X-Real-IP $remote_addr;
proxy_set_header X-Forwarded-For $proxy_add_x_forwarded_for;
proxy_set_header Host $http_host;
}
location ~ \.jsp$ {
proxy_pass http://localhost:8080;
proxy_set_header X-Real-IP $remote_addr;
proxy_set_header X-Forwarded-For $proxy_add_x_forwarded_for;
proxy_set_header Host $http_host;
}
location ^~/servlets/* {
proxy_pass http://localhost:8080;
proxy_set_header X-Real-IP $remote_addr;
proxy_set_header X-Forwarded-For $proxy_add_x_forwarded_for;
proxy_set_header Host $http_host;
}
}
Một cách khác để làm điều đó giống như được mô tả trong trang wiki LikeApache .
server {
listen myhost:80;
server_name myhost;
location / {
root /path/to/myapp/public;
proxy_set_header X-Forwarded-Host $host;
proxy_set_header X-Forwarded-Server $host;
proxy_set_header X-Forwarded-For $proxy_add_x_forwarded_for;
proxy_pass http://myapp:8080;
}
}
Tôi cũng đã thử nghiệm nó với / myapp thay vì root và cũng hoạt động, đặt location / myapp và proxypass http: // myapp: 8080 / myapp ;
Đồng thời, cấu hình này ánh xạ mọi thứ vào ứng dụng Java, rất hữu ích khi bạn có các URL đẹp được ánh xạ bởi một khung MVC như Struts.
Bạn không phải sử dụng mod_jk, bạn có thể sử dụng mod_proxy, tức là chuyển lưu lượng truy cập qua HTTP thay vì AJP. Nếu nginx có khả năng proxy, thì nó cũng hoạt động tốt.
Bây giờ có một ajp_module khá mới cho nginx . Tôi không có kinh nghiệm với nó, nhưng tôi nghĩ rằng độ dính của phiên và đặc biệt là các kết nối phụ trợ liên tục khá hữu ích cho Tomcat. Cả hai phương thức (http proxy hoặc ajp proxy) đều không linh hoạt đối với các truy vấn lâu dài (sao chổi) hoặc chuyển tập tin lớn (tải lên).
https://github.com/yaoweibin/nginx_ajp_module#readme
lighttpd BTW có một mô-đun proxy chung có thể xử lý mã hóa FCGI, HTTP, CGIS và AJP13. Điều này có vẻ như là một cách tiếp cận tốt hơn (nhưng tôi nghĩ từ việc đọc nó cũng có những hạn chế tương tự đối với các mẫu yêu cầu / phản hồi dài / lớn không điển hình).