为 jboss/tomcat 配置 nginx

27 tomcat nginx jboss proxypass

为了使用 Apache 将流量传递到端口 80 上的 JBoss/TomCat,我们曾经安装和配置mod_jk.

是否有 nginx 的等价物?基本上希望所有端口 80 流量都传递给 jboss。

小智 17

对于 nginx,请在此处查看他们的文档。内置代理支持。

在下面来自他们站点的示例中,您将看到特定端口 80 的流量被发送到在端口 8080 上运行的单个servlet 容器。

请注意,如果您想运行多个后端 servlet 容器(用于负载平衡、缩放等),您应该查看Upstream Fair 模块,它将流量发送到最不繁忙的后端服务器。默认情况下,它不随 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;
  }
}
Run Code Online (Sandbox Code Playgroud)


ska*_*man 2

您不必使用mod_jk,您可以使用mod_proxy,即通过HTTP而不是AJP传递流量。如果 nginx 有代理能力,那应该也能工作。

  • 代理的问题是它比 mod_jk/fastcgi/ajp 慢 (7认同)