上手Tomcat

1.Ubuntu 18.04 下载/安装Tomcat

以下内容参考链接

  1. 安装JDK

    sudo apt-get update
    sudo apt-get install default-jdk
  2. 创建Tomcat用户

    从安全角度考虑,Tomcat应当由非Root用户运行。所以接下来我们要创建一个用户组和用户来运行Tomcat

    添加用户组:

    sudo groupadd tomcat

    添加用户:

    sudo useradd -s /bin/false -g tomcat -d /opt/tomcat tomcat
  3. 安装Tomcat

    安装Tomcat最好的方式是下载 Binary Release 并手动配置。
    Tomcat 9 Download Page 下载最新版本,并解压到 /opt/tomcat 文件夹内

  4. 更新权限

    # 进入 tomcat 文件夹内
    cd /opt/tomcat
    # 将 /opt/tomcat 文件夹及文件夹内所有内容的拥有者设置为 tomcat组
    sudo chgrp -R tomcat /opt/tomcat
    # conf文件夹内的内容赋予读取权限
    sudo chmod -R g+r conf
    # conf文件夹自身赋予读取权限
    # 将 webapps work temp logs 的拥有者设置为 tomcat组
    sudo chown -R tomcat webapps/ work/ temp/ logs/
  5. 创建一个服务文件

    我们要把Tomcat以服务(守护进程)的方式来运行,所以需要创建一个 systemd 服务文件。

    Tomcat 需要知道 JAVA 的安装目录,该目录保存在系统环境变量 JAVA_HOME 中,运行下面的命令来查找安装路径:

    sudo update-java-alternatives -l

    显示出两个地址:

    java-1.11.0-openjdk-amd64      1101       /usr/lib/jvm/java-1.11.0-openjdk-amd64
    java-1.8.0-openjdk-amd64       1081       /usr/lib/jvm/java-1.8.0-openjdk-amd64

    我使用 jdk8 的安装路径。

    编辑 tomcat.service 文件

    sudo gedit /etc/systemd/system/tomcat.service

    粘贴如下内容:

    [Unit]
    Description=Apache Tomcat Web Application Container
    After=network.target
    
    [Service]
    Type=forking
    
    Environment=JAVA_HOME=/usr/lib/jvm/java-1.8.0-openjdk-amd64
    Environment=CATALINA_PID=/opt/tomcat/temp/tomcat.pid
    Environment=CATALINA_HOME=/opt/tomcat
    Environment=CATALINA_BASE=/opt/tomcat
    Environment='CATALINA_OPTS=-Xms512M -Xmx1024M -server -XX:+UseParallelGC'
    Environment='JAVA_OPTS=-Djava.awt.headless=true -Djava.security.egd=file:/dev/./urandom'
    
    ExecStart=/opt/tomcat/bin/startup.sh
    ExecStop=/opt/tomcat/bin/shutdown.sh
    
    User=tomcat
    Group=tomcat
    UMask=0007
    RestartSec=10
    Restart=always
    
    [Install]
    WantedBy=multi-user.target

    保存并退出。

    重载修改过的配置文件

    sudo systemctl daemon-reload

    开启 Tomcat 服务

    sudo systemctl start tomcat

    查看 Tomcat 服务的状态

    sudo systemctl status tomcat
  6. 打开防火墙并测试 Tomcat

    sudo ufw allow 8080

    在浏览器中输入地址:http://127.0.0.1:8080/ ,默认会打开 Tomcat 的启动页面。另外,如果我们点击 Manage App这个按钮,会显示拒绝访问。下文我们将会介绍如何来配置权限。

    最后,确认可以访问 Tomcat 后,开启服务。

    sudo systemctl enable tomcat
  7. 配置 Tomcat 网络管理接口

    为了管理Tomcat的 web app ,我们必须要开启一个账户来登录 Tomcat server。

    sudo gedit /opt/tomcat/conf/tomcat-users.xml

    在 tomcat-users 节点下添加一个 user 节点,如下:

    <tomcat-users xmlns="http://tomcat.apache.org/xml"
                  xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance"
                  xsi:schemaLocation="http://tomcat.apache.org/xml tomcat-users.xsd"
                  version="1.0">
     <user username="admin" password="admin" roles="manager-gui,admin-gui"/>
    </tomcat-users>

    默认情况下,较新版本的 Tomcat只允许来自服务器本身的连接访问 Manager & Host Manager。如果需要通过远程更改,可以修改 context.xml 文件。

    # Manager app
    sudo gedit /opt/tomcat/webapps/manager/META-INF/context.xml
    # Host Manader app
    sudo gedit /opt/tomcat/webapps/host-manager/META-INF/context.xml

    注释限制访问的 IP 节点:

    <Context antiResourceLocking="false" privileged="true" >
      <!--Valve className="org.apache.catalina.valves.RemoteAddrValve"
             allow="127\.\d+\.\d+\.\d+|::1|0:0:0:0:0:0:0:1" /-->
      <Manager sessionAttributeValueClassNameFilter="java\.lang\.(?:Boolean|Integer|Long|Number|String)|org\.apache\.catalina\.filters\.CsrfPreventionFilter\$LruCache(?:\$1)?|java\.util\.(?:Linked)?HashMap"/>
    </Context>

    重启 Tomcat 服务来应用修改

    sudo systemctl restart tomcat

结束!

