RedHat/CentOS8【Tomcat】部署 JavaWeb

2020-05-08  本文已影响0人  张毅SOHO

Tomcat 是一个开源的(遵循 Apache 2.0 协议)轻量级 Web 应用服务器中间件,在中小型系统和并发量小的场景中普遍使用,是开发和调试 Servlet 和 JSP 程序的首选中间件。

本方案基于CentOS8系统设计,建议在RedHat/CentOS系统中使用。


1.安装 Tomcat 中间件

注意:安装 Tomcat 前,应确保系统已经正确安装配置 JDK 。如何安装配置 JDK,请阅读文件《RedHat/CentOS8 安装配置 OracleJDK 8 和 OpenJDK 1.8》【https://www.jianshu.com/p/208cc5b8688b

第一步,打开 Tomcat 官方网站下载页面【https://tomcat.apache.org/download-90.cgi】,下载 Tomcat 的编译程序 tar 包到用户主目录中。

Tomcat 下载页面

第二步,解压缩编译程序 tar 包到"/usr/local"目录中。

[centos@host ~]$ sudo tar zxvf apache-tomcat-9.0.34.tar.gz -C /usr/local
[centos@host ~]$ sudo mv /usr/local/apache-tomcat-9.0.34 /usr/local/tomcat-9.0.34

第三步,创建 Tomcat 管理用户和组,并设置为程序安装目录的拥有者。

[centos@host  ~ ]$ sudo id tomcat
id: “tomcat”:无此用户
[centos@host  ~ ]$ sudo groupadd tomcat
[centos@host  ~ ]$ sudo useradd -g tomcat -s /bin/false tomcat
[centos@host  ~ ]$ sudo chown -R tomcat:tomcat /usr/local/tomcat-9.0.34

第四步,创建 Tomcat 开机启动服务配置文件。

使用文本编辑器打开配置文件:

[centos@host ~]$ sudo gedit /usr/lib/systemd/system/tomcat.service

修改或验证文件中的以下参数并保存:

[Unit]
Description=Tomcat Server
After=network.target
After=syslog.target

[Install]
WantedBy=multi-user.target

[Service]
Type=forking
User=tomcat
Group=tomcat

Environment=JAVA_HOME=/usr/local/jdk1.8.0_261
Environment=JRE_HOME=/usr/local/jdk1.8.0_261/jre

ExecStart=/usr/local/tomcat-9.0.34/bin/startup.sh
ExecStop=/usr/local/tomcat-9.0.34/bin/shutdown.sh
ExecReload=/usr/local/tomcat-9.0.34/bin/shutdown.sh

第五步,启动 Tomcat 服务,并设置为开机自动启动。

[centos@host ~]$ sudo systemctl daemon-reload
[centos@host ~]$ sudo systemctl enable tomcat.service
[centos@host ~]$ sudo systemctl start tomcat.service

第六步,设置防火墙端口(CentOS8默认安装firewall防火墙),允许"8080"端口(Tomcat 默认端口)访问服务器。

[centos@host ~]$ sudo firewall-cmd --zone=public --add-port=8080/tcp --permanent
[centos@host ~]$ sudo firewall-cmd --reload

第七步,验证安装,在浏览器中输入"http://127.0.0.1:8080"来访问 Tomcat 默认主页。

Tomcat 验证页面

2.Tomcat 主配置文件详解

Tomcat 的主配置文件是 "/程序安装目录/conf/server.xml",该文件定义了 Tomcat 的监听服务,站点,虚拟目录信息。

Tomcat 的主配置文件结构如下:

<Server>
    <Listener />  
    <GlobaNamingResources></GlobaNamingResources>
    <Service>  
        <Connector />  
        <Engine>  
            <Realm />  
            <host>  
                <Context /> 
                <Value />  
             </host>  
        </Engine>  
    </Service>  
</Server>  

3.使用 Ecplise 发布 WAR 包

第一步,在需要发布的项目上右击,选择"Export..."。

第二步,选择"Web"下的"WAR file"选项,点击"Next>"按钮。

第三步,点击"Browse"按钮,设置 WAR 文件存放位置。

第四步,设置 WAR 包文件部署的服务器运行环境,如:Tomcat;设置是否将源文件一并导出到 WAR 文件中(不选择则只导出编译文件,不建议选择),点击“Finish”按钮等待导出进度完成。


