上海网站建设公公司,施工企业平台,服务网站建设,安徽网站建设推荐目录
一、Tomcat简介
二、系统环境说明
1、关闭防火墙#xff0c;selinux 2、安装JDK
3、安装Tomcat
三、Tomcat目录介绍
1、tomcat主目录介绍
2、webapps目录介绍
3、Tomcat配置介绍#xff08;conf#xff09;
4、Tomcat的管理
四、Tomcat 配置管理页面(了解)
…目录
一、Tomcat简介
二、系统环境说明
1、关闭防火墙selinux 2、安装JDK
3、安装Tomcat
三、Tomcat目录介绍
1、tomcat主目录介绍
2、webapps目录介绍
3、Tomcat配置介绍conf
4、Tomcat的管理
四、Tomcat 配置管理页面(了解)
server.xml配置文件
五、WEB站点部署
1、使用war包部署web站点
2、自定义默认网站目录
六、Tomcat多实例配置 1、复制程序文件
2、启动tomcat多实例
3、负载均衡配置 一、Tomcat简介 Tomcat服务器是一个免费的开放源代码的Web应用服务器属于轻量级应用服务器在中小型系统和并发访问用户不是很多的场合下被普遍使用是开发和调试JSP程序的首选。 Tomcat和Nginx、Apache(httpd)、Web服务器一样具有处理HTML页面的功能不过Tomcat处理静态HTML的能力不如Nginx/Apache服务器。 一个tomcat默认并发是200(官方)可以修改但实际用的时候也就200并发左右。
使用方案 建议使用Nginx和Tomcat配合Nginx处理静态Tomcat处理动态程序 方案三中后端Tomcat可以运行在单独的主机也可以是同一台主机上的多实例
Tomcat官网
Tomcat好帮手---JDK JDK是 Java 语言的软件开发工具包JDK是整个java开发的核心它包含了JAVA的运行环境JVMJava系统类库和JAVA工具。 JDK下载面页
Java Downloads | Oracle 安装时候选择tomcat软件版本要与程序开发使用的版本一致。jdk版本要进行与tomcat保持一致。 二、系统环境说明
1、关闭防火墙selinux
systemctl stop firewalld setenforce 0 2、安装JDK
上传jdk1.8到服务器。安装jdk
tar xzf jdk-8u191-linux-x64.tar.gz -C /usr/local/
mv /usr/local/jdk1.8.0_191 /usr/local/jdk
echo export PATH/usr/local/jdk/bin:$PATH /etc/profile
source /etc/profile 3、安装Tomcat
创建一个目录用于存放tomcat
mkdir /data/application -pcdwget https://mirrors.tuna.tsinghua.edu.cn/apache/tomcat/tomcat-8/v8.5.49/bin/apache-tomcat-8.5.49.tar.gz wget https://mirrors.tuna.tsinghua.edu.cn/apache/tomcat/tomcat-8/v8.5.49/bin/apache-tomcat-8.5.49.tar.gz --no-check-certificatetar xzf apache-tomcat-8.5.49.tar.gz -C /data/application/cd /data/application/mv apache-tomcat-8.5.49/ tomcat
设置环境变量
echo export PATH/data/application/tomcat/bin:$PATH /etc/profilesource /etc/profile 三、Tomcat目录介绍
1、tomcat主目录介绍 2、webapps目录介绍 3、Tomcat配置介绍conf 4、Tomcat的管理 我们已经设置了环境变量所以直接 startup.sh 启动 shutdown.sh 关闭
但是如果布置多个实例就要去对应的tomcat包里面启动和关闭
注意tomcat未启动的情况下使用shutdown脚本会有大量的输出信息。 端口: 8005这个端口负责监听关闭Tomcat的请求 shutdown:向以上端口发送的关闭服务器的命令字符串。 8009: 与其他http服务通信接口。也可以没有 8080: 建立http也就是客户端访问连接用。可以修改 查看日志
tail -f /data/application/tomcat/logs/catalina.out 扩展:解决Tomcat启动慢的方法 Tomcat启动慢主要原因是生成随机数的时候卡住了,导致tomcat启动不了。 yum install rng-tools # 安装rngd服务熵服务增大熵池 systemctl start rngd # 启动服务 四、Tomcat 配置管理页面(了解)
vim /usr/local/tomcat/conf/tomcat-users.xml 添加/tomcat-users #一定要包含在这个标签里面
role rolenamemanager-gui/
role rolenamemanager-script/
role rolenameadmin-gui/
role rolenameadmin-script/
user usernameuser passwordpassword rolestomcat,manager-gui,manager-script,admin-gui,admin-script/
vim /usr/local/tomcat/webapps/host-manager/META-INF/context.xml vim /usr/local/tomcat/webapps/manager/META-INF/context.xml
修改为如图所示 server.xml配置文件
主配置文件 server.xml
?xml version1.0 encodingutf-8?
Server port8005 shutdownSHUTDOWN!--port: 指定用于接受关闭命令的端口号shutdown: 指定关闭命令可自定义与启动脚本中的命令相对应--Listener classNameorg.apache.catalina.core.AprLifecycleListener SSLEngineon /!--Listener: 用于配置全局监听器此处为使用APR库进行性能优化的监听器className: 监听器类的完全限定名SSLEngine: 指定是否启用SSL引擎--Listener classNameorg.apache.catalina.core.JasperListener /!--Listener: JSP引擎的监听器用于编译和加载JSP页面className: 监听器类的完全限定名--GlobalNamingResources!--全局命名资源的配置部分这里包含了一个可编辑的用户数据库的资源配置--Resource nameUserDatabase authContainertypeorg.apache.catalina.UserDatabasedescriptionUser database that can be updated and savedfactoryorg.apache.catalina.users.MemoryUserDatabaseFactorypathnameconf/tomcat-users.xml /!--Resource: 定义了一个资源name: 资源的名称这里为UserDatabaseauth: 认证方式Container表示使用容器的身份验证type: 资源的类型这里为org.apache.catalina.UserDatabasedescription: 资源的描述信息factory: 创建资源的工厂类的完全限定名pathname: 用户数据库文件的路径这里为conf/tomcat-users.xml--/GlobalNamingResourcesService nameCatalina!--Service: Tomcat服务的配置name: 服务名称--Connector port8080 protocolHTTP/1.1connectionTimeout20000redirectPort8443 /!--Connector: 配置用于接受HTTP请求的连接器port: 监听的端口号protocol: 使用的协议connectionTimeout: 连接超时时间redirectPort: 重定向端口用于HTTPS连接--!-- 其他连接器的配置 --Engine nameCatalina defaultHostlocalhost!--Engine: Web容器引擎的配置name: 引擎名称defaultHost: 默认的主机名--Realm classNameorg.apache.catalina.realm.LockOutRealm!--Realm: 安全领域的配置className: 安全领域实现类的完全限定名--Realm classNameorg.apache.catalina.realm.UserDatabaseRealmresourceNameUserDatabase/!--嵌套的Realm配置这里使用UserDatabaseRealm作为默认的安全领域resourceName: 资源名称对应于conf/tomcat-users.xml文件中的UserDatabase--/RealmHost namelocalhost appBasewebappsunpackWARstrue autoDeploytrue!--Host: 虚拟主机的配置name: 主机名appBase: Web应用程序的基础路径unpackWARs: 是否自动解压部署的WAR文件autoDeploy: 是否自动部署Web应用程序--!-- 其他虚拟主机的配置 --Valve classNameorg.apache.catalina.valves.AccessLogValvedirectorylogs prefixlocalhost_access_log. suffix.txtpattern%h %l %u %t quot;%rquot; %s %b /!--Valve: 用于记录访问日志className: 完全限定名directory: 日志存储的目录prefix: 日志文件名的前缀suffix: 日志文件名的后缀pattern: 日志格式--/Host!-- 其他虚拟主机的配置 --/Engine/Service
/Server
Connector主要参数说明 port:指定服务器端要创建的端口号并在这个端口监听来自客户端的请求。 protocol连接器使用的协议支持HTTP和AJP。AJPApache Jserv Protocol专用于tomcat与apache建立通信的. redirectPort指定服务器正在处理http请求时收到了一个SSL传输请求后重定向的端口号 maxThreads接收最大请求的并发数 connectionTimeout 指定超时的时间数(以毫秒为单位) host参数详解 host:表示一个虚拟主机 name:指定主机名 appBase:应用程序基本目录即存放应用程序的目录.一般为appBasewebapps相对于CATALINA_HOME而言的也可以写绝对路径。 unpackWARs:如果为true则tomcat会自动将WAR文件解压否则不解压直接从WAR文件中运行应用程序 autoDeploy:在tomcat启动时是否自动部署 五、WEB站点部署 上线的代码有两种方式 第一种方式是直接将程序目录放在webapps目录下面这种方式大家已经明白了就不多说了。放在webapps目录下的ROOT目录里面浏览器访问ip:8080后面不需要指定目录否则访问需要指定例如ip:8080/jenkins 第二种方式是使用开发工具将程序打包成war包然后上传到webapps目录下面。这种会自动解压缩 1、使用war包部署web站点
wget http://updates.jenkins-ci.org/download/war/2.129/jenkins.war
cd /data/application/tomcat #进入tomcat目录
cp -r webapps/ /opt/ #将原来的发布网站目录备份
cd webapps/
rm -rf * #清空发布网站里面的内容
cp /root/jenkins.war . #将war包拷贝到当前目录关闭服务手动解压 unzip jenkins.war 完了在启动服务 #这里配置上传大于50M的文件
/usr/local/tomcat/webapps/manager/WEB-INF/web.xml!-- 50 MiB max -- 2、自定义默认网站目录 修改默认发布目录:
mkdir /data/application/webapp #创建发布目录
vim /data/application/tomcat/conf/server.xml
将原来的 改为 然后重启服务先关闭再启动把war包拷贝到新的发布目录它会自动解压缩 六、Tomcat多实例配置 多实例多进程同一个程序启动多次分为两种情况: 第一种一台机器跑多个站点 第二种一个机器跑一个站点多个实例配合负载均衡 1、复制程序文件
cd /data/application/
cp -r tomcat/ tomcat_2#修改端口以启动多实例。多实例之间端口不能一致sed -i s#8005#8012#;s#8080#8082# tomcat_2/conf/server.xmlecho 8081 tomcat/webapps/ROOT/index.jsp
echo 8082 tomcat_2/webapps/ROOT/index.jsp
2、启动tomcat多实例 去各自tomcat里面启动 3、负载均衡配置 下载一个nginx
upstream testweb {server 192.168.50.114:8081 weight1 max_fails1 fail_timeout2s;server 192.168.50.114:8082 weight1 max_fails1 fail_timeout2s;
}server {listen 80;server_name localhost;access_log /var/log/nginx/proxy.access.log main;location / {proxy_pass http://testweb;proxy_set_header Host $host:$server_port;proxy_set_header X-Real-IP $remote_addr;proxy_set_header X-Forwarded-For $proxy_add_x_forwarded_for;} error_page 500 502 503 504 /50x.html;location /50x.html {root /usr/share/nginx/html;}
} 配置完检查语法然后开启直接浏览器访问ip无需指定端口