阿里云ECS官网域名映射及Tomcat配置调整,最终使用HTTPS和域名直接访问
在另一篇文章中,已經講述了怎么在ECS(Ubantu版)上安裝docker和Tomcat,并順利啟動和訪問,該篇文章重點說明如何調整Tomcat配置,與域名映射一致,并采用HTTPS訪問
一、進行ECS服務器域名備案
操作步驟:開通ECS服務器后,進入備案管理,先申請備案服務號,再到ICP備案中,按要求填寫有關信息,并填寫要備案的域名,例如:www.xxxx.net.cn
如下圖所示:
后續會按階段提交和驗證一些信息,如手機核實法人及網站負責人,上傳備案委托書、備案幕布拍照等,初審通過后,提交到信管局后,需要等17天左右
二、修改Tomcat的配置信息
進入tomcat容器
docker exec -it 容器名字或者id /bin/bash
如下圖所示,先使用?docker?ps?查看容器名字、ID,然后使用上述命令
輸入vim命令,顯示該命令未找到,先安裝
命令行:?sudo apt-get install vim,如下圖所示,先安裝,再重新進入Tomcat容器
?
重新進入還是不行,網上搜索了下,對鏡像有了更深入的理解,鏡像就是一個靜態的安裝包,而容器才是動態的可用服務,如果我們使用vim在容器中修改文件,鏡像并沒有改變,如果再次啟動容器,又是按之前的鏡像啟動,原來修改就又恢復了,這種辦法不是解決問題的根本辦法,那么參照掛載的方式,只有把容器中的鏡像配置文件,復制到Ubantu的文件夾中,然后進行修改,修改完成后,再進行配置文件掛載,則可以從根本上解決問題,以下是具體的操作步驟:
1、使用cp的命令,進行配置文件復制:
命令行:docker?ps? ? ? ? ? ?查看當前的容器,獲取 {容器ID},放置到下一個命令行中替換? ?{容器ID}
命令行:docker?cp {容器ID}:/user/local/tomcat/conf? /opt/software/tomcat-conf
兩個部分說明:
/user/local/tomcat/conf? ? ? ? 為Tomcat容器的Tomcat鏡像的位置
/opt/software/tomcat-conf? ? ? ?為新建立存放Tomcat配置文件的位置
以上兩端路徑,中間使用空行隔開
2、然后使用FileZilla?連接ECS的Ubantu服務器,可以看到在對應路徑下,已經有復制過來的配置文件
此處主要對server.xml進行修改,故把server.xml復制到本地,然后進行修改
3、server.xml的修改內容包括三個部分:
(1)8080端口設置為80端口,直接映射80端口,為了省略瀏覽器訪問時候輸入端口號:8080
(2)把webapps下的hostname改為備案的域名:www.xxxx.net.cn,并把context指向webapps下的項目,我們此處用的是website
<Context docBase="website"?path=""??reloadable="true"?> </Context>? ?
為增加的一行,其他的均為直接在原文件位置做修改
(3)配置HTTPS訪問
在上述修改基礎上,再把8443改為443,同時增加配置,非80端口的也跳轉至443
4、配置SSL證書,開啟https訪問
找到<!-- Define a SSL/TLS HTTP/1.1 Connector on port 8443?的位置,把下方的8443?注釋拿掉,端口號改為443,證書的文件及類型,按阿里云ECS官網進行配置,如下圖所示:
5、開啟http強轉https
在/conf/web.xml中,下圖所示位置,添加強制跳轉配置
配置內容:
<!--開啟http強制跳轉https訪問-->
? ? ? <login-config>
? ? ? ? ? <!-- Authorization setting for SSL -->
? ? ? ? ? <auth-method>CLIENT-CERT</auth-method>
? ? ? ? ? <realm-name>Client Cert Users-only Area</realm-name>
? ? ? </login-config>
? ? ? <security-constraint>
? ? ? ? ? <!-- Authorization setting for SSL -->
? ? ? ? ? <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>
? ? ? </security-constraint>
6、待以上server.xml和web.xml配置調整完成后,把server.xml、web.xml、pfx證書等三個文件,使用FileZilla傳輸到/opt/software/tomcat-conf? 文件夾中替換當前文件,如下圖所示:
7、把/opt/software/tomcat-conf? ?和??/user/local/tomcat/conf? 進行掛載,并啟動Tomcat
docker run -d -v /opt/software/tomcat-conf:/usr/local/tomcat/conf? -p 80:80?docker.io/tomcat?
?docker run -d?-p 443:443?docker.io/tomcat?
8、重新啟動容器,使用瀏覽器訪問驗證
當前備案正常進行中,進行上述配置后,域名映射和解析均為完成成功,只能等備案結果
?
三、iptables開放端口
?
1、# 檢查并安裝
#檢查
sudo whereis iptables
# 安裝
sudo apt-get install iptables
# 查看防火墻配置
/sbin/iptables -L -n
2、新建規則文件
# 新建目錄和文件
mkdir /etc/iptables & vi /etc/iptables/rules.conf
?
加入內容并保存:
*filter
#默認INPUT 的策略是DROP 即拒絕所有的外來請求
:INPUT DROP [0:0]
#一般情況下用不到FORWARD 可以配置為默認DROP
:FORWARD DROP [0:0]
#本機對其他機器訪問設置為默認ACCEPT
:OUTPUT ACCEPT [0:0]
#允許已經建立和相關的連接
-A INPUT -m state --state RELATED,ESTABLISHED -j ACCEPT
#允許icmp協議(即ping)
-A INPUT -p icmp -j ACCEPT
#允許回環請求
-A INPUT -i lo -j ACCEPT
#開放端口22 80(如果要開放其他端口 繼續添加開放規則即可)
-A INPUT -p tcp -m state --state NEW -m tcp --dport 22 -j ACCEPT
-A INPUT -p tcp -m state --state NEW -m tcp --dport 80 -j ACCEPT
COMMIT
按ESC鍵退出輸入狀態,SHIFT+冒號,彈出提示,輸入? ?wq,退出并保存
3、使防火墻生效:
iptables-restore < /etc/iptables/rules.conf
4、創建文件,添加以下內容,使防火墻開機啟動
vi /etc/network/if-pre-up.d/iptables
#!/bin/bash
iptables-restore < /etc/iptables/rules.conf
4、添加執行權限:
chmod +x /etc/network/if-pre-up.d/iptables
?
5、查看規則是否生效:
iptables -L -n
6、在關閉容器后,出現如下問題:
按上圖所示,出現錯誤信息為:
Error response from daemon: driver failed programming external connectivity on endpoint zealous_volhard (e4ebc07db12c56abfa13505e1bbd3b5462102b0864cd0a8f1b26a0a0361cd9b8): ?(iptables failed: iptables --wait -t filter -A DOCKER ! -i docker0 -o docker0 -p tcp -d 172.17.0.2 --dport 80 -j ACCEPT: iptables: No chain/target/match by that name.
?(exit status 1))
?
該問題的解決辦法為:重啟docker服務,即可OK,如上圖在錯誤信息下的操作
?
待備案成功后,在進行后續操作
總結
以上是生活随笔為你收集整理的阿里云ECS官网域名映射及Tomcat配置调整,最终使用HTTPS和域名直接访问的全部內容,希望文章能夠幫你解決所遇到的問題。
- 上一篇: Windows 软件授权管理工具检验Wi
- 下一篇: 一名普通程序员的自我诊断书