首页 > nginx > nginx与tomcat多实例搭建

nginx与tomcat多实例搭建

2015年3月28日 发表评论 阅读评论

nginx和tomcat结合也是一个常用的组合,看到一个好的文章,介绍nginx做为方向代理,后端多个tomcat。
实现:一个nginx实例和多个tomcat实例,每个tomcat实例承载唯一的项目,tomcat实例在项目启动时自动启动

Nginx的安装配置

在/usr/local/目录下分别安装nginx和tomcat

为nginx添加conf.d目录,用于各项目的配置,比如新建renhetoutiao.conf文件

对nginx的conf/nginx.conf修改,第二行 user root,赋予nginx root权限,在http中添加 include /usr/local/nginx/conf.d/*.conf;

选择一个项目如renhetoutiao, 目录/home/renhetoutiao/renhetoutiao/

Tomcat的安装配置

catalina.policy catalina.properties context.xml tomcat-users.xml server.xml web.xml

这5个配置文件就可以启动一个tomcat实例,其中server.xml是必须配置的。

catalina.policy catalina.properties web.xml 可以使用默认的,可以从安装路径copy,context.xml tomcat-users.xml可以不用。

所以每个项目我们只需要配置server.xml, 如renhetoutiao项目的配置

因为使用nginx,tomcat的ajp不会使用,所以可以去掉,tomcat可以这样简单配置。注意每个项目的连接端口和关闭端口,不要有重复。

因为tomcat回去加载指定路径下得class lib,所以必须把配置、依赖等copy至web下,启动脚本bin/startup,关闭脚本bin/shutdown 如下:

通过tomcat的startup.sh脚本,会碰到项目中分配的线程没有及时释放,tomcat不能及时关闭,导致重启时产生端口冲突

解决方案:强制关闭tomcat进程,kill -9 PID,执行脚本需要启动时记录各个tomcat实例的进程,这里将进程PID保存在项目的logs目录下。

记录PID的操作需要修改tomcat安装目录下 bin/catalina.sh脚本
在PRGDIR=dirname "$PRG"后面加上

最后需要给项目用户可执行权限 chmod 777 catalina.sh

ningx+tomcat快速新增新项目

  • 首先nginx与tomcat环境已搭建完成
  • 为新项目安装分配独立用户
  • 利用svn、git导出项目源码
  • 在项目bin目录下新增startup、shutdown脚本
  • 在项目conf目录下新建server.xml文件,每个项目的shutdown端口和connector端口都要不一样,将docBase指到项目的web路径
  • nginx配置下得配置,在conf.d目录下新建一个配置文件,可以用项目命名,作如下配置,proxy_pass需要和tomcat的connector端口一致
  • 平滑重启nginx sbin/nginx -s reload 可以先检查一下语法是否有问题 sbin/nginx -t

原文http://blog.eveow.com/post/18

分类: nginx 标签:
  1. 本文目前尚无任何评论.
  1. 本文目前尚无任何 trackbacks 和 pingbacks.