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

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

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

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

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

相关文章:

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

♥️作者&#xff1a;小刘在C站 ♥️个人主页&#xff1a; 小刘主页 ♥️努力不一定有回报&#xff0c;但一定会有收获加油&#xff01;一起努力&#xff0c;共赴美好人生&#xff01; ♥️学习两年总结出的运维经验&#xff0c;以及思科模拟器全套网络实验教程。专栏&#xf…...

SQLmap使用

文章目录 利用sqlmap 注入得到cms网站后台管理员账密获取数据库名称获取cms数据库的表名获取users表中的字段&#xff08;内容&#xff09;获取username字段和password字段的内容 salmap破解psot请求数据包salmap获取getshell 利用sqlmap 注入得到cms网站后台管理员账密 获取数…...

【Flutter】Flutter 使用 infinite_scroll_pagination 实现无限滚动分页

【Flutter】Flutter 使用 infinite_scroll_pagination 实现无限滚动分页 文章目录 一、前言二、安装和基本使用1. 添加依赖2. 基础配置和初始化 三、实际业务中的用法1. 与 API 集成2. 错误处理 四、完整示例1. 创建一个无限滚动列表2. 使用在你的应用中3. 完整代码示例 五、总…...

python爬虫的js逆向入门到进阶教程文章分享汇总~持续更新

目录 一、内容介绍二 、专栏内容-持续更新1、JS逆向入门2、Js逆向进阶3、爬虫基础知识4、工具与安装5、漫星内容分享 三、星球使用四、b站up主视频推荐 一、内容介绍 二 、专栏内容-持续更新 1、JS逆向入门 2023-08-25》11.常见加密>xx音乐RSA加密 https://articles.zsxq.c…...

面试常问:水平居中和垂直居中的方法

水平居中 文本居中 如果元素为行内元素&#xff0c;可以将父元素的text-align属性设置为center&#xff0c;这样子元素就会水平居中对齐 .text{text-align: center; }固定宽度的居中 如果元素宽度已知并固定&#xff0c;可以通过将左右margin设置为auto来实现水平居中。 .…...

第七届“蓝帽杯”初赛取证题目分享

前言&#xff1a; 刚刚打完比赛&#xff0c;准备晚上写一下wp&#xff0c;刚好整理一下题目&#xff0c;ctf的题目一般都有&#xff0c;取证不一定&#xff0c;所以我整理一下&#xff0c;方便大家复盘。 题目&#xff1a; 1&#xff1a;【APK取证】涉案apk的包名是&#xff…...

go语言学习之有关变量的知识

文章目录 变量的学习1.变量的使用步骤2.变量的注意事项3.变量使用的三种方式&#xff1a;4.程序中 号的使用5.变量的数据类型1&#xff09;int数据类型2&#xff09;小数类型浮点型3&#xff09;**字符类型**4&#xff09;**字符串&#xff08;String&#xff09;类型**5&…...

算法通过村第8关【青铜】| 二叉树的经典算法题

二叉树的双指针 1.相同的树 思路&#xff1a;递归的挨个比较是否相同 class Solution {public boolean isSameTree(TreeNode p, TreeNode q) {if((p null&&q!null) || (p ! null && q null) || (p!null&&q!null&&p.val ! q.val)){return f…...

Open3D 点云均值滤波

目录 一、算法原理1、均值滤波2、参考文献二、代码实现三、结果展示本文由CSDN点云侠原创,原文链接。如果你不是在点云侠的博客中看到该文章,那么此处便是不要脸的爬虫。 一、算法原理 1、均值滤波 对待处理的当前采样点,选择一个模板,该模板由其邻近的若干个数据点组成,…...

C语言指针入门详解

一、指针简介 指针(Pointer)是C语言的一个重要知识点&#xff0c;其使用灵活、功能强大&#xff0c;是C语言的灵魂指针与底层硬件联系紧密&#xff0c;使用指针可操作数据的地址&#xff0c;实现数据的间接访问指针就是地址&#xff0c;通过访问此地址来获取该地址存储的数据 …...

软件工程(十四) 设计模式之结构型模式(二)

