家庭宽带在有ipv6公网环境下,配置本地tomcat服务器+域名+ssl+ddns,实现ipv6建站、搭建简易的文件服务器、搭建webdav服务器等功能

必备条件:

        宽带运营商提供了ipv6

        光猫拨号改为路由器拨号且路由器开启了ipv6

        运营商未屏蔽ipv6的80/443端口(如果屏蔽了常用端口,那么可以尝试高一点的端口号。端口号范围:1 - 65535)

目录

一、阿里云申请域名&ssl证书

1、申请域名

2、申请ssl证书

二、配置tomcat服务器

1、下载jdk&tomcat

2、配置jdk&tomcat

3、配置ssl证书

4、开启防火墙端口

5、建站

6、创建简易的文件服务器

7、创建webdav服务器

8、创建ddns实现自动同步域名解析

9、将tomcat添加到系统服务


一、阿里云申请域名&ssl证书

1、申请域名

官网:阿里云企航_万网域名_工商财税_知识产权_资质备案_智能设计_网站建设-阿里云

域名价格:大多数第一年低于10元,续费比较贵。若不在意域名价值,建议每年换新域名。

2、申请ssl证书

官网:证书服务_SSL数字证书_HTTPS加密_服务器证书_CA认证-阿里云

价格:一年之内可申请20个免费的ssl证书,有效期一年。似乎到期后,每年都继续送免费额度。

成功时间:系统自动批准,10分钟之内就能申请成功。成功后,下载ssl证书,类型选择JKS。

二、配置tomcat服务器

1、下载jdk&tomcat

oracle官网下载jdk:Java Downloads | Oracle

选择一个jdk版本,选择windows,且下载zip包。当然你也可以下载一键安装包,那么就可以跳过后面配置环境变量步骤。

我用的版本为jdk17 windows11 zip包。

apache官网下载tomcat:Apache Tomcat® - Apache Tomcat 11 Software Downloads

拉到页面最后,我选择版本是tomcat11 :64-bit Windows zip (pgp, sha512)

2、配置jdk&tomcat

首先,将下载的jdk和tomcat解压并放到固定路径,我放置的路径为:

C:\Software\jdk-17_windows-x64_bin\jdk-17.0.6

C:\Software\apache-tomcat-11.0.0-M4-windows-x64\apache-tomcat-11.0.0-M4

Windows11可以直接win+s键搜索:环境变量。windows10我记得没错的话应该是在 右击桌面图标"此电脑" - 属性 -环境变量

系统变量 - 新建 4个变量

①变量名:JAVA_HOME

   变量值:C:\Software\jdk-17_windows-x64_bin\jdk-17.0.6

注:C:\Software\jdk-17_windows-x64_bin\jdk-17.0.6 路径下的必须有bin文件夹,否则路径不对

②变量名:TOMCAT_HOME

   变量值:C:\Software\apache-tomcat-11.0.0-M4-windows-x64\apache-tomcat-11.0.0-M4

③变量名:CATALINA_HOME

   变量值:C:\Software\apache-tomcat-11.0.0-M4-windows-x64\apache-tomcat-11.0.0-M4

④变量名:CATALINA_BASE

   变量值:C:\Software\apache-tomcat-11.0.0-M4-windows-x64\apache-tomcat-11.0.0-M4

同理 apache-tomcat-11.0.0-M4 下必须有bin文件夹,否则路径不对

找到 系统变量 下的path,双击打开后,添加:

%JAVA_HOME%\bin

%TOMCAT_HOME%\bin

%CATALINA_BASE%\bin

%CATALINA_HOME%\bin

尝试开启tomcat:

        在C:\Software\apache-tomcat-11.0.0-M4-windows-x64\apache-tomcat-11.0.0-M4\bin 找到startup.bat,并双击。如果cmd窗口没有闪退,且一直在窗口前,则成功。否则,请检查环境变量配置路径。

        在浏览器输入http://127.0.01:8080,出现tomcat首页,则成功。

3、配置ssl证书

将申请的ssl证书放在tomcat目录中的conf文件夹下

打开该conf目录下的server.xml,找到Connector标签,

        将port端口改为80

        在redirectPort前添加

