[![](https://img.shields.io/badge/Author-Chieh-blue?style=for-the-badge&logo=appveyor)](https://hackmd.io/@Chieh) # TWCC [1] ## Deploy a simple server Notes: 1. 開對外Port - 可於 "網路與安全" > "安全姓群組" 裡面設定對外Port - 如果有架設反向代理伺服器,則還須於 "負載平衡" 裡面做設定對外Port。 2. 如果是設**虛擬運算**,則需要先行創建一個虛擬網路。 --- 本篇可以了解: - [x] 部屬一個簡單"對外"服務的HTTP Web伺服器。 - [x] 如何部屬有SSL證書的HttpS伺服器。 --- ## Steps: 1. 於 "網路與安全" > "虛擬網路" > 點選 "+" : 創建一個網路,等待大概1~2分鐘做建置。 ![](https://i.imgur.com/aMhmk3L.png) 當狀態顯示: Active 即為可用。 2. 於 "虛擬運算" > 點選 "+" : 建立一個虛擬運算個體管理。 本次我們選擇Ubuntu,如果需要GPU的需求可選擇T4版本。 ![](https://i.imgur.com/PXffpM9.png) 選擇規格之後點選網路。 ![](https://i.imgur.com/w8ZJJDn.png) 預設會自動選擇我們建立的default虛擬網路 ![](https://i.imgur.com/rJ7mUJ0.png) 設定容量空間。 ![](https://i.imgur.com/zWq5yYv.png) 建立一組登入用的金鑰,並下載下來,稍後我們會用這組密碼作為登入使用。 ![](https://i.imgur.com/pSVfcHi.png) 最後確認無誤,則建立。 ![](https://i.imgur.com/FlMiDZF.png) 等待數分鐘,狀態亮綠燈(Ready)則可使用。 3. 由我們local端做遠端登入此VM,可以點入"虛擬運算",點選"連線"。 如果我們建置的時候已經設有一組浮動IP,則可略過第一步,如果還沒配置,則可配置一組浮動IP。 ![](https://i.imgur.com/U28a4L5.png) 1. 首先,先限制檔案的權限 `chmod 400 /path/kp100000.pem` 2. 登入 `ssh -i /path/kp100000.pem ubuntu@(public IP)` 4. 於 "網路與安全" > "安全行群組" 設定我們的Server需要使用的對外Port。 ![](https://i.imgur.com/uBdYRCD.png) 點選: 建立 ![](https://i.imgur.com/hEMtdgC.png) 由於我的Demo伺服器需要的port是5757,因此我設定5757,走tcp/ip。 CIDR我們可以先設定 `0.0.0.0/0`,然後下一步,完成建立。 5. 最後一步,遠端登入,並啟動伺服器,於瀏覽器確認我們的服務是否成功啟動~ 啟動web server: ![](https://i.imgur.com/xWsD7I1.png) Check it: ![](https://i.imgur.com/epx1c7r.png) 至於如何產生 web server 部份,可以參考我的這篇 [如合輕鬆無腦快速產生一個Web Server。](https://hackmd.io/@Chieh/rJulJSsIc) --- # 配置靜態IP 如果之後正式對外服務,不想持續使用浮動IP,則可以考慮創建一組靜態IP。 ![](https://i.imgur.com/Hkh3GD4.png) 然後到我們的虛擬運算點選我們的個體,進入之後移除原本的公用IP,等待移除之後,重新配置並選擇剛剛所創建的那組靜態IP。 ![](https://i.imgur.com/EZWq2Z7.png) --- # 部屬一個Https的網站 首先我們要先去申請一個SSL的證書,而不是自行產生的。 免費的SSL我們可以從這邊先行申請:[sslforfree](https://www.sslforfree.com/) ![](https://i.imgur.com/k3nSMC1.png) 輸入你的IP或網域名,跟著步驟做,這邊我選擇http方式上傳檔案來做驗證。 驗證成功之後,即可下載一包zip檔案,裡面會有private.key, certificate檔等等。 然後我們可以把此檔案放到程式底下,啟動https時候使用。 回到 "網路與安全" > "安全行群組" 設定我們的Server需要使用對外Https的Port。 啟動https 伺服器,即可在瀏覽器上做查看:https://(公用IP):(port) 建議可以多做一步驟,到 "網路與安全" > "SSL憑證" 註冊一下該SSL證書。 ![](https://i.imgur.com/qoKaCj3.png) 轉換方式可參考此篇:https://man.twcc.ai/@twccdocs/howo-lb-convert-cert-zh ``` $ openssl pkcs12 -export -out server.p12 -inkey server.key -in server.crt -certfile ca.crt (Enter to skip the questions.) $ base64 server.p12 | tr -d \\n ``` 複製產生出來的檔案,貼到 Base64編碼欄位。 最後可以在瀏覽器上查看一下,web server上證書發行資訊。 ![](https://i.imgur.com/knKInQb.png) --- # Reference: 可參考官方的文件: - https://man.twcc.ai/@twccdocs/doc-vcs-main-zh/https%3A%2F%2Fman.twcc.ai%2F%40twccdocs%2Fvcs-overview-zh - https://man.twcc.ai/@twccdocs/howto-vcs-lb-build-secure-web-handle-high-traffic-zh/https%3A%2F%2Fman.twcc.ai%2F%40twccdocs%2Fhowto-vcs-lb-build-secure-web-handle-high-traffic-intro-zh --- # Troubleshooting 1. apt install 任何東西都會報錯 ``` ubuntu@vm1652408398792-2692774-iaas:~$ sudo apt install -y vim Reading package lists... Done Building dependency tree Reading state information... Done vim is already the newest version (2:8.1.2269-1ubuntu5.7). 0 upgraded, 0 newly installed, 0 to remove and 117 not upgraded. 1 not fully installed or removed. After this operation, 0 B of additional disk space will be used. Setting up install-info (6.7.0.dfsg.2-5) ... /usr/sbin/update-info-dir: 11: /etc/environment: dHdzeHBrZzI4Nzo3ODJna3B4c3d0: not found dpkg: error processing package install-info (--configure): installed install-info package post-installation script subprocess returned error exit status 127 Errors were encountered while processing: install-info E: Sub-process /usr/bin/dpkg returned an error code (1) ``` 解決: ``` sudo mv /var/lib/dpkg/info/install-info.postinst /var/lib/dpkg/info/install-info.postinst.bad ``` Source: https://askubuntu.com/questions/1069702/dpkg-error-processing-package-install-info