Para pasar el tráfico a JBoss / TomCat en el puerto 80 usando Apache, solíamos instalarlo y configurarlo mod_jk
.
¿Hay un equivalente para nginx? Básicamente, quiero que todo el tráfico del puerto 80 pase a jboss.
Para pasar el tráfico a JBoss / TomCat en el puerto 80 usando Apache, solíamos instalarlo y configurarlo mod_jk
.
¿Hay un equivalente para nginx? Básicamente, quiero que todo el tráfico del puerto 80 pase a jboss.
Respuestas:
Para nginx revisa sus documentos aquí . El soporte de proxy está integrado.
En el siguiente ejemplo de su sitio, verá que el tráfico específico del puerto 80 se envía a un único contenedor de servlet que se ejecuta en el puerto 8080.
Tenga en cuenta que si desea ejecutar varios contenedores de servlets de back-end (para el equilibrio de carga, el escalado, etc.), debe mirar el Upstream Fair Module que enviará el tráfico al servidor de back-end menos ocupado. No se envía por defecto con 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;
}
}
Otra forma de hacerlo como se describe en la página 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;
}
}
También lo he probado con / myapp en lugar de root y funciona también, colocando location / myapp y proxypass http: // myapp: 8080 / myapp ;
Además, esta configuración asigna todo a la aplicación Java, lo cual es útil cuando tiene URL agradables que están asignadas por un marco MVC como Struts.
No tiene que usar mod_jk, puede usar mod_proxy, es decir, pasar el tráfico a través de HTTP en lugar de AJP. Si nginx tiene la capacidad de proxy, eso debería funcionar igual de bien.
Ahora hay un ajp_module bastante nuevo para nginx . No tengo experiencia con eso, pero creo que la rigidez de la sesión y especialmente las conexiones persistentes de back-end son bastante útiles para Tomcat. Ambos métodos (proxy http o proxy ajp) son lamentablemente inflexibles para consultas de larga duración (cometa) o transferencias de archivos grandes (cargas).
https://github.com/yaoweibin/nginx_ajp_module#readme
lighttpd BTW tiene un módulo proxy general que puede manejar la codificación FCGI, HTTP, CGIS y AJP13. Este parece un mejor enfoque (pero creo que al leerlo tiene las mismas limitaciones con respecto a los patrones de solicitud / respuesta largos / grandes no típicos).