事前準備
- 自己的網域 (如何從 Google Domains 購買網域)
- GCP
- 一些程式語言與 Linux 基礎
建立專案與 VM
在進入 Google Cloud Platform 之後,先建立新的專案
點選新增專案
輸入專案名稱
建立完成之後,切換至剛剛新增的專案
搜尋並點選 Compute Engine (可以釘鉤到上面,方便之後快速切換)
建立一個 VM 執行個體
依照自己的需求去設定
如果是免費試用中,就弄好一點點吧XD
開機磁碟這邊我使用 Ubuntu 20.04 LTS
將 HTTP 與 HTTPS 開啟
再來切換至網路分頁,要來新增一個靜態 IP
在外部 IP 那邊點開,選擇建立 IP 位址
名稱就自己取吧
最後建立 VM,一小段時間後會就建立完成
建立完成之後,先複製外部 IP
到自己的域名供應商設定一個 A 紀錄指向這個 IP
我設定子網域名為 app
過一陣子 app.網域名
就會對應到這個 IP 位址了
建立一個 APP
回到 VM,點選連接
選擇在瀏覽器視窗中開啟
會開啟一個 Terminal 視窗
覺得字太小可以點右上角齒輪調整
也可以從這邊上傳/下載檔案
OK,先進行更新
|
|
之後會用到 Python (Ubuntu 20.04 LTS 已預裝 python 3.8)
安裝其他所需套件
|
|
創建一個資料夾,並建立 python 虛擬環境
|
|
在虛擬環境裡安裝 Flask,並建立一個 app.py
|
|
寫一個簡單的 Flask APP
|
|
寫完之後按下 Ctrl + X,再按 Y 存檔,接著執行
|
|
會看到一串字,Running on http://127.0.0.1:5000/
此時點選 Terminal 右上角的齒輪,開一個新連線
開啟之後輸入
|
|
會看到回傳 Hello
就代表正常運作
但這時候外部還沒有辦法直接連線
Nginx
安裝 Nginx
|
|
安裝完成之後,如果已經將網域指向這個主機的話
可以開啟瀏覽器,輸入你的網域,可以看到 Nginx 的歡迎頁面
檢查設定檔,同時可以知道其位置在 /etc/nginx/nginx.conf
|
|
查看設定檔內容
|
|
Nginx 重要檔案與目錄
- /etc/nginx:Nginx 的主要目錄
- /etc/nginx/nginx.conf:主要的 Nginx 設定檔
- /etc/nginx/sites-available:會在這裡儲存每個 Server 的配置
- /etc/nginx/sites-enabled:啟用配置檔,會與
sites-available
資料夾內的設定檔建立連結檔 - /var/log/nginx/access.log:儲存對 Nginx 的請求紀錄
- /var/log/nginx/error.log:儲存 Nginx 的錯誤
Cerbot
接下來使用 Cerbot 處理憑證
在網頁中間的部分,選擇 nginx
與 Ubuntu 20.04
照著出現的步驟做
|
|
取得憑證並自動配置 Nginx
|
|
依序輸入
- a (同意條款)
- n (發送相關的電子郵件)
- 網域名稱
- 2 (重新導向 http -> https)
自動續約
|
|
生成的憑證位於 /etc/letsencrypt/live/網域名
這個時候就已經有 SSL 了
接下來將其指向 APP
編輯 Server 的設定檔
|
|
在這份設定檔中,可以看到由 Certbot 編輯過的紀錄
找到自己網域的 server_name
於 location /
加入 proxy_pass
指向本機的 Port 5000,存檔
|
|
讓 Nginx 重新讀取設定檔
|
|
就可以發現已經指向自己的 APP 了
Nginx 還有更複雜的設定需要再研究
Done