首先去阿里云申请域名,并实名认证域名,不然没法解析域名到IPhtml
租用国内服务器须要备案,上传身份证,购买阿里云幕布,拍照,审核,特别麻烦,租用国外的虽然不用备案但价格贵,速度慢,若能够用本身的笔记本作服务器的话既不须要备案还划算,但因为IP不是固定的,每次手动修改IP太麻烦,杭州电信大概是每隔4天凌晨3点自动更换一次IP,该工程能够每隔一段时间自动获取公网IP,若发现IP改变则调用阿里云接口修改域名IP,若你的笔记本链接的是路由器,则只须要去路由器设置界面开启DMZ,ip填写你的笔记本的内网ip,或者开启端口转发,ip填写你的笔记本的内网ip,内网端口填写你笔记本中服务器监听的端口,若使用https的话外网端口填写443,固然也能够填写除80,8080之外的端口。java
AutoBandDomain.DOMAIN
和AutoBandDomain.SUB_DOMAIN
为你的域名BandDomain.ID和BandDomain.SECRET
为你的阿里云Access Key ID
和Access Key Secret
(如何获取Access Key ID和Access Key Secret见下文)run.sh
,windows用户双击 run_wind.bat
便可commons-codec-1.10.jar
和gson-2.8.1.jar
依赖后运行AutoBandDomain
HttpRequest
中HttpURLConnection
替换成其余http库,好比okhttp
按照上述操做后你的域名就解析到你的笔记本的公网IP了,若你的笔记本没有直接链接公网,而是链接了路由器的话,能够在路由器管理页面开启DMZ或者端口转发,这样即便你在内网,外网中的用户经过域名也能访问到你了,附 极路由设置方式,其余路由器略有不一样。linux
192.168.199.249
,个人笔记本中的tomcat服务器监听的端口是
8443
,只要外网用户 访问
http://你的域名:443
就能够请求到你的tomcat服务器了,另外我还设置了1024端口映射到路由器的80端口,这样我就能够远程登陆个人路由器了。
因为运营商封锁了80和8080端口,因此外网用户无法经过http默认的80端口进行访问,因此只能经过非80,8080端口进行访问。若必定要经过默认端口的可能够参考下文android
https默认采用443端口,这个端口没有被运营商封锁,只要咱们的服务器开启https的话外网用户就能够经过 https://你的域名
进行访问了,开启https须要SSL证书,你能够本身生成SSL证书,但浏览器会提示SSL证书有问题,全部咱们能够去第三方申请免费的SSL证书,好比 腾讯云 或者 阿里云等等。git
以腾讯云为例,首先进入 console.qcloud.com/ssl ,而后点击申请证书 github
能够经过 Nginx 文件夹内证书文件和私钥文件生成jks格式证书 转换工具:www.trustasia.com/tools/cert-… 使用工具时注意填写 密钥库密码 ,安装证书时配置文件中须要填写。web
以 tomcat7为例 配置SSL链接器,将下载的 你的域名.jks
文件存放到tomcat下的conf目录下,而后配置同目录下的server.xml文件:windows
<Connector port="443" protocol="HTTP/1.1" SSLEnabled="true" maxThreads="150" scheme="https" secure="true" keystoreFile="conf\你的域名.jks" keystorePass="申请证书时的私钥" clientAuth="false" sslProtocol="TLS" />
复制代码
http自动跳转https的安全配置浏览器
到conf目录下的web.xml。在</welcome-file-list>
后面,</web-app>
,也就是倒数第二段里,加上这样一段tomcat
<web-resource-collection >
<web-resource-name >SSL</web-resource-name>
<url-pattern>/*</url-pattern>
</web-resource-collection>
<user-data-constraint>
<transport-guarantee>CONFIDENTIAL</transport-guarantee>
</user-data-constraint>
复制代码
这步目的是让非ssl的connector跳转到ssl的connector去。因此还须要前往server.xml进行配置:
<Connector port="8080" protocol="HTTP/1.1"
connectionTimeout="20000"
redirectPort="443" />
复制代码
redirectPort改为ssl的connector的端口443,重启后便会生效。
配置完后重启tomcat便可生效,若没法经过https访问可查看 tomcat/log/catalina.yyyy-mm-dd.log
日志文件
若使用Apache、IIS、Nginx 服务器能够参考 www.qcloud.com/document/pr…
登陆阿里云,点击控制台,鼠标移动到用户名上会弹出以下窗口,点击 accesskeys 便可看到Access Key ID和Access Key Secret