首先去阿里雲申請域名,並實名認證域名,不然沒法解析域名到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