4.在 Tomcat 中部署 WAR 包

方案一:在默认站点中的应用程序目录中部署。(最简部署)

将已发布的 WAR 文件拷贝到"/程序安装目录/webapps"目录中即可,Tomcat 会自动检测部署,用户通过"http://ip:port/WAR文件名"即可访问,默认的端口是8080。

方案二:在默认站点中建立虚拟目录的方式部署。

① 修改主配置文件 "/程序安装目录/conf/server.xml",在默认 Host(站点)中增加 Context(应用程序)的定义。

使用文本编辑器打开配置文件:

[centos@host ~]$ sudo gedit /usr/local/tomcat-9.0.34/conf/server.xml

在文件中的增加以下配置并保存:

<Server>
    <Service>  
        <Engine>
           <Host name="localhost" appBase="webapps" autoDeploy="true">
              <Context path="/virtualdirectory" docBase="physicaldirectory" reloadable="true" debug="0" />
           </Host>
        </Engine>  
    </Service>  
</Server>

② 在"/程序安装目录/webapps"中创建"physicaldirectory"目录。

[centos@host ~]$ sudo -u tomcat mkdir /usr/local/tomcat-9.0.34/webapps/physicaldirectory

③ 并将已发布的 WAR 文件拷贝到该目录中,Tomcat 会自动检测部署,用户通过"http://ip:port/virtualdirectory/WAR文件名"即可访问,默认的端口是8080。

方案三:建立新的站点部署(主机头部署)。

① 修改主配置文件 "/程序安装目录/conf/server.xml",在默认的 Service (服务)中增加自定义 Host 的定义。

使用文本编辑器打开配置文件:

[centos@host ~]$ sudo gedit /usr/local/tomcat-9.0.34/conf/server.xml

在文件中的增加以下配置并保存:

<Server>
    <Service>  
        <Engine>
           <Host name="www.host.com" appBase="hostapps" autoDeploy="true">
               <Valve className="org.apache.catalina.valves.AccessLogValve" directory="hostlogs"
                   prefix="localhost_access_log" suffix=".txt"
                   pattern="%h %l %u %t &quot;%r&quot; %s %b" />
            </Host>
         </Engine>  
    </Service>  
</Server>

② 在"/程序安装目录"中创建"hostapps"和"hostlogs"目录。

[centos@host ~]$ sudo -u tomcat mkdir /usr/local/tomcat-9.0.34/hostapps
[centos@host ~]$ sudo -u tomcat mkdir /usr/local/tomcat-9.0.34/hostlogs

③ 将已发布的 WAR 文件拷贝到该目录中,Tomcat 会自动检测部署,用户通过"http://www.host.com:port/WAR文件名"即可访问,默认的端口是8080。

④ 在 DNS 服务器上建立域名"www.host.com"与服务器 IP 地址的解析记录。**

方案四:建立新的监听端口部署。

① 修改主配置文件 "/程序安装目录/conf/server.xml",增加新的 Service(服务)的定义。

使用文本编辑器打开配置文件:

[centos@host ~]$ sudo gedit /usr/local/tomcat-9.0.34/conf/server.xml

在文件中的增加以下配置并保存:

<Server>
    <Service name="Catalina_New">
        <Connector port="8081" protocol="HTTP/1.1" connectionTimeout="20000" redirectPort="8443"/>
        <Engine name="Catalina" defaultHost="localhost">
            <Host name="localhost" appBase="webapps_new" autoDeploy="true">
                <Valve className="org.apache.catalina.valves.AccessLogValve" directory="logs_new"
                    prefix="localhost_access_log" suffix=".txt"
                    pattern="%h %l %u %t &quot;%r&quot; %s %b" />
            </Host>
         </Engine>
    </Service>
</Server>

② 在"/程序安装目录"中创建"webapps_new"和"logs_new"目录。

[centos@host ~]$ sudo -u tomcat mkdir /usr/local/tomcat-9.0.34/webapps_new
[centos@host ~]$ sudo -u tomcat mkdir /usr/local/tomcat-9.0.34/logs_new

重启启动 Tomcat 后,会监听8081端口。在新的 Service(服务)中,继续选择方案一、方案二、方案三的方式部署站点和应用程序,但是在访问时应使用新的端口号。

上一篇下一篇

猜你喜欢

热点阅读