如何配置Tomcat服务环境并实现无公网ip访问本地站点

文章目录

  • 前言
  • 1.本地Tomcat网页搭建
    • 1.1 Tomcat安装
    • 1.2 配置环境变量
    • 1.3 环境配置
    • 1.4 Tomcat运行测试
    • 1.5 Cpolar安装和注册
  • 2.本地网页发布
    • 2.1.Cpolar云端设置
    • 2.2 Cpolar本地设置
  • 3.公网访问测试
  • 4.结语

前言

Tomcat作为一个轻量级的服务器,不仅名字很有趣(让人想起童年),也拥有强大功能,由于其可以实现JavaWeb程序的装载,就成为配置JSP和Java系统必备的环境软件,也是开发调试JSP程序的首选。Tomcat运行稳定且开源免费,加上apache和Sun的加持即免费和开源的特性,使其广泛应用在中小型系统及并发访问用户较少的场景中。但想要让Tomcat网页能在公共互联网环境下被访问到,就需要cpolar内网穿透的协助。现在。笔者就为大家介绍,如何使用cpolar内网穿透,将Tomcat网页发布到公共互联网上。

1.本地Tomcat网页搭建

Tomcat的优势很多,为节约大家的时间,笔者就不在此冗述,直接进入Tomcat的安装设置。Tomcat作为开源免费软件,可以在其官网上找到下载(https://tomcat.apache.org)。笔者使用的操作系统为Windows,JDK版本为17。

在Tomcat官网,我们找到最新版本的下载页面,点击对应操作系统版本下载即可。

20230323091801

1.1 Tomcat安装

当所需版本的Tomcat程序文件下载完成后,就可以进行安装,首先将下载的压缩文件解压。但暂时不对其进行操作。

20230323091802

1.2 配置环境变量

下载完成后,先不着急对Tomcat进行操作,而是要对环境变量进行配置,具体为右键我的电脑点击属性,在打开的系统页面,选择高级系统设置,点击环境变量按钮进入环境变量设置。

20230323091803

20230323091804

20230323091805

2023032309180601

环境变量页面,新建一个CATALINA_HOME系统变量,做以下设置:

  • 变量名:CATALINA_HOME
  • 变量值:E:\测试软件\apache-tomcat-10.1.7【其中变量值是tomcat的解压位置,可以点击“变量值”栏位下方的“浏览目录”按钮选择路径。】

变量名和变量值设置完成后,点击确认保存。

2023032309180701

接下来选择已经存在的Path条目,点击编辑按钮,在弹出的编辑环境变量页面点击右侧的新建,将以下命令加入指令列表中,再点击确认按钮保存所做的更改。
添加的变量值为:

  • %CATALINA_HOME%\lib
  • %CATALINA_HOME%\lib\servlet-api.jar
  • %CATALINA_HOME%\lib\jsp-api.jar

2023032309180801

20230323091809

到这里,对环境变量的设置就完成了。下一步就是对tomcat进行设置

1.3 环境配置

完成环境变量设置后,我们需要对tomcat的conf文件夹下的user.xml文件进行修改,添加一个可运行的用户。

依据tomcat的解压位置,在其中找到conf文件夹,打开该文件夹,找到tomcat-user.xml文件。

20230323091810

20230323091811

找到这个文件后双击打开,并在文件最后一行添加如下代码:

<role rolename="manager-gui"/> 
<role rolename="admin-gui"/>  
<user username="admin" password="admin" roles="admin-gui"/>
<user username="tomcat" password="admin" roles="manager-gui"/>

20230323091812

代码加入后,保存并退出即可。

1.4 Tomcat运行测试

完成环境变量设置并添加了tomcat用户后,就可以打开tomcat目录下的bin文件夹,双击startup启动tomcat。

20230323091813

启动tomcat后,我们能看到tomcat通过8080端口输出,因此只要在本地电脑浏览器地址栏中,输入localhost:8080,就能打开tomcat的主页。

20230323091814

此时的tomcat还是原始状态,至于如何制作一个看起来不错的网页,就不是这篇文章的主要目的了。接下来我们要想办法为tomcat网页创建一条能够穿透内网的数据隧道,使其能被公共互联网的用户访问到。

1.5 Cpolar安装和注册

相较于tomcat的复杂设置,[cpolar内网穿透](cpolar - 安全的内网穿透工具)的安装和使用就明显简单的多,只要登录cpolar的官网([https://www.cpolar.com/]),在主页上方找到下载按钮,并在cpolar的下载页面找到对应版本的软件下载(笔者使用的是Windows操作系统,因此选择Windows版本下载)。

20230323091815

20230323091816

Cpolar安装程序下载完成,将其解压到本地电脑,双击解压后的.msi文件,接着一路下一步就能完成安装。当然,安装期间还可以选择cpolar的安装文件夹,这也是常规操作了。

20230323091817

20230323091818

由于cpolar会为每个用户创建独立的数据隧道,并辅以用户密码和token码保证数据安全,因此我们在使用cpolar之前,需要进行用户注册。注册过程也非常简单,只要在cpolar主页右上角点击用户注册,在注册页面填入必要信息,就能完成注册。

20230323091819

20230323091820

2.本地网页发布

到这里,我们已经用tomcat创建了一个网页,并能在本地地址上访问到,提供内网穿透数据隧道的cpolar也已经安装注册。接下来,我们就可以使用cpolar创建数据隧道,将本地的tomcat发布到公共互联网上。

由于cpolar免费版的数据隧道每24小时重置一次。笔者并不想每天进行重连tomcat网页设置,因此将cpolar升级至vip版,以便能获得能长期稳定存在的内网穿透数据隧道。

2.1.Cpolar云端设置

要达到内网穿透的目的,需要先登录cpolar的官网,并在用户主页面左侧找到预留按钮,并点击进入cpolar的数据隧道预留页面。在这里生成一个公共互联网地址(也可以看做数据隧道的入口),此时这个公共互联网地址没有连接本地网页输出端口,因此也可以看做是一条空白的数据隧道。

20230323091821

在预留页面,可以看到很多种可保留的数据隧道,这里我们选择保留二级子域名栏位。当然,如果自己有域名的,也可以选择保留自定义域名栏位,但需要在域名供应商处对自有的域名进行解析,才能与cpolar配合使用。

20230323091822

保留二级子域名栏位,需要进行几项信息的简单设置:

  • 地区:服务器所在区域,就近选择即可
  • 二级域名:会最终出现在生成的公共互联网地址中,作为网络地址的标识之一
  • 描述:可以看做这条数据隧道的描述,能够与其他隧道区分开即可

完成这几项设置后,就可以点击右侧的保留按钮,将这条数据隧道保留下来。

20230323091823

20230323091824

当然,如果这条数据隧道不打算再使用,还可以点击右侧的x将其轻松删除,节约宝贵的隧道名额。

2.2 Cpolar本地设置

完成cpolar云端的设置,保留好空白数据隧道后,就能返回本地电脑的cpolar客户端,将云端生成的空白数据隧道与本地的支付宝测试页面连接起来,让我们能在公共互联网上访问到tomcat的网页页面。

在本地打开并登录cpolar客户端(可以在浏览器中输入localhost:9200直接访问,也可以在开始菜单中点击cpolar客户端的快捷方式),点击客户端主界面左侧隧道管理项下的创建隧道按钮,进入本地隧道创建页面(如果要创建没24小时重置地址的临时数据隧道,可直接在此进行设置,不必再cpolar官网设置空白数据隧道)。

在这个页面,同样需要进行几项信息设置,这些信息设置包括:

  1. 隧道名称 – 可以看做cpolar本地的隧道信息注释,只要方便我们分辨即可;
  2. 协议 – tomcat输出的是web网页,因此选择http协议;
  3. 本地地址 – 本地地址即为本地网站的输出端口号,而tomcat默认输出端口为8080,因此这里也填入8080;
  4. 域名类型 – 在这个例子中,我们已经在cpolar云端预留了二级子域名的数据隧道,因此勾选“二级子域名”(如果预留的是自定义域名,则勾选自定义域名),并在下一行“Sub Domain”栏中填入预留的二级子域名,这里我们填入“tomcattest”(如果只是创建临时数据隧道,则直接勾选“随机域名”,由cpolar客户端自行生成网络地址);
  5. 地区 – 与cpolar云端设置时一样,我们依照实际所在地就近填写;

20230323091825

完成cpolar客户端与cpolar云端的数据隧道连接后,cpolar客户端会自动跳转至隧道管理项下的隧道列表页面,我们可以在这个页面看到数据隧道的状态(是否畅通),或是控制隧道的开启、关闭或删除。如果需要对隧道的信息进行变更,也可以通过这里的“编辑”按钮进行

20230323091826

而这条数据隧道的公共互联网地址,则可以在状态——在线隧道列表页面看到。

20230323091827

3.公网访问测试

我们将cpolar内网穿透生成的公共互联网地址,粘贴到其他电脑的浏览器地址栏中,就能看到能够显示本地电脑上的tomcat网页。也就意味着我们已经成功的使用cpolar内网穿透,将本地tomcat网页发布到公共互联网上。

20230323091828

4.结语

虽然看起来这篇文章很长,但实际操作起来,也就会在tomcat设置环境变量时耽搁一会儿,而cpolar的数据隧道设置部分很快就可以操作完成。其实不止tomcat,换做其他web服务器,只要知道软件(网页)的输出端口,都可以使用cpolar创建穿透内网的数据隧道,将这个软件(网页)发布到公共互联网。

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

如若内容造成侵权/违法违规/事实不符,请联系我们进行投诉反馈qq邮箱809451989@qq.com,一经查实,立即删除!

相关文章

重塑网络安全格局:零信任安全架构的崛起与革新

零信任安全架构是一种现代安全模式&#xff0c;其设计原则是“绝不信任&#xff0c;始终验证”。它要求所有设备和用户&#xff0c;无论他们是在组织网络内部还是外部&#xff0c;都必须经过身份验证、授权和定期验证&#xff0c;才能被授予访问权限。简而言之&#xff0c;“零…

(2024,MLLM,扩散,中文数据集扩散预训练,多模态提示引导微调)UNIMO-G:通过多模态条件扩散进行统一图像生成

UNIMO-G: Unified Image Generation through Multimodal Conditional Diffusion 公和众和号&#xff1a;EDPJ&#xff08;进 Q 交流群&#xff1a;922230617 或加 VX&#xff1a;CV_EDPJ 进 V 交流群&#xff09; 目录 1. 摘要 2. 方法 3. 结果 1. 摘要 现有的文本到图像…

GraphQL的力量:简化复杂数据查询

1. GraphQL GraphQL 是一种由 Facebook 开发并于 2015 年公开发布的数据查询和操作语言&#xff0c;也是运行在服务端的运行时&#xff08;runtime&#xff09;用于处理 API 查询的一种规范。不同于传统的 REST API&#xff0c;GraphQL 允许客户端明确指定它们需要哪些数据&am…

java以SSL方式连ES

先做准备工作&#xff0c;浏览器方式访问 ES7.X url https://127.0.0.1:8027 弹出用户名和密码 输入后在浏览器得到 { “name” : “DTCNPEMS04”, “cluster_name” : “cnp-es-cluster”, “cluster_uuid” : “wb0So_FqQBOKqtXnsqofTg”, “version” : { “number” : “7.…

力扣hot100 两数相加 链表 思维

Problem: 2. 两数相加 Code ⏰ 时间复杂度: O ( n ) O(n) O(n) &#x1f30e; 空间复杂度: O ( n ) O(n) O(n) /*** Definition for singly-linked list.* public class ListNode {* int val;* ListNode next;* ListNode() {}* ListNode(int val) { this.…

prometheus监控RabbitMQ策略

一般用官方的rabbitmq_exporter采取数据即可&#xff0c;然后在普米配置。但如果rabbitmq节点的队列数超过了5000&#xff0c;往往rabbitmq_exporter就会瘫痪&#xff0c;因为rabbitmq_exporter采集的信息太多&#xff0c;尤其是那些队列的细节&#xff0c;所以队列多了&#x…

android camera的使用以及输出的图像格式

一、Camera 1.1、结合SurfaceView实现预览 1.1.1、布局 <?xml version"1.0" encoding"utf-8"?> <LinearLayout xmlns:android"http://schemas.android.com/apk/res/android"xmlns:app"http://schemas.android.com/apk/res-au…

SpringBoot项目多数据源配置与MyBatis拦截器生效问题解析

在日常项目开发中&#xff0c;由于某些原因&#xff0c;一个服务的数据源可能来自不同的库&#xff0c;比如&#xff1a; 对接提供的中间库&#xff0c;需要查询需要的数据同步数据&#xff0c;需要将一个库的数据同步到另一个库&#xff0c;做为同步工具的服务对接第三方系统…

离零售业智能体时代的真正开启还有多远?

AIGC&#xff08;生成式人工智能&#xff09;当道的2023年&#xff0c;将LLM&#xff08;大语言模型&#xff09;的各类生成式能力发挥到淋漓尽致、精彩纷呈的程度。各行各业一边在观望大语言模型不断扩宽的商业运用可能&#xff0c;一边在继续探寻能够不断拓宽企业往纵深发展的…

C/C++ - Auto Reference

目录 auto Reference auto 当使用auto​​关键字声明变量时&#xff0c;C编译器会根据变量的初始化表达式推断出变量的类型。 自动类型推断&#xff1a;auto​​关键字用于自动推断变量的类型&#xff0c;使得变量的类型可以根据初始化表达式进行推导。 初始化表达式&#x…

Redis的五种常用数据类型详解及相关面试问题

目录 Redis的五种常用数据类型详解 简述 Redis五种基本数据类型 String字符串 常用命令 应用场景 Hash散列表 常用命令 使用场景 List链表 常用命令 应用场景 Set( 集合) 常用命令 应用场景 SortedSet( 有序集合) zset 常用命令介绍 应用场景 面试题常问的数…

【驱动】TI AM437x(内核调试-07):devmem2直接读写内存、寄存器,devkmem读取内核变量

1、/dev/mem 和 /dev/kmem 1)/dev/mem: 物理内存的全镜像。可以用来访问物理内存 2)/dev/kmem: kernel看到的虚拟内存的全镜像。可以用来访问kernel的内容。kernel部分内存用户空间本不可访问。但是因为所有进程共享内核空间的页表。所以内核虚拟地址对应物理地址是确定的…

【码农新闻】 CSS 即将支持嵌套,SASS/LESS 等预处理器已无用武之地?常见的Web攻击手段,拿捏了!......

目录 【码农新闻】 CSS 即将支持嵌套&#xff0c;SASS/LESS 等预处理器已无用武之地&#xff1f;常见的Web攻击手段&#xff0c;拿捏了&#xff01;...... 流行框架与库的源码分析与最简实现CSS 即将支持嵌套&#xff0c;SASS/LESS 等预处理器已无用武之地&#xff1f;常见的W…

低代码开发平台与可组合业务:实现高效应用的完美结合

如今&#xff0c;有很多产品已经走在了模块化的道路上&#xff0c;例如一款吸尘器&#xff0c;它可以经由不同配件组合来实现不同的功能&#xff0c;来满足消费者的需求。这种类似于“一站式”的产品解决方案&#xff0c;正在成为一种可见的趋势。 今年年初&#xff0c;Gartne…

函数递归知识点与经典例题

目录 递归的概念 &#xff08;什么是递归&#xff09; 递归举例 举例1&#xff1a;求n的阶乘 举例2&#xff1a;顺序打印一个整数的每一位 递归与迭代 举例3&#xff1a;求第n个斐波那契数 递归的概念 &#xff08;什么是递归&#xff09; 递归是学习C语言函数绕不开的⼀…

第13章_泛型(集合中使用泛型,比较器中使用泛型,自定义泛型结构,泛型在继承上的体现,通配符的使用)

文章目录 第13章_泛型(Generic)本章专题与脉络1. 泛型概述1.1 生活中的例子1.2 泛型的引入 2. 使用泛型举例2.1 集合中使用泛型2.1.1 举例2.1.2 练习 2.2 比较器中使用泛型2.2.1 举例2.2.2 练习 2.3 相关使用说明 3. 自定义泛型结构3.1 泛型的基础说明3.2 自定义泛型类或泛型接…

一文学习Thrift RPC

Thrift RPC引言 Thrift RPC的特点 Thrift 是一个RPC的框架&#xff0c;和Hessian RPC有什么区别&#xff0c;最重要的区别是Thrift可以做异构系统开发。 什么是异构系统&#xff0c;服务的提供者和服务的调用者是用不同语言开发的。 为什么会当前系统会有异构系统的调用&…

Flume介绍

一、介绍 Apache Flume 是一种分布式、可靠且可用的系统&#xff0c;用于有效地收集、汇总大量日志数据&#xff0c;并将其从多个不同来源转移到集中式数据存储区。 Apache Flume 的使用不仅限于日志数据聚合。由于数据源是可定制的&#xff0c;Flume 可用于传输大量事件数据&a…

C++学习| QT快速入门

QT简单入门 QT Creater创建QT项目选择项目类型——不同项目类型的区别输入项目名字和路径选择合适的构建系统——不同构建系统的却别选择合适的类——QT基本类之间的关系Translation File选择构建套件——MinGW和MSVC的区别 简单案例&#xff1a;加法器设计界面——构建加法器界…

红帽认证有啥用?初级红帽认证证书值得考吗?

大家好&#xff0c;这里是G-LAB IT实验室。 今天我们来了解一下Linux红帽认证。 红帽认证已成为企业和个人竞相追逐的热门资质。 红帽认证认可度究竟如何?红帽RHCSA认证含金量又有多高? 下面G-LAB将为你一一解答。 1 、红帽认证认可度怎么样&#xff1f; 事实上&#xff0…