Linux-tomcat环境搭建、jpress部署实践、nginx反向代理

♥️作者:小刘在C站

♥️个人主页: 小刘主页 

♥️努力不一定有回报,但一定会有收获加油!一起努力,共赴美好人生!

♥️学习两年总结出的运维经验,以及思科模拟器全套网络实验教程。专栏:云计算技术

♥️小刘私信可以随便问,只要会绝不吝啬,感谢CSDN让你我相遇!

目录

tomcat是什么?

tomcat安装

1.部署java环境

2.部署tomcat

3.tomcat目录介绍

4.启动和关闭tomcat

5.添加tomcat系统服务

1.安装配置mariadb数据库

2.上传jpress代码

3.web页面配置jpress

tomcat多实例

1.tomcat多实例介绍

2.复制目录

3.修改配置文件

4.启动多实例

5.查看服务是否启动

6.复制新的jpress到webapps

7.mysql新建数据库,jpress1和jpress2

8.客户端访问8081、8082,安装jpress

9.复制jpress文件内容到ROOT

nginx反向代理(192.168.8.128)

1.实验环境准备

2.安装配置nginx

3.创建代理配置文件

4.检查并启动nginx

5.修改客户机192.168.8.128 hosts,域名访问


tomcat是什么?

Tomcat是Apache 软件基金会(Apache Software Foundation)的Jakarta 项目中的一个核心项目,由Apache、Sun 和其他一些公司及个人共同开发而成。由于有了Sun 的参与和支持,最新的Servlet 和JSP 规范总是能在Tomcat 中得到体现,Tomcat 5支持最新的Servlet 2.4 和JSP 2.0 规范。因为Tomcat 技术先进、性能稳定,而且免费,因而深受Java 爱好者的喜爱并得到了部分软件开发商的认可,成为比较流行的Web 应用服务器。Tomcat 服务器是一个免费的开放源代码的Web 应用服务器,属于轻量级应用服务器,在中小型系统和并发访问用户不是很多的场合下被普遍使用,是开发和调试JSP 程序的首选。对于一个初学者来说,可以这样认为,当在一台机器上配置好Apache 服务器,可利用它响应HTML(标准通用标记语言下的一个应用)页面的访问请求。实际上Tomcat是Apache 服务器的扩展,但运行时它是独立运行的,所以当公司运行tomcat 时,它实际上作为一个与Apache 独立的进程单独运行的。诀窍是,当配置正确时,Apache 为HTML页面服务,而Tomcat 实际上运行JSP 页面和Servlet。另外,Tomcat和IIS等Web服务器一样,具有处理HTML页面的功能,另外它还是一个Servlet和JSP容器,独立的Servlet容器是Tomcat的默认模式。不过,Tomcat处理静态HTML的能力不如Apache服务器。Tomcat最新版本为10.0.23。

tomcat安装

1.部署java环境

yum install java-1.8.0 -y
java -version

2.部署tomcat

mkdir /data/soft -p
cd /data/soft/
复制tomcat包到/data/soft

tar zxf apache-tomcat-8.5.64.tar.gz -C /opt/
cd /opt
ln -s apache-tomcat-8.5.64 tomcat
/opt/tomcat/bin/startup.sh                 #启动tomcat

netstat -lntup|grep 8080                #查看端口
tail -1 /opt/tomcat/logs/catalina.out            #查看日志
curl -I 127.0.0.1:8080                    #本机访问测试

3.tomcat目录介绍

总目录

cd /opt/tomcat/
tree -L 1
├── bin             #用以启动,关闭Tomcat或其他脚本功能的脚本(.bat和.sh)
├── conf            #用以配置Tomcat的XML及DTD文件
├── lib             #存放web应用能访问的JAR包
├── logs            #Catalina和其他web应用程序的日志文件
├── temp            #临时文件
├── webapps         #Web应用程序根目录
└── work            #用以产生有JSP编译出的Servlet的.java和.class文件

webapps目录
cd webapps/
ll
总用量 8
drwxr-x--- 14 root root 4096 8月  10 16:37 docs          #tomcat帮助文档
drwxr-x---  6 root root   78 8月  10 16:37 examples      #web应用
drwxr-x---  5 root root   82 8月  10 16:37 host-manager  #管理
drwxr-x---  5 root root   97 8月  10 16:37 manager       #管理
drwxr-x---  3 root root 4096 8月  10 16:37 ROOT          #默认网站根目录

bin目录
脚本                 作用
startup.sh           开启tomcat脚本
shutdown.sh          关闭tomcat脚本
catalina.sh          核心管理脚本,以后jvm优化参数及相关配置,修改tomcat启动参数

