Um den Datenverkehr mit Apache über Port 80 an JBoss / TomCat weiterzuleiten, haben wir diese installiert und konfiguriert mod_jk
.
Gibt es ein Äquivalent für Nginx? Grundsätzlich soll der gesamte Datenverkehr für Port 80 an jboss übergeben werden.
Um den Datenverkehr mit Apache über Port 80 an JBoss / TomCat weiterzuleiten, haben wir diese installiert und konfiguriert mod_jk
.
Gibt es ein Äquivalent für Nginx? Grundsätzlich soll der gesamte Datenverkehr für Port 80 an jboss übergeben werden.
Antworten:
Für Nginx Checkout ihre Dokumente hier . Proxy-Unterstützung ist eingebaut.
In dem folgenden Beispiel auf ihrer Site sehen Sie, dass spezifischer Datenverkehr für Port 80 an einen einzelnen Servlet-Container gesendet wird, der auf Port 8080 ausgeführt wird.
Wenn Sie mehrere Back-End-Servlet-Container ausführen möchten (zum Lastenausgleich, zur Skalierung usw.), sollten Sie sich das Upstream Fair-Modul ansehen , das Datenverkehr an den am wenigsten ausgelasteten Back-End-Server sendet. Es wird nicht standardmäßig mit Nginx ausgeliefert.
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;
}
}
Eine andere Möglichkeit, es so zu machen, wie es auf der LikeApache- Wiki-Seite beschrieben ist.
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;
}
}
Ich habe es auch mit / myapp anstelle von root getestet und funktioniert auch mit location / myapp und proxypass http: // myapp: 8080 / myapp ;
Außerdem ordnet diese Konfiguration alles der Java-Anwendung zu. Dies ist hilfreich, wenn Sie nette URLs haben, die von einem MVC-Framework wie Struts zugeordnet werden.
Sie müssen nicht mod_jk verwenden, sondern können mod_proxy verwenden, dh den Datenverkehr über HTTP anstelle von AJP weiterleiten. Wenn Nginx Proxy-Fähigkeit hat, sollte das genauso gut funktionieren.
Es gibt jetzt eine ziemlich frisch ajp_module für nginx . Ich habe keine Erfahrung damit, aber ich denke, dass die Sitzungsstabilität und insbesondere die beständigen Back-End-Verbindungen für Tomcat sehr hilfreich sind. Beide Methoden (http proxy oder ajp proxy) sind leider unflexibel für Langzeitanfragen (comet) oder große Dateiübertragungen (uploads).
https://github.com/yaoweibin/nginx_ajp_module#readme
lighttpd BTW verfügt über ein allgemeines Proxy-Modul, das FCGI-, HTTP-, CGIS- und AJP13-Codierung verarbeiten kann. Dies sieht nach einem besseren Ansatz aus (aber ich denke, dass es beim Lesen die gleichen Einschränkungen in Bezug auf untypische lange / große Anforderungs- / Antwortmuster gibt).