JavaWeb-BeginTomcat的更多相关文章

  1. 从啥也不会到可以胜任最基本的JavaWeb工作,推荐给新人的学习路线(二)

    在上一节中,主要阐述了JavaScript方面的学习路线.先列举一下我朋友的经历,他去过培训机构,说是4个月后月薪过万,虽然他现在还未达到这个指标. 培训机构一般的套路是这样:先教JavaSE,什么都 ...

  2. JavaWeb——Servlet

    一.基本概念 Servlet是运行在Web服务器上的小程序,通过http协议和客户端进行交互. 这里的客户端一般为浏览器,发送http请求(request)给服务器(如Tomcat).服务器接收到请求 ...

  3. JavaWeb——Listener

    一.基本概念 JavaWeb里面的listener是通过观察者设计模式进行实现的.对于观察者模式,这里不做过多介绍,大概讲一下什么意思. 观察者模式又叫发布订阅模式或者监听器模式.在该模式中有两个角色 ...

  4. .JavaWeb文件上传和FileUpload组件使用

    .JavaWeb文件上传 1.自定义上传 文件上传时的表单设计要符合文件提交的方式: 1.提交方式:post 2.表单中有文件上传的表单项:<input type="file" ...

  5. javaWeb应用打包

    在Java中,使用"jar"命令来对将JavaWeb应用打包成一个War包,jar命令的用法如下:

  6. JavaWeb——tomcat安装及目录介绍

    一.web web可以说,就是一套 请求->处理->响应 的流程.客户端使用浏览器(IE.FireFox等),通过网络(Network)连接到服务器上,使用HTTP协议发起请求(Reque ...

  7. 做JavaWeb开发不知Java集合类不如归家种地

    Java作为面向对象语言对事物的体现都是以对象的形式,为了方便对多个对象的操作,就要对对象进行存储.但是使用数组存储对象方面具有一些弊端,而Java 集合就像一种容器,可以动态地把多个对象的引用放入容 ...

  8. JavaWeb基础学习体系与学习思路

    对于JAVAWEB的学习,首先一定要明确的是学习整体框架和思路,要有一个把控.对于WEB,很多人认为是做网页,简单的把静态网页与JAVAWEB与网页设计一概而论. 拿起一本JS就开始无脑的学习,学了一 ...

  9. Eclipse下配置javaweb项目快速部署到tomcat

    用惯了VS,再用Eclipse,完全有一种从自动挡到手动挡的感觉啊. 很多同学在Eclipse下开发web项目,每一次修改代码,看效果的时候都有右键项目->Run as -> Run on ...

  10. javaweb学习笔记之servlet01

    一.Servlet概述 A servlet is a small Java program that runs within a Web server. Servlets receive and re ...

随机推荐

  1. MSMQ队列的简单使用

    微软消息队列-MicroSoft Message Queue(MSMQ) 使用感受:简单. 一.windows安装MSMQ服务 控制面板->控制面板->所有控制面板项->程序和功能- ...

  2. ProgressDialog修改TextView的TextSize

    ProgressDialog修改TextView的TextSize 问题描述 今天UI过来找我说是加载条的字号太小了,不好看,希望可以改一下,然后我就研究一下如何修改ProgressDialog里面T ...

  3. Nginx 在 Linux 上的安装和配置

    一.Nginx的安装 1.单台Nginx的安装 Nginx在Linux上的安装可以参考这篇博客:http://blog.csdn.net/molingduzun123/article/details/ ...

  4. 控制页面打印的2种方法(css3的media媒体查询和window.print())

    在实际开发中,有时可能会有打印的需求.下面我总结了2种打印的方法,希望对各位小伙伴有所帮助. ①:直接用window.print()方法就可以打印整个页面,下面是一个小demo <!DOCTYP ...

  5. Aseprite入门:第一个gif动图

    前言:Aseprite入门教程 1.新建图片: 选择新建文件,然后选定宽高和颜色及背景类型,点击OK进行图片的创建: 2.绘制一个基础图形,为了方便还是选用球形: 填充上颜色: 美化(添加阴影增加小球 ...

  6. 安卓ListView行详细内容展示页编写和下拉刷新实现

    ListView行详细内容展示页: 使用轻量级的Fragment实现Listview行内容简单的详细信息展示: 值得注意的是: 1. 主布局(打开它的Activity)必须是FrameLayout布局 ...

  7. Java 虚拟机对锁优化所做的努力

    作为一款公用平台,JDK 本身也为并发程序的性能绞尽脑汁,在 JDK 内部也想尽一切办法提供并发时的系统吞吐量.这里,我将向大家简单介绍几种 JDK 内部的 "锁" 优化策略. 1 ...

  8. MySQL基础整理(一)之SQL基础(未完成)

    大家好,我是浅墨竹染,以下是MySQL基础整理(一)之SQL基础 1.SQL简介 SQL(Structure Query Language)是一种结构化查询语言,是使用关系模型的数据库应用语言. 2. ...

  9. js对象按某个字段排序

    var arr = [ {name:'zopp',age:0}, {name:'gpp',age:18}, {name:'yjj',age:8} ]; function compare(propert ...

  10. Ocelot简易教程(一)之Ocelot是什么

    作者:依乐祝 原文地址:https://www.cnblogs.com/yilezhu/p/9557375.html Ocelot简易教程目录 Ocelot简易教程(一)之Ocelot是什么 Ocel ...