4.启动和关闭tomcat

脚本方式:
/opt/tomcat/bin/startup.sh
/opt/tomcat/bin/shutdown.sh


5.添加tomcat系统服务

cat >> /opt/tomcat/bin/setenv.sh << "END"
# 设置tomcat pid
CATALINA_PID="$CATALINA_BASE/tomcat.pid"
# 设置java参数,提高性能
JAVA_OPTS="-server -XX:MetaspaceSize=256M -XX:MaxMetaspaceSize=1024m -Xms512M -Xmx1024M -XX:MaxNewSize=256m"
END

#设置权限
chmod +x /opt/tomcat/bin/setenv.sh
#创建tomcat用户和组
groupadd -r tomcat
useradd -r -d /opt/tomcat -s /bin/nologin -g tomcat tomcat
chown -R tomcat:tomcat /opt/tomcat

#配置systemctl管理tomcat
cat >> /usr/lib/systemd/system/tomcat.service << "END"
[Unit]
Description=Apache Tomcat 8
After=syslog.target network.target
 
[Service]
Type=forking
PIDFile=/opt/tomcat/tomcat.pid
ExecStart=/opt/tomcat/bin/startup.sh
ExecReload=/bin/kill -s HUP $MAINPID
ExecStop=/bin/kill -s QUIT $MAINPID
PrivateTmp=true
User=tomcat
Group=tomcat

[Install]
WantedBy=multi-user.target
END

启动tomcat:
systemctl start tomcat

注:如果报错,启动不了: chmod -R 777 /opt/tomcat
#############################################################################
搭建jpress部署实践

1.安装配置mariadb数据库

rpm -ivh http://repo.mysql.com/yum/mysql-5.6-community/el/7/x86_64/mysql-community-release-el7-5.noarch.rpm
yum install mysql-community-server -y
systemctl start mysqld
systemctl enable mysqld
mysqladmin -uroot -p password 123456

mysql -uroot -p123456
> create database jpress default charset utf8;
>  flush privileges;

2.上传jpress代码

mv jpress.war /opt/tomcat/webapps/

3.web页面配置jpress

打开浏览器:http://192.168.8.129:8080/jpress/
安装过程,数据库用户使用root

后台登陆页面:http://192.168.8.129:8080/jpress/admin


##############################################################

tomcat多实例

1.tomcat多实例介绍

其本质就是复制多个tomcat目录,然后修改为不同的端口并启动
代码一致,但是公用一个数据库

2.复制目录

cd /opt/
cp -a apache-tomcat-8.5.66 tomcat1
cp -a apache-tomcat-8.5.66 tomcat2
删除tomcat1和tomcat2的webapps里的jpress
rm -rf /opt/tomcat1/webapps/jpress*
rm -rf /opt/tomcat2/webapps/jpress*

3.修改配置文件

修改端口号
sed -i 's#8005#8006#g'  tomcat1/conf/server.xml
sed -i 's#8009#8010#g'  tomcat1/conf/server.xml
sed -i 's#8080#8081#g'  tomcat1/conf/server.xml
sed -i 's#8005#8007#g'  tomcat2/conf/server.xml
sed -i 's#8009#8011#g'  tomcat2/conf/server.xml
sed -i 's#8080#8082#g'  tomcat2/conf/server.xml

4.启动多实例

/opt/tomcat1/bin/startup.sh

/opt/tomcat2/bin/startup.sh


5.查看服务是否启动

netstat -anput |grep java

6.复制新的jpress到webapps

cp /data/soft/jpress.war  /opt/tomcat1/webapps/
cp /data/soft/jpress.war  /opt/tomcat1/webapps/

7.mysql新建数据库,jpress1和jpress2

mysql -uroot -p123456
create database jpress1 default charset utf8;
create database jpress2 default charset utf8;

8.客户端访问8081、8082,安装jpress

9.复制jpress文件内容到ROOT

