【基础篇】Tomcat基础

Tomcat 服务器是一个免费的开放源代码的Web 应用服务器,其是Apache 软件基金会(Apache Software Foundation)的Jakarta 项目中的一个核心项目,由Apache、Sun 和其他一些公司及个人共同开发而成。因为Tomcat技术先进、性能稳定,而且免费,因而深受Java爱好者的喜爱并得到了部分软件开发商的认可,是开发和调试JSP程序的首选。 --百度百科

好的,让我们开始Tomcat之旅~

Tomcat的获取和安装

  • 安装Tomcat的基础环境
[root@server ~]# yum -y install java-1.8.0-openjdk-devel #Tomcat的安装和运行依赖于JDK, 因此必须先安装JDK,获取运行环境
  • 校验JDK是否安装成功
[root@server ~]# java -version
openjdk version "1.8.0_151"
OpenJDK Runtime Environment (build 1.8.0_151-b12)
OpenJDK 64-Bit Server VM (build 25.151-b12, mixed mode)
  • 安装Tomcat
[root@server ~]# yum -y install tomcat tomcat-admin-webapps tomcat-webapps tomcat-docs-webapp
  • 查看当前端口占用情况
[root@server ~]# ss -tnl |grep 8080
  • 启动服务
[root@server ~]# systemctl start tomcat 
[root@server ~]# ss -tnl |grep 8080
LISTEN     0     100     :::8080     :::*

部署第一个Tomcat实例

  • 创建相关文件
[root@server ~]# mkdir -p /website/ROOT
[root@server ~]# vim /website/ROOT/index.jsp
    <%@ page language="java" %>
    <%@ page import="java.util.*" %>
    <html>
    <head>
        <title>Test Page</title>
    </head>
    <body>
        <% out.println("Welcome to zhimajihua.cn");%>
    </body>
    </html>    
[root@server ~]# cd /website/ROOT/
[root@server ROOT]# pwd
/website/ROOT
  • 部署第一个Tomcat实例
[root@server ~]# cd /etc/tomcat/
[root@server tomcat]# ls 
Catalina             conf.d            logging.properties  tomcat-users.xml
catalina.policy      context.xml       server.xml          web.xml
catalina.properties  log4j.properties  tomcat.conf
[root@server tomcat]# vim server.xml 
    <Host name="zhimajihua.cn"  appBase="/website" unpackWARs="true" autoDeploy="true" /> #注意,需要卸载引擎内部,即</Engine>...</Engine>
[root@server tomcat]# systemctl restart tomcat
  • 配置客户端被访问站点。由于是在实验环境下,因为我们临时修改/etc/hosts。如果是Windows NT,请修改C:\WINDOWS\System32\drivers\etc\hosts
[root@client ~]# echo "192.168.1.100 zhimajihua.cn" >> /etc/hosts
[root@client ~]# yum -y install elinks 
[root@client ~]# elinks -dump zhimajihua.cn:8080
  Welcome to zhimajihua.cn

配置日志文件及访问控制

  • 配置日志文件
[root@server tomcat]# vim server.xml #注意,由于我们在虚机配置段`<Host/>`内配置了`Valve`, 因此必须以`</Host>`闭合
    <Host name="zhimajihua.cn" appBase="/website" unpackWARs="true" autoDeploy="true">
        <Valve className="org.apache.catalina.valves.AccessLogValve" directory="/var/log/tomcat" prefix="zhimajihua.cn_access_." suffix=".log" pattern="%h %l %u %t &quot;%r&quot; %s %b"/>
    </Host>
[root@server tomcat]# systemctl restart tomcat

如下图,日志文件已生效

  • 配置访问控制
[root@server tomcat]# vim server.xml 
    <Valve className="org.apache.catalina.valves.RemoteAddrValve" deny="192\.168\.1\.50"/> #拒绝特定主机的访问, 本例中192.168.1.50即我们的客户端IP
[root@server tomcat]# systemctl restart tomcat

如下图,Client主机被阻止访问

配置前端Nginx反代

  • 一般来说,在生产环境下,不建议让Tomcat直接响应来自互联网的用户请求(要知道,Tomcat默认的并行响应值仅仅是150个~),而是在前面置一个Nginx或Httpd反代。此处以Nginx为例,即NT。其类比Httpd只是各自具体实现的指令模块不同而已,此处不赘述。
[root@DataCenter ~]# yum -y install nginx #本文将Nginx和Tomcat构建在同一主机上,组成NT即用户请求先到达Nginx
[root@DataCenter ~]# systemctl start nginx
[root@DataCenter ~]# systemctl enable nginx
[root@DataCenter ~]# cd /etc/nginx/conf.d/
[root@DataCenter conf.d]# vim nginx_tomcat.conf 
[root@DataCenter conf.d]# cat nginx_tomcat.conf
server {
    listen 80 default_server;
    server_name zhimajihua.cn;
    location / {
        proxy_pass http://127.0.0.1:8080;
    }
}
[root@DataCenter conf.d]#  systemctl restart nginx
  • 客户端测试
[root@localhost ~]# elinks --dump zhimajihua.cn
   welcome to zhumajihua.cn

本文参与腾讯云自媒体分享计划,欢迎正在阅读的你也加入,一起分享。

发表于

我来说两句

0 条评论
登录 后参与评论

扫码关注云+社区

领取腾讯云代金券