Docker Compose 部署Nginx + WordPress + Https個人站點

Docker Compose 部署Nginx + WordPress + Https個人站點

前段時間自己透過docker compose部署了Nginx + WordPress 個人網站並設定SSL 證書,將自己的設定流程記錄在這裡,接下來我將介紹如何使用 Docker Compose 來快速部署一個包含Nginx 和WordPress 的個人站點,並為其配置SSL 憑證。透過這種方式,你可以簡化伺服器管理,快速建立一個安全的WordPress 網站。

1.前置條件

在開始部署之前,你需要確保以下條件已經具備:

  • 一台安裝了Docker 和Docker Compose 的伺服器(建議使用Linux 系統)。
  • 已註冊的網域名稱(用於SSL 憑證的產生)。
  • 基本的Linux 命令列操作能力。

如果你還沒有安裝Docker 和Docker Compose,可以透過以下命令進行安裝:

# 安裝Docker sudo apt update sudo apt install docker.io # 安裝Docker Compose sudo apt install docker-compose

2.環境準備

在部署Nginx + WordPress 的過程中,我們需要用到以下幾個Docker 容器:

  • Nginx:作為反向代理伺服器,用於處理HTTPS 請求。
  • WordPress:網站的內容管理系統。
  • MySQL:WordPress 使用的資料庫。

建立一個專案目錄來存放Docker Compose 設定檔和相關資料:

mkdir wordpress-nginx-ssl cd wordpress-nginx-ssl

3.Docker Compose 配置文件

接下來我們將創建一個 docker-compose.yml 文件,其中包含Nginx、WordPress 和MySQL 服務的設定。以下是配置的詳細步驟:

Nginx 服務配置

首先,在 docker-compose.yml 文件中新增Nginx 反向代理的設定。我們將使用一個獨立的Nginx 容器來處理HTTPS 請求,並代理到WordPress 容器。

version: '3' services: nginx: image: nginx:latest container_name: nginx ports: - "80:80" - "443:443" volumes: - ./nginx/conf.d:/etc/nginx/conf.d - ./nginx/ssl:/etc/nginx/ssl depends_on: - wordpress networks: - wp_net

其中:

  • ports 將主機的80 和443 連接埠對應到Nginx 容器中。
  • volumes 用來掛載Nginx 設定檔和SSL 憑證。
  • depends_on 表示Nginx 依賴WordPress 服務。
WordPress 服務配置

接下來設定WordPress 服務:

  wordpress: image: wordpress:latest container_name: wordpress environment: WORDPRESS_DB_HOST: db:3306 WORDPRESS_DB_USER: wordpress WORDPRESS_DB_PASSWORD: wordpress WORDPRESS_DB_NAME: wordpress: ///////////L:L::O: N:D:::D:::S >: > > >S +/Low: 7: 7:L:Sd: N5:com: //form::::::3: NEs: >: n/www: 7: N:D::Sd: N5: Noc: 7:/html: 系統_/L: form:d::::D:::::O: >: >: n: > > > >S/ 從/ 」 _net

其中:

  • environment 用來指定WordPress 連線MySQL 資料庫的設定資訊。
  • volumes 掛載了WordPress 網站的檔案目錄到主機上,以便持久化儲存。
MySQL 服務配置

最後設定MySQL 服務:

  • MYSQL_ROOT_PASSWORD 是MySQL root 使用者的密碼。
  • MYSQL_DATABASE 是WordPress 使用的資料庫名稱。
  • volumes 掛載了資料庫文件,確保資料的持久化。
定義網路

docker-compose.yml 的最後,定義一個自訂的網路:

networks: wp_net: driver: bridge

4. 產生SSL 憑證

為了讓我們的網站能夠使用HTTPS,需要產生SSL 憑證。這裡我們使用 Certbot 來產生免費的Let's Encrypt 憑證。首先安裝 Certbot

sudo apt install certbot

接下來使用Certbot 產生憑證:

sudo certbot certonly --standalone -d yourdomain.com -d www.yourdomain.com

產生的憑證將會儲存在 /etc/letsencrypt/live/yourdomain.com/ 目錄中。接下來,將憑證複製到Docker 容器中的Nginx 掛載目錄下:

sudo cp /etc/letsencrypt/live/yourdomain.com/fullchain.pem ./nginx/ssl/ sudo cp /etc/letsencrypt/live/yourdomain.com/privkey.pem ./nginx/ssl/

nginx/conf.d 目錄下建立Nginx 設定檔 wordpress.conf,內容如下:

server { listen 80; server_name yourdomain.com www.yourdomain.com; return 301 https://$server_name$request_uri; } server { listen 443 ssl; server_name yourdomain.com www.yourdomainm.com ssl/wperwate sperslin/fullin.com www.yourdo pem; ssl_certificate_key /etc/nginx/ssl/privkey.pem; location / { proxy_pass http://wordpress:80; proxy_set_header Host $host; proxy_set_header X-Real-IP 1TP4dward_pward; xy_set_header X-Forwarded -Proto $scheme; } }

這段配置將:

  • 強制將HTTP 請求重定向到HTTPS。
  • 使用SSL 憑證來加密通訊。
  • 將來自Nginx 的請求轉送給WordPress 容器。

5. 啟動服務並測試

完成所有配置後,執行以下命令啟動容器:

docker-compose up -d

你可以透過以下命令查看容器是否啟動成功:

docker-compose ps

瀏覽器中造訪你的域名 https://yourdomain.com,如果一切正常,應該可以看到WordPress 的安裝頁面。

到這裡我們的個人站點就搭建完成了,後續可能還會遇到一些配置方面的問題,這個後續有時間再更新。

6.總結

透過Docker Compose,我們可以輕鬆部署Nginx + WordPress 站點,並快速為其配置SSL 證書,確保網站的安全性。這種方法不僅方便管理,還能確保站點的資料持久化和服務的高效運作。如果你有任何問題或建議,歡迎在留言區留言。

祝你的網站建設順利!

docker composedocker composedocker composedocker composedocker composedocker composedocker composedocker composedocker composedocker composedocker compose
暫無評論

發送評論 編輯評論

|´・ω・)ノ
ヾ(≧∇≦*)ゝ
(☆ω☆)
(╯‵□′)╯︵┴─┴
 ̄﹃ ̄
(/ω\)
∠( ᐛ 」∠)_
(๑•̀ㅁ•́ฅ)
→_→
୧(๑•̀⌄•́๑)૭
٩(ˊᗜˋ*)و
(ノ°ο°)ノ
(´இ皿இ`)
⌇●﹏●⌇
(ฅ´ω`ฅ)
(╯°A°)╯︵○○○
φ( ̄∇ ̄o)
ヾ(´・ ・`。)ノ"
( ง ᵒ̌皿ᵒ̌)ง⁼³₌₃
(ó﹏ò。)
Σ(っ°Д °;)っ
( ,,´・ω・)ノ"(´っω・`。)
╮(╯▽╰)╭
o(*////▽////*)q
>﹏<
( ๑´•ω•) "(ㆆᴗㆆ)
😂
😀
😅
😊
🙂
🙃
😌
😍
😘
😜
😝
😏
😒
🙄
😳
😡
😔
😫
😱
😭
💩
👻
🙌
🖕
👍
👫
👬
👭
🌚
🌝
🙈
💊
😶
🙏
🍦
🍉
😣
Source: github.com/k4yt3x/flowerhd
顏文字
Emoji
小恐龍
花!
下一篇