1、组合模式 简要说明 将对象组合成树形结构以表示“整体-部分”的层次结构,使得用户对单个对象和组合对象的使用具有一致性。 速记关键字 树形目录结构 类图如下 由类图其实可以看出,组合模式就是将具有父子关系的结构,组装形成一棵树,并且根据规范,树干节点和叶子节…...

不解压的方式直接更新jar包内部的内容

前言 如果线上直接更新一个class&#xff0c;可以不用解压&#xff0c;直接利用jar命令直接更新jar报的资源和内容 更新jar包内容文件 Jar 工具提供了一个 u 选项&#xff0c;你可以通过修改其清单或添加文件来更新现有 JAR 文件的内容。 添加文件的基本命令具有以下格式&am…...

软件工程(八) UML之类图与对象图

1、类图与对象图 1.1、类图与对象图的概念 类图(class diagram)描述一组类、接口、协作和它们之间的关系 对象图(object diagram)描述一组对象及它们之间的关系、对象图描述了在类图中所建立的事物实例的静态快照。 1.2、类图与对象图的区别 类图和对象图基本上是一样…...

【Unity3D赛车游戏】【五】Unity中汽车加速效果是如何优化的?

&#x1f468;‍&#x1f4bb;个人主页&#xff1a;元宇宙-秩沅 &#x1f468;‍&#x1f4bb; hallo 欢迎 点赞&#x1f44d; 收藏⭐ 留言&#x1f4dd; 加关注✅! &#x1f468;‍&#x1f4bb; 本文由 秩沅 原创 &#x1f468;‍&#x1f4bb; 收录于专栏&#xff1a;Uni…...

龙智案例:某大型零售企业如何打造高速、现代化的ITSM体系

在2023 DevOps国际峰会北京站的现场&#xff0c;我们对话了龙智咨询顾问胡若愚&#xff0c;他为我们奖助了一位零售业的大型客户是如何在数字化浪潮中&#xff0c;凭借龙智提供的Jira Service Management产品及服务&#xff0c;打造现代化ITSM平台&#xff0c;提升客户满意度。…...

jdk 03.stream

01.集合处理数据的弊端 当我们在需要对集合中的元素进行操作的时候&#xff0c;除了必需的添加&#xff0c;删除&#xff0c;获取外&#xff0c;最典型的操作就是集合遍历 package com.bobo.jdk.stream; import java.util.ArrayList; import java.util.Arrays; import java.ut…...

“华为杯”研究生数学建模竞赛2018年-【华为杯】C题:对恐怖袭击事件记录数据的量化分析

目录 摘 要: 一、 问题背景与重述 1.1 问题背景 1.2 问题重述 二、 问题分析...

java8的reduce方法

在 Java 8 中&#xff0c;reduce 是一个流操作方法&#xff0c;用于将流中的元素按照指定的操作进行归约&#xff08;reduce&#xff09;操作&#xff0c;最终得到一个结果。 reduce 方法有三种重载形式&#xff1a; T reduce(T identity, BinaryOperator<T> accumulato…...

Mac发现有的软件不能上网的破解之法

1、Mac上打开终端 terminal &#xff0c;获取 root 权限。 sudo -i 2、编辑 hosts 文件 vim /private/etc/hosts 3、找到被禁止软件的数据请求域名&#xff0c;然后删除相关行&#xff0c;快捷件dd&#xff0c;然后:wq保存退出 比如百度 127.0.0.1 pan.baidu.com ##sec 印…...

定时检测接口是否正常飞书告警脚本

第一版 支持多个接口地址,循环检测,定时每分钟执行一次脚本 告警效果 脚本 飞书机器人创建忽略跳过,各大协作平台大同小异拿出机器人hook地址 #!/bin/bash URL_LIST=(https://gatewaxxxxxxxxxxxxxxxxxx https://sandbox-gatexxxxxxxxxxxxxxxxxx)for URL in ${URL_LIST[*...

Qwen3-ForcedAligner-0.6B低延迟实时处理能力展示

Qwen3-ForcedAligner-0.6B低延迟实时处理能力展示 如果你正在寻找一个能快速、精准地为语音和文字“打上时间标签”的工具&#xff0c;那么Qwen3-ForcedAligner-0.6B绝对值得你花几分钟了解一下。想象一下&#xff0c;一段长达5分钟的演讲音频&#xff0c;你需要精确知道每个词…...