cp -a  /opt/tomcat1/webapps/jpress/*   /opt/tomcat1/webapps/ROOT
cp -a  /opt/tomcat1/webapps/jpress/*   /opt/tomcat1/webapps/ROOT

######################################################################################

nginx反向代理(192.168.8.128)

1.实验环境准备

a.多实例tomcat 8081 8082
b.数据库使用共有的db 192.168.8.129:3306
c.代码使用各自目录的jpress
d.使用nginx反向代理到后端的2个端口

2.安装配置nginx

yum -y install epel-release
yum -y install nginx

3.创建代理配置文件

vim  /etc/nginx/conf.d/proxy.conf
添加:
upstream java {
    server 192.168.8.129:8081;
    server 192.168.8.129:8082;
}
server {
    listen       80;
    server_name  www.jpress.com;
    root   html;
    index  index.html index.htm;
    location / {
        proxy_pass http://java;
        proxy_set_header Host $http_host;
        proxy_set_header X-Real-IP $remote_addr;
        proxy_set_header X-Forwarded-For $proxy_add_x_forwarded_for;
    }
}
保存退出

4.检查并启动nginx

nginx -t
systemctl start nginx

5.修改客户机192.168.8.128 hosts,域名访问

vim  /etc/hosts
192.168.8.128 www.jpress.com

打开浏览器:www.jpress.com

♥️关注,就是我创作的动力

♥️点赞,就是对我最大的认可

♥️这里是小刘,励志用心做好每一篇文章,谢谢大家

本文来自互联网用户投稿,该文观点仅代表作者本人,不代表本站立场。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如若转载,请注明出处:http://www.mzph.cn/news/5720.shtml

如若内容造成侵权/违法违规/事实不符,请联系多彩编程网进行投诉反馈email:809451989@qq.com,一经查实,立即删除!

相关文章

分类评估指标

文章目录 1. 混淆矩阵2. Precision(精准率)3. Recall(召回率)4. F1-score5. ROC曲线和AUC指标5.1 ROC 曲线5.2 绘制 ROC 曲线5.3 AUC 值6. API介绍6.1 **分类评估报告api**6.2 **AUC计算API**练习-电信客户流失预测1. 数据集介绍2. 处理流程3. 案例实现4. 小结1. 混淆矩阵

ElasticSearch学习--RestClient及案例

目录 RestClient查询文档 快速入门 总结 全文检索&#xff08;match&#xff09;查询 精确查询 复合查询 查询总结 排序&#xff0c;分页 高亮 RestClient查询文档 快速入门 总结 全文检索&#xff08;match&#xff09;查询 多种查询的差异都在做类型和条件上&#x…

[SQL挖掘机] - HAVING语句

经过对分组函数 group by的介绍, 往往少不了having, 所以这篇文章主要介绍having语句. group by分组函数可以查看如下链接; https://tongjier.blog.csdn.net/article/details/131885281 介绍: having 是用于在 group by 查询中对分组结果进行过滤的子句。它允许我们在分组之后…

数据可视化——如何绘制地图

文章目录 前言如何绘制地图添加配置项 根据已有数据绘制地图整体代码展示 前言 前面我们学习了如何利用提供的数据来对数据进行处理&#xff0c;然后以折线图的形式展现出来&#xff0c;那么今天我将为大家分享如何将提数据以地图的形式展现。 如何绘制地图 前面我们绘制折线…

如何从gitee上下载项目并把它在本地运行起来

有时候我们会想到在gitee上下载下来项目&#xff0c;那么怎么把项目下载到本地并跑起来呢&#xff1f; 第一步&#xff1a;在git上找到你想要克隆下来的项目&#xff0c;按照如下操作复制项目地址连接&#xff0c;如下图&#xff1a; 以上可以选择HTTPS和SSH两种形式。 第二步…

REST和RPC的区别

1 REST REST 不是一种协议&#xff0c;它是一种架构。大部分REST的实现中使用了RPC的机制&#xff0c;大致由三部分组成&#xff1a; method&#xff1a;动词&#xff08;GET、POST、PUT、DELETE之类的&#xff09;Host&#xff1a;URI&#xff08;统一资源标识&#xff09;&…

Hologres SQL

1.SQL基础 1.1 DDL 创建数据库 CREATE DATABASE db_name [[WITH] OWNER [] user_name];创建者自动成为新DB的owner用户需要有CREATEDB权限&#xff08;或者superuser&#xff09; 删除数据库 DROP DATABASE [IF EXISTS] db_name;只有该数据库的superuser或者该db的owner才…

jmeter压测过程中,ServerAgent响应异常:Cannot send data to network connection

ServerAgent异常信息&#xff1a; Cannot send data to network connection&#xff08;无法将数据发送到网络连接&#xff09; 原因&#xff1a; linux 防火墙 拦截了当前端口 解决方案&#xff1a; Linux 执行以下命令 /sbin/iptables -I INPUT -p tcp --dport 4445 -j ACC…

数学建模入门-如何从0开始,掌握数学建模的基本技能

一、前言 本文主要面向没有了解过数学建模的同学&#xff0c;帮助同学们如何快速地进行数学建模的入门并且尽快地在各类赛事中获奖&#xff0c;或者写出优秀的数学建模论文。 在本文中&#xff0c;我将从什么是数学建模、数学建模的应用领域、数学建模的基本步骤、数学建模的技…

【python】如何包装 numpy 的数组

一、说明 Numpy的数组是强大的对象&#xff0c;通常用作更复杂的对象&#xff08;如pandas或xarray&#xff09;的基本数据结构。话虽如此&#xff0c;您当然也可以在自己的类中使用numpy的强大数组 - 为此&#xff0c;您基本上有2种方法&#xff1a; 子类方法&#xff1a;创建…

【动手学深度学习】--12.深度卷积神经网络AlexNet

文章目录 深度卷积神经网络AlexNet1.AlexNet2.模型设计3.激活函数4.模型实现5.读取数据集6.训练AlexNet 深度卷积神经网络AlexNet 学习视频&#xff1a;深度卷积神经网络 AlexNet【动手学深度学习v2】 官方笔记&#xff1a;深度卷积神经网络&#xff08;AlexNet&#xff09; …

Android 中 app freezer 原理详解(一):R 版本

基于版本&#xff1a;Android R 0. 前言 在之前的两篇博文《Android 中app内存回收优化(一)》和 《Android 中app内存回收优化(二)》中详细剖析了 Android 中 app 内存优化的流程。这个机制的管理通过 CachedAppOptimizer 类管理&#xff0c;为什么叫这个名字&#xff0c;而不…

【Linux | Shell】结构化命令2 - test命令、方括号测试条件、case命令

目录 一、概述二、test 命令2.1 test 命令2.2 方括号测试条件2.3 test 命令和测试条件可以判断的 3 类条件2.3.1 数值比较2.3.2 字符串比较 三、复合条件测试四、if-then 的高级特性五、case 命令 一、概述 上篇文章介绍了 if 语句相关知识。但 if 语句只能执行命令&#xff0c…

Docker 的数据管理、容器互联、镜像创建

目录 一、数据管理 1.数据卷 2. 数据卷容器 二、容器互联&#xff08;使用centos镜像&#xff09; 三、Docker 镜像的创建 1.基于现有镜像创建 1.1首先启动一个镜像&#xff0c;在容器里修改 1.2将修改后的容器提交为新的镜像&#xff0c;需使用该容器的id号创建新镜像 …

JAVA SE -- 第十天

&#xff08;全部来自“韩顺平教育”&#xff09; 一、枚举&#xff08;enumeration&#xff0c;简写enum&#xff09; 枚举是一组常量的集合 1、实现方式 a.自定义类实现枚举 b.使用enum关键字实现枚举 二、自定义类实现枚举 1、注意事项 ①不需要提供setXxx方法&#xff…

HTTP、HTTPS协议详解

文章目录 HTTP是什么报文结构请求头部响应头部 工作原理用户点击一个URL链接后&#xff0c;浏览器和web服务器会执行什么http的版本持久连接和非持久连接无状态与有状态Cookie和Sessionhttp方法&#xff1a;get和post的区别 状态码 HTTPS是什么ssl如何搞到证书nginx中的部署 加…

【从删库到跑路】MySQL数据库的索引(一)——索引的结构(BTree B+Tree Hash),语法等

&#x1f38a;专栏【MySQL】 &#x1f354;喜欢的诗句&#xff1a;更喜岷山千里雪 三军过后尽开颜。 &#x1f386;音乐分享【如愿】 &#x1f970;欢迎并且感谢大家指出小吉的问题 文章目录 &#x1f354;概述&#x1f354;索引结构⭐B-Tree多路平衡查找树&#x1f3f3;️‍&a…

【iOS】weak关键字的实现原理

前言 关于什么是weak关键字可以去看看我以前的一篇博客&#xff1a;【OC】 属性关键字 weak原理 1. SideTable SideTable 这个结构体&#xff0c;前辈给它总结了一个很形象的名字叫引用计数和弱引用依赖表&#xff0c;因为它主要用于管理对象的引用计数和 weak 表。在 NSOb…

(笔记)快速排序

快速排序 快速排序是一种常用的排序算法。它的时间复杂度为O(nlogn)&#xff0c;并且在实际应用中表现良好。快速排序的基本思想是通过选择一个基准数&#xff0c;将数组分成两个子数组&#xff0c;比基准数小的放在左边&#xff0c;比基准数大的放在右边&#xff0c;然后对左…

Vite + Vue3 + Ts 【免key、免账号实战本地运行GPT】

&#x1f414; 前期回顾 Vue3 Ts Vite —— 封装庆祝彩屑纷飞 示例_彩色之外的博客-CSDN博客封装 彩屑纷飞 示例https://blog.csdn.net/m0_57904695/article/details/131718019?spm1001.2014.3001.5501 目录 &#x1f30d; 公网 &#x1f6f9; 本地 &#x1fa82; 源码 &…