address="www.abc.com"  
<!-- www.abc.com改为你的域名-->

        在Connector标签后面添加

    <Connector port="443" protocol="org.apache.coyote.http11.Http11NioProtocol"maxThreads="150" SSLEnabled="true" secure="true" ><SSLHostConfig><Certificate certificateKeystoreFile="conf/1234_www.abc.com.jks" certificateKeystorePassword="abcdef" type="RSA" /><!-- conf/1234_www.abc.com.jks 改为证书路径 --><!-- abcdef 改为随证书文件夹下的密码 --></SSLHostConfig></Connector>

保存重启tomcat。

4、开启防火墙端口

控制面板 - 系统和安全  - Windows Defender防火墙 - 高级设置 -入站规则 - 新建规则

自定义 - (下一步) - 所有程序 - (下一步) - 协议类型:TCP;本地端口:80 - (一直点到最后) - 起个名然后确认

同方法,新建80,443端口的tcp和udp协议。

测试:用手机等除了电脑之外的其他设备访问你的域名,如果成功显示你部署的tomcat首页,则成功。否则排查tomcat日志、windows防火墙、在线扫描端口判断运营商是否屏蔽的80&443端口。

Tips:tomcat日志可能会出现中文乱码,需要修改tomcat文件夹下的conf / logging.properties文件

         将java.util.logging.ConsoleHandler.encoding = utf-8 修改为          

         java.util.logging.ConsoleHandler.encoding = GBK

5、建站

        直接部署在tomcat目录下的webapps\ROOT中部署即可,当然也可以创建虚拟路径:

创建虚拟路径:

方法一:

        手动修改conf\server.xml映射虚拟路径:

server.xml文件中,在末尾</Host>标签前插入

<Context path="【访问路径】" docBase="【实际路径】" debug="0" reloadable="true" />

【访问路径】修改为:

        / 或者 留空,表示输入ip或域名访问后,url无需加路径,直接【实际路径】文件夹里的目录

        PS:若无<Context>标签 或 标签中的【访问路径】留空,则自动访问webapps/ROOT文件夹里的目录。

        /abc ,表示域名后要添加/abc,来访问【实际路径】文件夹里的目录。

【实际路径】修改为:

        /,表示访问webapps文件夹里的目录(与ROOT目录并列);

        /abc,表示访问webpps/abc文件夹里的目录;

        D:/abc,表示访问D盘(可以为非tomcat安装盘)中abc文件夹里的目录。

        PS:tomcat不可访问硬盘分区的根目录,如将【实际路径】改为D:/或者D:后,tomcat实际访问不到任何目录

方法二:

        实际开发时,tomcat安装目录与多个应用目录应当分开放于不同文件夹/硬盘。

(CATALINA_HOME:服务器安装目录,CATALINA_BASE:一个web应用对应一个catalina_base)

        上提到【实际路径】未指定盘符时,默认访问tomcat安装目录webapps里的目录。

实际上可以修改:

        server.xml文件中将:

        <Host name="localhost"  appBase="webapps" unpackWARs="true" autoDeploy="true">

修改为与webapps同级文件夹或者其他硬盘分区中的文件夹。

然后在</host>前添加:<Context path="" docBase="" debug="0" reloadable="true"/>(如果没有添加,则访问不到404错误)。

        手动添加xml文件,创建虚拟路径。

        根据上面补充说明,可以在CATALINA_BASE/conf/[enginename]/[hostname](默认为tomcat/conf/Catalina/localhost)下新建【文件名1】.xml,添加代码:

<Context docBase=“【实际路径】” /> PS:实际路径处似乎只能填写路径,如果填写路径下的文件,且将url中的文件省略,会报错404

        结果:http://域名/【文件名1】,即可访问【实际路径】。

         每次修改XML文件都不要忘了重启Tomcat使之生效。

        如果修改后,tomcat闪退,则说明修改后的xml文件有问题,请逐一排查。

6、创建简易的文件服务器

找到tomcat - conf- - web.xml

搜索“servlet”,找到

    <servlet><servlet-name>default</servlet-name><servlet-class>org.apache.catalina.servlets.DefaultServlet</servlet-class><init-param><param-name>debug</param-name><param-value>0</param-value></init-param><init-param><param-name>listings</param-name><param-value>false</param-value></init-param><load-on-startup>1</load-on-startup></servlet>

将 <param-value>false</param-value> 改为true。

在</init-param>标签下面新增

        <init-param><param-name>readonly</param-name><param-value>true</param-value></init-param>

然后根据上一个标题《建站》创建虚拟路径,重启tomcat后用浏览器加上路径访问tomcat,

如果成功,浏览器则会显示