VideoAgentTrek-ScreenFilter低光照与高对比度场景处理效果突破

VideoAgentTrek-ScreenFilter低光照与高对比度场景处理效果突破 不知道你有没有过这样的经历&#xff1a;在昏暗的房间里看手机&#xff0c;屏幕上的内容因为反光变得一片模糊&#xff1b;或者看一个明暗对比特别强烈的视频&#xff0c;亮的地方刺眼&#xff0c;暗的地方又黑得…...

CVAT:让计算机视觉标注效率提升80%的开源数据引擎

CVAT&#xff1a;让计算机视觉标注效率提升80%的开源数据引擎 【免费下载链接】cvat Annotate better with CVAT, the industry-leading data engine for machine learning. Used and trusted by teams at any scale, for data of any scale. 项目地址: https://gitcode.com/…...

微信小程序登录总失败?从‘一次性code’到‘缓存清理’,这份避坑指南帮你全搞定

微信小程序登录全链路排雷手册&#xff1a;从原理到实战的深度解析 登录功能作为微信小程序用户体系的入口&#xff0c;其稳定性直接影响用户体验和业务转化。但在实际开发中&#xff0c;开发者常会遇到各种"诡异"问题——明明按照文档实现了流程&#xff0c;却频繁出…...

复盘与导出工具V9.0新功能实测:竞价选股与Excel导出最强风口全攻略

复盘与导出工具V9.0深度实战&#xff1a;解锁竞价选股与Excel导出的高阶玩法 对于股票分析爱好者来说&#xff0c;工具的每一次重大更新都意味着效率的跃升。V9.0版本带来的竞价选股条件设置和最强风口Excel导出两大功能&#xff0c;正在重新定义短线交易的数据处理方式。本文将…...

从手机照片同步到数据去重:用C++ STL set/map搞定‘两个数组交集’背后的真实业务逻辑

从手机照片同步到数据去重&#xff1a;用C STL set/map搞定‘两个数组交集’背后的真实业务逻辑 每次换新手机时&#xff0c;最头疼的莫过于照片和联系人的迁移——那些重复的截图、相似的风景照、多年前的证件照&#xff0c;究竟该如何高效筛选&#xff1f;这背后隐藏的正是计…...

Ollama一键部署translategemma-27b-it:图文翻译模型在国产统信UOS验证通过

Ollama一键部署translategemma-27b-it&#xff1a;图文翻译模型在国产统信UOS验证通过 1. 开篇&#xff1a;当翻译遇上图文对话 想象一下&#xff0c;你拿到一份产品说明书&#xff0c;上面有中文文字和复杂的图表。你需要把它翻译成英文&#xff0c;但传统的翻译工具只能处理…...

SpringBoot+Mybatis多数据源实战:TDengine与MySQL混搭的物联网数据存储方案

SpringBootMybatis多数据源实战&#xff1a;TDengine与MySQL混搭的物联网数据存储方案 在物联网系统开发中&#xff0c;数据存储架构的设计往往面临一个核心矛盾&#xff1a;海量设备时序数据的高效存储与业务数据的复杂关系处理如何平衡&#xff1f;传统单一数据库方案要么在时…...

SDXL 1.0绘图工坊环境部署:Ubuntu+conda+4090驱动适配完整流程

SDXL 1.0绘图工坊环境部署&#xff1a;Ubuntuconda4090驱动适配完整流程 1. 环境准备与系统要求 在开始部署SDXL 1.0绘图工坊之前&#xff0c;需要确保你的硬件和软件环境满足以下要求&#xff1a; 硬件要求&#xff1a; 显卡&#xff1a;NVIDIA RTX 4090&#xff08;24GB显…...

OpenClaw多模态扩展:结合百川2-13B-4bits与OCR的图像信息处理流程

OpenClaw多模态扩展&#xff1a;结合百川2-13B-4bits与OCR的图像信息处理流程 1. 为什么需要多模态能力扩展&#xff1f; 上周我需要整理一批技术文档的截图&#xff0c;包含代码片段、错误日志和流程图。手动转录不仅耗时&#xff0c;还容易出错。这让我开始思考&#xff1a…...