必备条件:
宽带运营商提供了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映射虚拟路径:
<Context path="【访问路径】" docBase="【实际路径】" debug="0" reloadable="true" />
/ 或者 留空,表示输入ip或域名访问后,url无需加路径,直接【实际路径】文件夹里的目录
PS:若无<Context>标签 或 标签中的【访问路径】留空,则自动访问webapps/ROOT文件夹里的目录。
/abc ,表示域名后要添加/abc,来访问【实际路径】文件夹里的目录。
/,表示访问webapps文件夹里的目录(与ROOT目录并列);
D:/abc,表示访问D盘(可以为非tomcat安装盘)中abc文件夹里的目录。
PS:tomcat不可访问硬盘分区的根目录,如将【实际路径】改为D:/或者D:后,tomcat实际访问不到任何目录
方法二:
实际开发时,tomcat安装目录与多个应用目录应当分开放于不同文件夹/硬盘。
(CATALINA_HOME:服务器安装目录,CATALINA_BASE:一个web应用对应一个catalina_base)
上提到【实际路径】未指定盘符时,默认访问tomcat安装目录webapps里的目录。
<Host name="localhost" appBase="webapps" unpackWARs="true" autoDeploy="true">
修改为与webapps同级文件夹或者其他硬盘分区中的文件夹。
然后在</host>前添加:<Context path="" docBase="" debug="0" reloadable="true"/>(如果没有添加,则访问不到404错误)。
根据上面补充说明,可以在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等。感谢大佬在网上分享的教程,且我也记录与总结自己的流程,作为自己笔记以及给爱捣鼓的朋友作参考。如有问题欢迎指出与提问。如帮到了你,希望能点个赞。