7、创建webdav服务器

(这是我之前的记录的笔记,我直接粘贴过来了)

第一步、新建一个新项目

①在server.xml文件中复制service整个标签,在service后面粘贴service;

②修改刚刚粘贴的service,包括(service name,端口号,Engine name,appBase);

③复制webapps,并在同目录粘贴改名为webapps02;

④为了让ip能访问项目,在connector中,添加address="[::]";

⑤保险起见,在全局打开目录访问权限(web.xml):

第二步、创建配置文件

在第一步中的webapps02中创建webdav / WEB-INF / web.xml,将下面的代码复制进去。

web.xml

<?xml version="1.0" encoding="UTF-8"?>
<web-app xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance"xmlns="http://java.sun.com/xml/ns/javaee"xsi:schemaLocation="http://java.sun.com/xml/ns/javaee http://java.sun.com/xml/ns/javaee/web-app_3_0.xsd"id="WebApp_ID" version="3.0"><display-name>webdav</display-name><welcome-file-list><welcome-file>index.html</welcome-file><welcome-file>index.htm</welcome-file><welcome-file>index.jsp</welcome-file><welcome-file>default.html</welcome-file><welcome-file>default.htm</welcome-file><welcome-file>default.jsp</welcome-file></welcome-file-list><servlet><servlet-name>webdav</servlet-name><servlet-class>org.apache.catalina.servlets.WebdavServlet</servlet-class><init-param><param-name>debug</param-name><param-value>0</param-value></init-param><init-param><param-name>listings</param-name><param-value>true</param-value></init-param><!-- Read-Write Access Settings --><init-param><param-name>readonly</param-name><param-value>false</param-value></init-param></servlet><!-- URL Mapping --><servlet-mapping><servlet-name>webdav</servlet-name><url-pattern>/*</url-pattern></servlet-mapping><security-constraint><web-resource-collection><web-resource-name>webdav</web-resource-name><!-- Detect WebDAV Methods in URL For Whole Application --><url-pattern>/*</url-pattern><http-method>GET</http-method><http-method>POST</http-method><!--<http-method>GET</http-method>  <http-method>PUT</http-method>  <http-method>HEAD</http-method>  <http-method>TRACE</http-method>  <http-method>POST</http-method>  <http-method>DELETE</http-method>  <http-method>OPTIONS</http-method> --><http-method>PROPFIND</http-method><http-method>PROPPATCH</http-method><http-method>COPY</http-method><http-method>MOVE</http-method><http-method>LOCK</http-method><http-method>UNLOCK</http-method> </web-resource-collection><!-- Restrict access by role --><auth-constraint><role-name>*</role-name></auth-constraint></security-constraint><login-config><auth-method>BASIC</auth-method><realm-name>webdav</realm-name></login-config><security-role><description>WebDAV User</description><role-name>webdav</role-name></security-role>
</web-app>

PS:也可以将webdev(包含里面的WEB-INF/web.xml)创建到其他硬盘分区,方法:

打开server.xml,在该项目对应的service下,添加

<Context path=""  docBase="D:/webdav" debug="0" reloadable="true" />

以后直接访域名,即域名后无需再添加 /webdav路径,即可直接访问。

Tips:tomcat似乎有限制,可能是为了安全性,无法直接添加整块分区,只能添分区中的某个子文件夹。

第三步、创建用户

在apache-tomcat\conf\tomcat-users.xml中添加:

<role rolename="webdav"/> <user username="admin" password="admin" roles="webdav"/>

测试:可以在安卓手机上下载Solid Explorer文件管理器,新建云连接来检测是否成功。

8、创建ddns实现自动同步域名解析

        github开源项目,可以自动同步电脑的ip地址,解析域名到dns服务器。
项目地址:GitHub - jeessy2/ddns-go: 简单好用的DDNS。自动更新域名解析到公网IP(支持阿里云、腾讯云dnspod、Cloudflare、Callback、华为云、百度云、Porkbun、GoDaddy、Google Domain)

大致流程(参考官方使用说明):
        首先,将程序添加到服务中,实现自启动。

        然后,浏览器输入127.0.0.1:9876进入配置界面,通过绑定域名服务商的key来获得修改域名解析ip的权限。

        最后,实现定时自动检测本地计算机ip与域名解析的ip是否符合,并实现修改功能。

       Tips: 还可以通过webhook来自定义推送修改解析信息。

