## AWS EC2 1. ### 選擇 EC2 並啟動新的 Instance: * 登入 AWS 管理控制台,選擇 EC2 服務。 * 點擊「Launch Instance」以創建新的虛擬機器。  * 選擇偏好的作業系統映像  * 選擇機器類型,建議選用 t2.micro 以利用 AWS 的免費額度。  * 配置實例設定,設置網絡和安全組。 * 選擇一組密鑰,用於遠程訪問您的 EC2 實例。如果您沒有,需要創建個新的密鑰對並下載。 2. ### 連線到 EC2 實例 從 AWS 控制台獲取您實例的公有 DNS 或 IP 地址。 在本地終端機使用 SSH 客戶端連線到 EC2 實例。這需要您的公有 IP 地址和之前下載的私鑰文件。 ```bash= ssh -i /path/to/your-key.pem ec2-user@your-instance-ip ``` 3. ### 在 EC2 實例上安裝必要套件 * 更新套件管理工具: ```bash= sudo apt update && sudo apt upgrade ``` * 安裝 Git: ```bash= sudo apt install git ``` * 安裝 MySQL: ```bash= sudo apt install mysql-server ``` * 安裝 Python 和必要的 Python 套件 ```bash= sudo apt install python3 python3-pip pip3 install flask mysql-connector-python ``` 4. ### 從 GitHub Clone 專案 ```bash= git clone <專案 Git URL> ``` 您的意思是問我剛剛提供的內容是否使用了正確的 Markdown 格式嗎?讓我重新整理一下: 5. ### 設置 MySQL 資料庫 在 EC2 實例上安裝 MySQL 8.0: ```bash= sudo apt-get install mysql-server ``` 安裝後執行命令設定 root 密碼 ```bash= sudo mysql_secure_installation ``` 啟動 MySQL 服務: ```bash= sudo systemctl start mysql ``` 使用 `mysqldump` **匯出本機資料庫檔案**,並透過 `scp` 命令將其同步到 EC2 實例並匯入: ```bash= mysqldump -u database_user -p database_name > database_backup.sql ``` ```bash= scp -i /path/to/private-key.pem backup.sql ubuntu@<EC2-IP>:~/ ``` 在 EC2 實例上**匯入**資料庫: ```bash mysql -u root -p database_name < backup.sql ``` 確認 EC2 實例上已安裝 Python3 和 pip3: ```bash= sudo apt-get install python3 sudo apt-get install python3-pip ``` 6. ### 安裝 Python 相關依賴庫 - 切換到您的專案目錄: ```bash cd <您的專案目錄> ``` - 安裝所需的 Python 庫: ```bash pip3 install -r requirements.txt ``` 7. ### 執行網站程式 嘗試執行您專案中的 Python 網站程式,以確保一切運作正常。 8. ### 獲取彈性 IP 並關聯 - 在 AWS EC2 管理介面申請一個彈性 IP。 - 將彈性 IP 與您的實例關聯。 - 確認實例的 Security Group 已開放連線埠號 3000。 9. ### 訪問網站 在瀏覽器中訪問 `http://<彈性IP>:3000/` 確認網站已成功上線。 10. ### 設置後台運行 為了確保您的應用即使在終端機關閉後仍能持續運行,可以使用 `nohup` 命令在後台運行您的應用。 - 在終端機中執行以下命令: ```bash nohup python3 <程式檔案路徑> & ``` - 使用 `top` 查看後台進程,並可使用 `kill` 終止特定進程。 11. ### 配置安全組 - 在 EC2 控制台中,選擇您的實例。 - 點擊「安全組」標籤,並編輯入站規則。 - 允許 HTTP (80 端口) 和您應用所需的任何其他端口訪問。 12. ### 獲取彈性 IP 並關聯 - 在 EC2 控制台中,導航到「彈性 IP」。 - 分配一個新的彈性 IP 地址。 - 將該 IP 與您的實例關聯。 13. ### 運行您的應用 - 回到終端機連線,導航到您的應用目錄。 - 根據您的應用,執行運行命令,例如:`python3 app.py`。 - 在瀏覽器中訪問:`http://<您的彈性IP>:<端口>`。 14. ### 設置後台持續運行(可選) - 在終端機中,使用以下命令使應用在後台運行: ```bash nohup <運行命令> & ``` - 應用現在將持續在後台運行,即使終端關閉也不會中斷。 - 可使用 `top` 查看後台進程,並可使用 `kill` 終止特定進程。 --- ## (http=>https) 是 ```Taipei-Day-Trip``` 專案中,採用 JavaScript (ES6+)、CSS、HTML 結合 Python + Flask 的技術棧。最終優化目標是將所有 HTTP 流量重定向到 HTTPS,是透過設置 Nginx、Let's Encrypt 以及 Cloudflare 來實現。 **[前置作業]**:在 Cloudflare 買好網域,並且在 AWS EC2 (ubuntu) 上安裝了 Python3、MySQL 及其依存套件,並建立了資料庫。 **[實作過程]**:藉由 Nginx, Let's Encrypt 與 Cloudflare 設定,使大家能用 https://ameliechen.app 造訪我的網站,即使使用 "http:"// ameliechen.app 也會自動導向 "https://" ameliechen.app (http=>https) 7. ### 安裝及配置 Nginx 安裝 Nginx 並配置重定向規則和代理設置: ```bash= sudo apt update sudo apt install nginx sudo nano /etc/nginx/sites-available/default sudo systemctl restart ngin ``` 8. ### Let's Encrypt SSL 證書 安裝 Certbot 和 Nginx 插件,獲取並安裝證書: ```bash= sudo apt install certbot python3-certbot-nginx sudo certbot --nginx -d your_domain.com -d www.your_domain.com ``` 9. ### Cloudflare 設置 登錄到 Cloudflare,配置 DNS 設置以指向您的 EC2 實例 IP 地址。 開啟 Cloudflare 的 SSL/TLS 加密模式。
×
Sign in
Email
Password
Forgot password
or
By clicking below, you agree to our
terms of service
.
Sign in via Facebook
Sign in via Twitter
Sign in via GitHub
Sign in via Dropbox
Sign in with Wallet
Wallet (
)
Connect another wallet
New to HackMD?
Sign up