家庭宽带在有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等。感谢大佬在网上分享的教程,且我也记录与总结自己的流程,作为自己笔记以及给爱捣鼓的朋友作参考。如有问题欢迎指出与提问。如帮到了你,希望能点个赞。

猜你喜欢

转载自blog.csdn.net/qq_40099123/article/details/130592401
今日推荐