9、将tomcat添加到系统服务

        将tomcat添加到系统服务可以实现自启、减少windows的cmd窗口,无感启动。

方法:

        win + s 搜索cmd并以管理员身份运行,然后cd命令进入tomcat的bin文件夹,执行

        安装:service.bat install

        启动:net start tomcat11

        停止:net stop tomcat11

        查询状态:sc query tomcat11

        卸载:service.bat remove

        Tips:

                执行时代码使用tomcat11是因为我安装版本为11。具体可以在安装时,查看cmd打印出执行的tomat的版本信息。

                关于自启,查看杀毒管家软件是否禁止了tomcat自启。

以上教程是我自行学习以及在网上查询的教程且亲自部署过,用到的网站/工具有csdn、Github、百度、Google、Chatgpt等。感谢大佬在网上分享的教程,且我也记录与总结自己的流程,作为自己笔记以及给爱捣鼓的朋友作参考。如有问题欢迎指出与提问。如帮到了你,希望能点个赞。

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

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

相关文章

开源游戏区块链项目分享:Unity开发的独立区块链

Arouse Blockchain [Unity独立区块链] ❗️千万别被误导&#xff0c;上图内容虽然都在项目中可寻&#xff0c;但与目前区块链的业务代码关联不大&#xff0c;仅供宣传作用(总得放些图看着好看)。之所以有以上内容是项目有个目标功能是希望每个用户在区块链上都有一个独一无二的…

和ChatGPT对比,文心一言的表现已经是中国之光了

网络上各种测评满天飞&#xff0c;这里就不展开说了&#xff0c;针对“chatgpt”这项技术的难点&#xff0c;是十分巨大的。当你对文心一言以及其他国产AI软件存在不满的时候&#xff0c;你可以简单对着chatgpt或者文心一言搜索&#xff01; ChatGPT技术难点 通俗来讲难度&…

【24fall】计算机免考留学申请,背景提升方向

文章目录 &#x1f4a1;1、学业绩点GPA1.1 部分学校绩点要求&#xff08;23fall&#xff09;1.2 关于打备注说明的情况1.3 关于换个算法提高绩点 &#x1f4a1;2、英语语言成绩2.0 部分学校留学费用清单&#xff08;23fall&#xff09;2.1 部分学校语言成绩要求&#xff08;23f…

Flask框架基础1

最基本框架代码 from flask import Flask实现Flask基本程序 步骤&#xff1a;1 导入Flask类2 创建Flask类的实例对象3 定义路由和视图函数4 启动服务器 appFlask(__name__)app.route("/") def hello():return hello worldif __name____main__:app.run() 运行结果&a…

独立app开发和运行(使用篇)

1.概述 bcos支持动态加载APP任务到内存中执行,用户应用程序只要调用bcos提供的系统调用就可以实现自己的APP功能。当然,APP的开发需要遵循一些bcos自己的规则。 2.创建工程 keil按照你熟悉的方式创建一个空的工程,按照下面配置: C/C++页面,按照红框中的字符串配置,主要…

开发一个看番app[樱花动漫移动端app]

使用react-native开发&#xff0c;功能&#xff1a; 支持看番支持历史记录浏览支持追番 项目地址: https://github.com/HGGshiwo/Sakura 界面&#xff1a; 首页分类用户界面播放界面历史记录搜索界面全部动漫追番

科研人体验gpt

https://greengpt.app/ 安利一下这个非官方网站&#xff0c;内地可以免费访问使用GPT。免费并且不需要翻Q。 本篇主要介绍第一次体验GPT的感受&#xff0c;首要想法是做markdown&#xff0c;便于之后复习查阅。 首先&#xff0c;查阅了相关资料&#xff0c;官方渠道需要注册。找…

硬编码支持情况(一)

硬编码支持情况&#xff08;一&#xff09; 图片信息原文链接&#xff1a;http://trac.ffmpeg.org/wiki/HWAccelIntro 截个图&#xff1a; 注&#xff1a; &#xff08;一&#xff09;&#xff1a;Intel 平台 1&#xff1a;Intel 平台的Quick Sync Video(qsv)是对于音视频编…

宏景eHr 手机App应用二次开发(图文)

应用宏景eHr软件&#xff0c;其中将hr与通达OA进行了组织结构和人员信息的数据同步开发。 在后续的使用过程中&#xff0c;需要使用到手机App&#xff0c;但是宏景的app是完全按照应用的用户数来计费&#xff0c;这样算下来如果使用员工自助的话会是一笔不小的费用。 通过对系…

