不使用tomcat的自动部署,而是多个tomcat搭配nginx转发的方式,该怎么部署项目呢?
Apache Tomcat通常有三种部署方式
今天我们讲的就是第三种部署方式,
为了让每个服务(项目为多模块)运行得更加流畅,我们采取了每个tomcat部署一个应用的原则来进行部署
比如project-module-admin后台模块和project-module-interface接口模块分别通过tomcat和tomcat-interface进行映射(即第三种部署方式),然后需要保证每一个端口是不冲突的。
步骤一
将应用打包(mvn clean package)好上传(pscp)到服务器上,目录为/opt/javaweb
步骤二
配置tomcat的配置文件(对应的是project-module-admin后台模块war包)
进入/usr/local/tomcat/conf目录,编辑server.xml文件
①修改path="/",docBase="/opt/javaweb/project-module-admin"
最后进入/usr/local/tomcat/bin输入./startup.sh启动
(备注:可以进入/usr/local/tomcat/logs目录输入tail -f catalina.out查看应用运行的日志情况)
步骤三
同理,配置tomcat-interface的配置文件(对应的是project-module-interface接口模块war包)
进入/usr/local/tomcat-interface/conf,编辑server.xml文件
①修改Connector端口号为7070,对应其他的端口配置改8为7,如7443
②修改path="/" docBase="/opt/javaweb/project-module-interface"
最后进入/usr/local/tomcat-interface/bin输入./startup.sh启动
(备注:可以进入/usr/local/tomcat-interface/logs目录输入tail -f catalina.out查看应用运行的日志情况)
步骤四
使用反向代理服务器nginx(默认端口为80)配置静态项目project-module-gateway,在centos服务器安装Nginx
假设我们的Nginx的安装目录为/usr/local/nginx,进入conf目录,编辑nginx.conf文件
配置说明:
(1)worker_processes 4:启动进程,通常设置成和cpu的数量相等。
(2)worker_connections 1024:单个后台worker process进程的最大并发链接数。并发总数是 worker_processes 和 worker_connections 的乘积。即 max_clients = worker_processes * worker_connections。
(3)use epoll:epoll是多路复用IO(I/O Multiplexing)中的一种方式,仅用于 linux2.6以上内核,可以大大提高nginx的性能。
(4)定义后台管理系统反向代理信息。其中cms.project.com为后台管理系统的访问域名,以自己域名(解析)为准。server值配置为project-module-admin在 tomcat中运行的地址。
upstream cms.project.com{
server 127.0.0.1:8080;
}
(5)定义接口系统反向代理信息。其中www.project.com为前端(project-module-gateway)访问域名,以自己域名(解析)为准。server值配置为project-module-gateway在 Nginx中运行的地址。
upstream www.tianti.com{
server 127.0.0.1:80;
}
(6)www.project.com对应Server的配置,这里配置了三个location,默认是访问/opt/javaweb/project-module-gateway/html/index/index.html文件。当url里面包含/html时,从/opt/javaweb/project-module-gateway下找html文件。当url里面包含/static时,则从/opt/javaweb/project-module-gateway/static下找相应的静态文件
(7)cms.project.com对应Server的配置,这里配置了反向代理信息:proxy pass http://127.0.0.1:8080。所有的JAVA动态请求,将会被转发到http://127.0.0.1:8080对应的应用里面去执行。静态文件请求,则将会在Nginx里面去执行。
步骤五
重新启动Nginx(在安装nginx教程博文里面有写到)
然后修改tomcat(即admin的模块)的各种配置的代码,因为你打包上传的时候,是在本地环境下,而在生产环境中,还需要进行调试修改、部署
还要修改project-module-gateway的代码,因为在本地环境下的时候config.js中有带有project-module-gateway前缀,而在生产环境中是直接80端口访问的,所哟需要删去