目录java
Tomcat 服务器是一个免费的开放源代码的Web 应用服务器,属于轻量级应用服务器,在中小型系统和并发访问用户不是不少的场合下被广泛使用,是开发和调试JSP 程序的首选。linux
Tomcat是一个JSP/Servlet容器。其做为Servlet容器,有三种工做模式:独立的Servlet容器、进程内的Servlet容器和进程外的Servlet容器。nginx
tomcat 现有的版本有tomcat 7 ,tomcat 8 tomcat8.5,tomcat 9
咱们能够在图片中看到tomcat8.0版本后续也是不会再进行更新和升级了,咱们可使用tomcat8.5和9.0web
https://tomcat.apache.org/download-90.cgiapache
https://tomcat.apache.org/download-80.cgivim
咱们能够根据咱们须要版本和系统进行下载。centos
tomcat的安装,因为该应用经常使用在linux服务器上,咱们的安装教程是基于centos7进行安装:浏览器
tomcat 9 版本须要java8以上才能支持 cd /tmp && wget --no-check-certificate --no-cookies --header "Cookie: oraclelicense=accept-securebackup-cookie" http://download.oracle.com/otn-pub/java/jdk/8u131-b11/d54c1d3a095b4ff2b6607d096fa80163/jdk-8u131-linux-x64.rpm rpm -ivh jdk-8u131-linux-x64.rpm 环境变量: vi + /etc/profile JAVA_HOME=/usr/java/jdk1.8.0_131 CLASSPATH=.:$JAVA_HOME/lib.tools.jar PATH=$JAVA_HOME/bin:$PATH export JAVA_HOME CLASSPATH PATH #加载环境变量 source /etc/profile
# 安装wget yum install wget -y # 下载tomcat包 cd /tmp &&wget http://mirrors.shu.edu.cn/apache/tomcat/tomcat-9/v9.0.13/bin/apache-tomcat-9.0.13.tar.gz # 解压 tar -xzvf apache-tomcat-9.0.13.tar.gz # 移动到指定位置并重命名 mv /tmp/apache-tomcat-9.0.13 /opt/tomcat9 # 启动 tomcat /opt/tomcat9/bin/startup.sh 或者 /opt/tomcat9/bin/catalina.sh start # # 关闭tomcat /opt/tomcat9/bin/shutdown.sh 或者 /opt/tomcat9/bin/catalina.sh stop 还能够直接kill 进程号,当咱们的tomcat是有用户进行访问的时候,咱们杀死不了这个进程,只能经过强制杀死 kill -9 # 查看当前的版本 /opt/tomcat9/bin/version.sh # 开放端口 tomcat 默认访问端口是8080,咱们能够在conf目录的文件server.xml的69行进行端口更改。 firewall-cmd --add-port=8080/tcp --permanent firewall-cmd --reload 若是是在阿里云进行配置的话,记得打开安全组的8080端口.
访问:缓存
路径是 ip:8080(tomcat默认是绑定ip 0.0.0.0)
tomcat
bin # 脚本启动目录 conf #配置文件目录 lib #tomcat运行的依赖包 logs #日志文件目录 temp #临时文件目录 webapps # 用来存放应用程序 --docs # 文档 --examples # 示例 --host-manager # 虚拟主机web管理界面 --manager # 管理界面 --ROOT # 默认访问的应用程序 work # 部署的Web应用程序的临时工做目录,当咱们须要清除缓存的时候能够将该目录删除.而后重启动tomcat.
第一更改端口:
编辑配置文件 server.xml .
大约在69行,将 port = "8080"更改为咱们想绑定的端口.
<Connector port="8080" protocol="HTTP/1.1" connectionTimeout="20000" redirectPort="8443" />
配置编码
为了不程序上的一些请求和返回的中文乱码问题.咱们须要配置.
编辑配置文件 server.xml .
大约在69行后,添加 useBodyEncodingForURI="true" URIEncoding="UTF-8"
<Connector port="8080" protocol="HTTP/1.1" useBodyEncodingForURI="true" URIEncoding="UTF-8" connectionTimeout="20000" redirectPort="8443" />
配置manager
见tomcat-manager的文章
# 启动 tomcat /opt/tomcat9/bin/startup.sh 或者 /opt/tomcat9/bin/catalina.sh start # # 关闭tomcat /opt/tomcat9/bin/shutdown.sh 或者 /opt/tomcat9/bin/catalina.sh stop 还能够直接kill 进程号,当咱们的tomcat是有用户进行访问的时候,咱们杀死不了这个进程,只能经过强制杀死 kill -9 # 查看当前的版本 /opt/tomcat9/bin/version.sh
在生产环境咱们常常有这样的需求,将tomcat的绑定ip更改.不让外部人能够直接访问.
tomcat默认的绑定是 0.0.0.0 ,也就意味着这样外网就能够访问咱们的tomcat,
可是咱们想要咱们的tomcat不让外网访问
解决方法:
更改绑定ip,绑定127.0.0.1,这样就只能本机访问了
编辑配置文件 server.xml .
大约在69行,在配置端口的地方,添加 :address="127.0.0.1"
<Connector port="8080" protocol="HTTP/1.1" address="127.0.0.1" connectionTimeout="20000" redirectPort="8443" />
更改防火墙规则,不对外开放8080端口.
firewall-cmd --remove-port=8080/tcp --permanent firewall-cmd --reload
经过nginx重定向的隐藏界面
使用jenkins来进行发布war包
deploy war/ear to a container:发布war包到服务器
deploy artifacts to maven reepository:发布到maven服务器
WAR/EAR files: 填的是生成的wa包的路径。ugou-admin/target/ugou-admin.war(实际路径是:/root/.jenkins/jobs/ugou-admin-online/workspace/ugou-admin/target/ugou-admin.war)
Context path: 填的是上传到tomcat的路径。即便用localhost/(content path设置的名字)来访问项目
好比个人项目访问路径是 :http://127.0.0.1/ugou-admin/ 那么这里我应该填入的就是 /ugou-admin
Container: 选择咱们使用的tomcat版本。
Manager user name /Manager password: 填入咱们在$CATALINA_BASE/conf/tomcat-users.xml 配置的用户名和密码
Tomcat URL : 填入咱们的tomcat url 好比咱们设置的端口是80 那么直接填入ip就好了 :http://127.0.0.1/,若是有端口,那么咱们就须要填入对应的端口。
Deploy on failure : 构建失败是否还发布。勾选表示是,不勾选表示不是,生产环境建议不勾选。
直接将 war 包放在 ./webapps 下
tomcat 会自动将war解压
咱们能够在 ./conf/目录下找到server.xml文件
咱们须要在
<Context path="/djx" docBase="/tmp/djx/" reloadable="true" />
path 指的是 访问路径 docBase 指的是项目存放路径 reloadable 设置为true表示Catalina将监视 /WEB-INF/classes/和/WEB-INF/lib的文件,一旦发生更改将自动从新加载Web应用程序。它能够在在开发的时候使用,但须要消耗更多资源,官方文档写到不建议在生产环境上使用,因此它的默认值是false. 8.0版本文档 Set to true if you want Catalina to monitor classes in /WEB-INF/classes/ and /WEB-INF/lib for changes, and automatically reload the web application if a change is detected. This feature is very useful during application development, but it requires significant runtime overhead and is not recommended for use on deployed production applications. That's why the default setting for this attribute is false. You can use the Manager web application, however, to trigger reloads of deployed applications on demand.
配置示例:
在 ./conf/Catalina/localhost/ 下添加xml配置文件.
示例: 我要让/tmp/www/ 里的网站部署在tomcat上 。
vim djx.xml # 文件的名称也就是咱们后面访问时要在ip端口加的后缀
djx.xml 内容,docBase 后面填入项目的路径
<Context docBase="/tmp/www/" />
而后咱们重启tomcat,而后在浏览器 192.168.1.198/djx/访问的文件名 便可访问到咱们的项目文件了
注意点一
方法三中若是我想直接经过ip+端口就能直接访问到我部署的项目,那么咱们这个xml 文件的名称就应该是 ROOT.xml(要全都大写哦)
第三种的文件命名示例:
注意点二
对于参数reloadable="true" ,在方法二特别说明了,你们注意。