当前位置: 首页 > news >正文

CentOS7+Tomcat 生产系统部署

1 准备OS账户

安全起见,本着最小权限原则,生产系统决不同意使用root账户来执行tomcat。为此,建立新账户tomcat,并设定登录password。

useradd tomcat
passwd tomcat

2 配置防火墙放行8080port并做80port映射

在/etc/firewalld/services/文件夹下新建一个名为tomcat.xml的文件,内容例如以下:

<?

xml version="1.0" encoding="utf-8"?

> <service> <short>Tomcat Webserver</short> <description>HTTPS is a modified HTTP used to serve Web pages when security is important. Examples are sites that require logins like stores or web mail. This option is not required for viewing pages locally or developing Web pages. You need the httpd package installed for this option to be useful.</description> <port protocol="tcp" port="8080"/> </service>

然后把此服务增加防火墙规则中

 firewall-cmd --reload
 firewall-cmd --add-service=tomcat
 firewall-cmd --permanent --add-service=tomcat

 

因为非root用户不能侦听1023下面端口,所以这里採用一个变通的方法。就是利用firewalld在数据包路由之前进行端口转发。把全部发往80的tcp包转发到8080就可以。

firewall-cmd --add-forward-port=port=80:proto=tcp:toport=8080
firewall-cmd --permanent --add-forward-port=port=80:proto=tcp:toport=8080

此后tomcat就相当于同一时候侦听80和8080两个port了。

 

此后的步骤均是在tomcat账户环境下进行。

3 以tomcat用户绿色安装JDK和TOMCAT

Tomcat真的是很的简洁,属于纯绿色软件,直接下载下来解压就完毕了安装。稍加配置就可以顺利执行,详细的配置步骤參见$CATALINA_HOME/RUNNING.txt文件,说的很清楚。基本原理是:Tomcat已经做了控制启动与停止的脚本bin/catalina.sh。此脚本顺利执行的唯一必须前提是,知道JDK安装路径。Tomcat官方建议新建一个bin/setevn.sh的文件,并在当中环境变量设置JAVA_HOME。由于catalina.sh文件中会自己主动读取setenv.sh。启动脚本会依据JAVA_HOME自己主动设置CLASSPATH以及CATALINA_HOME等其它环境变量。无需用户直接參与。

此后就能够通过bin/catalina.sh start来启动。通过bin/catalina.sh stop来关闭Tomcat了。

相关文章:

  • 只有明确目标和方向才能直冲云霄
  • 如何解决MathType特殊字符在InDesign中的这些问题
  • 【深入浅出Node.js系列二】Node.jsNPM的安装与配置
  • ElasticSearch关闭重启命令
  • linux命令总结之---cat命令
  • 使用 wondershaper 在 Linux 中限制网络带宽使用
  • Python 中使用 MongoDB 存储爬虫数据
  • Jquery的同步和异步请求
  • 优先级队列(大顶堆)
  • orm2 中文文档 3.1 模型属性
  • 点击复选框添加或删除value值到input输入框中
  • Android Property Animation属性动画:rotation旋转(2)
  • linux上很方便的上传下载文件工具rz和sz使用介绍
  • 2016.1.13 随笔
  • JMeter基础之一 一个简单的性能测试
  • IE9 : DOM Exception: INVALID_CHARACTER_ERR (5)
  • 【每日笔记】【Go学习笔记】2019-01-10 codis proxy处理流程
  • egg(89)--egg之redis的发布和订阅
  • ES6 ...操作符
  • IDEA 插件开发入门教程
  • JavaScript/HTML5图表开发工具JavaScript Charts v3.19.6发布【附下载】
  • scala基础语法(二)
  • 测试如何在敏捷团队中工作?
  • 服务器之间,相同帐号,实现免密钥登录
  • 干货 | 以太坊Mist负责人教你建立无服务器应用
  • 免费小说阅读小程序
  • 前端每日实战:61# 视频演示如何用纯 CSS 创作一只咖啡壶
  • 如何在 Tornado 中实现 Middleware
  • 突破自己的技术思维
  • 职业生涯 一个六年开发经验的女程序员的心声。
  • AI算硅基生命吗,为什么?
  • # 安徽锐锋科技IDMS系统简介
  • $redis-setphp_redis Set命令,php操作Redis Set函数介绍
  • (C++)栈的链式存储结构(出栈、入栈、判空、遍历、销毁)(数据结构与算法)
  • (Java岗)秋招打卡!一本学历拿下美团、阿里、快手、米哈游offer
  • (zz)子曾经曰过:先有司,赦小过,举贤才
  • (附源码)ssm经济信息门户网站 毕业设计 141634
  • (论文阅读32/100)Flowing convnets for human pose estimation in videos
  • (十)c52学习之旅-定时器实验
  • (十三)Java springcloud B2B2C o2o多用户商城 springcloud架构 - SSO单点登录之OAuth2.0 根据token获取用户信息(4)...
  • (十一)图像的罗伯特梯度锐化
  • (一)Linux+Windows下安装ffmpeg
  • ****** 二十三 ******、软设笔记【数据库】-数据操作-常用关系操作、关系运算
  • *上位机的定义
  • . NET自动找可写目录
  • .net framework 4.0中如何 输出 form 的name属性。
  • .NET 简介:跨平台、开源、高性能的开发平台
  • .net 使用$.ajax实现从前台调用后台方法(包含静态方法和非静态方法调用)
  • .NET学习教程二——.net基础定义+VS常用设置
  • @EnableWebMvc介绍和使用详细demo
  • [] 与 [[]], -gt 与 > 的比较
  • [<MySQL优化总结>]
  • [20150707]外部表与rowid.txt
  • [AutoSar]BSW_OS 02 Autosar OS_STACK
  • [C]编译和预处理详解