技巧|你的微信|QQ授权了多少网站与APP?查完吓一跳啊!

编辑&#xff5c;排版&#xff5c; 宅哥技术转载请联系商务合作给你开白名单来源&#xff1a;宅哥技术&#xff08;zg_jishu&#xff09; ---------♥--------- 前言 相信很多朋友都有在用QQ或者微信快捷登录某些应用或网站&#xff0c;每次的授权我们都没在意&#xff0c;但是…

[EF]事务管理+批量删除

using (var transaction context.Database.BeginTransaction()){try{ //删除合同主表信息FAContract fa GetFAContract();context.Entry(fa).State EntityState.Deleted;//删除合同子表var query (from fad in context.FAContractDetail where fad.FACID fa.ID …

python将图片base流保存为图片文件

python将图片base流保存为图片文件。 #!/usr/bin/python # -*- coding: UTF-8 -*- """ author: Roc-xb desc: 将图片base流保存为图片文件 """ import base64if __name__ __main__:source_img "data:image/jpg;base64,/9j/4AAQSkZJRgABAQ…

Flutter AppBar 简述

AppBar AppBar 显示在app的顶部&#xff0c;或者说 顶端栏&#xff0c;对应着 Android 的 Toolbar。如下图&#xff1a; 一个AppBar 的基本组成 &#xff11; 只有标题 无其他按钮 Widget buildDefaultBar(String title) {return appBar AppBar(//标题居中显示centerTitle: …

什么是JIT

1、动态编译(dynamic compilation)指的是“在运行时进行编译”;与之相对的是事前编译(ahead-of-time compilation,简称AOT),也叫静态编译(static compilation)。 2、JIT编译(just-in-time compilation)狭义来说是当某段代码即将第一次被执行时进行编译,因而叫“即…

搜索功能全流程解析

在产品中一般会分布着大大小小的搜索&#xff0c;以便提升用户的信息获取效率和信息消费的能力。本文作者全流程角度&#xff0c;对搜索功能进行了讲解&#xff0c;并从搜索流程中寻找提升体验的触点&#xff0c;一起来看一下吧。 在产品中因多功能诉求和业务复杂性等因素&…

Java面试题复习(1)

目录 1.mysql使用innodb引擎&#xff0c;请简述mysql索引的最左前缀&#xff0c;如何优化order by语句 2.在JVM内存模型中&#xff0c;为什么要区分新生去和老年代&#xff0c;对于新生代为什么要区分eden区和survial区&#xff1f; 3.常见的远程调用有几种 4.对于外部衔接的…

微信闪退Bug罪魁祸首竟是二维码引擎,附源代码分析

建议别尝试&#xff1a;转发这个二维码到群里&#xff0c;3秒后你会回来骂我&#xff08;抖m求骂&#xff09; 近日&#xff0c;网传微信识别上方二维码就会出现闪退BUG&#xff0c;小编也忍不住尝试了一下&#xff0c;果然&#xff0c;一识别该二维码微信立马就出现了闪退的现…

浅谈大模型时代的后台技术发展

1、前言 随着互联网的快速发展&#xff0c;大数据、人工智能、大模型等技术的兴起&#xff0c;大模型时代已经到来&#xff0c;也让后台工程面临着新的挑战和机遇&#xff1a; 大模型时代下&#xff0c;AI 对后台的计算能力和存储能力提出了更强要求&#xff0c;以满足更高的性…

陆奇最新演讲全文实录、完整PPT和视频:大模型带来的新范式

本文约34000字&#xff0c;建议阅读20分钟 陆奇博士以“新范式”为核心&#xff0c;分享了他对当前技术变革的观点。 面临一场快速到来的技术变革&#xff0c;比较有效的方法是去剖析&#xff1a;事物的内在结构&#xff0c;它的发展体系&#xff1b;什么是稳定不变的&#xff…

GPT上车只为人车交互?车企还在憋大招

ChatGPT改造汽车的序幕已经拉开&#xff0c;奔驰率先出手。 不久前&#xff0c;梅赛德斯-奔驰将ChatGPT集成到了车机上&#xff0c;开启了为期三个月的测试&#xff0c;结果显示&#xff0c;它的语音助手不仅可以完成简单地指令&#xff0c;还能进行连续多轮对话&#xff0c;理…