Para passar o tráfego para o JBoss / TomCat na porta 80 usando o Apache, costumávamos instalar e configurar mod_jk
.
Existe um equivalente para nginx? Basicamente, deseja que todo o tráfego da porta 80 seja passado para o jboss.
Para passar o tráfego para o JBoss / TomCat na porta 80 usando o Apache, costumávamos instalar e configurar mod_jk
.
Existe um equivalente para nginx? Basicamente, deseja que todo o tráfego da porta 80 seja passado para o jboss.
Respostas:
Para o nginx, confira seus documentos aqui . O suporte a proxy é incorporado.
No exemplo abaixo do site deles, você verá que o tráfego específico da porta 80 está sendo enviado para um único contêiner de servlet em execução na porta 8080.
Observe que, se você deseja executar vários contêineres de servlet de back-end (para balanceamento de carga, dimensionamento, etc ...), consulte o Upstream Fair Module que enviará tráfego ao servidor de back-end menos ocupado. Não é enviado por padrão 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;
}
}
Outra maneira de fazê-lo, como descrito na página wiki do 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;
}
}
Também o testei com / myapp em vez de root e funciona também, colocando location / myapp e proxypass http: // myapp: 8080 / myapp ;
Além disso, essa configuração mapeia tudo para o aplicativo Java, o que é útil quando você tem URLs legais mapeadas por uma estrutura MVC como Struts.
Agora existe um novo ajp_module para o nginx . Não tenho experiência com isso, mas acho que a aderência da sessão e, especialmente, as conexões persistentes de back-end são bastante úteis para o Tomcat. Ambos os métodos (proxy http ou proxy ajp) são infelizmente inflexíveis para consultas extensas (cometa) ou grandes transferências de arquivos (uploads).
https://github.com/yaoweibin/nginx_ajp_module#readme
O lighttpd BTW possui um módulo proxy geral que pode lidar com codificação FCGI, HTTP, CGIS e AJP13. Parece uma abordagem melhor (mas acho que, ao ler, ela tem as mesmas limitações em relação aos padrões atípicos de solicitações / respostas longas / grandes).