Aby przekazać ruch do JBoss / TomCat na porcie 80 za pomocą Apache, użyliśmy do instalacji i konfiguracji mod_jk
.
Czy istnieje odpowiednik nginx? Zasadniczo chcę, aby cały ruch z portu 80 był przekazywany do jboss.
Aby przekazać ruch do JBoss / TomCat na porcie 80 za pomocą Apache, użyliśmy do instalacji i konfiguracji mod_jk
.
Czy istnieje odpowiednik nginx? Zasadniczo chcę, aby cały ruch z portu 80 był przekazywany do jboss.
Odpowiedzi:
W przypadku kasy nginx ich dokumenty tutaj . Obsługa proxy jest wbudowana.
W poniższym przykładzie z ich strony zobaczysz, że określony ruch portu 80 jest wysyłany do pojedynczego kontenera serwletu działającego na porcie 8080.
Pamiętaj, że jeśli chcesz uruchomić wiele kontenerów serwletów zaplecza (w celu równoważenia obciążenia, skalowania itp.), Powinieneś spojrzeć na Upstream Fair Module , który wyśle ruch do najmniej obciążonego serwera zaplecza. Nie jest wysyłany przez 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;
}
}
Innym sposobem, aby to zrobić, jest opisany na stronie 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;
}
}
Testowałem go również z / myapp zamiast root i działa również, umieszczając lokalizację / myapp i proxyypass http: // myapp: 8080 / myapp ;
Również ta konfiguracja odwzorowuje wszystko na aplikację Java, co jest przydatne, gdy masz ładne adresy URL, które są odwzorowane przez środowisko MVC, takie jak Struts.
Istnieje teraz całkiem nowy ajp_module dla nginx . Nie mam z tym doświadczenia, ale myślę, że lepkość sesji, a zwłaszcza trwałe połączenia zaplecza są bardzo pomocne dla Tomcat. Obie metody (serwer proxy HTTP lub serwer proxy ajp) są niestety mało elastyczne w przypadku długich zapytań (kometa) lub przesyłania dużych plików (przesyłanie).
https://github.com/yaoweibin/nginx_ajp_module#readme
lighttpd BTW ma ogólny moduł proxy, który obsługuje kodowanie FCGI, HTTP, CGIS i AJP13. To wygląda na lepsze podejście (ale myślę, że po przeczytaniu ma takie same ograniczenia w odniesieniu do nietypowych długich / dużych wzorców zapytań / odpowiedzi).