CodeGym /Adesua ahorow /Docker SELF /部署具有虛擬主機和 SSL 的網頁伺服器

部署具有虛擬主機和 SSL 的網頁伺服器

Docker SELF
等級 7 , 課堂 5
開放

部署具有虛擬主機和 SSL 的網頁伺服器

1. 環境準備

現在是時候將所有東西整合起來了。今天我們要部署一個伺服器,帶有多個虛擬主機並連接上 HTTPS。我們將進行測試、調試以及最後的配置。

我們的任務

在這個專案中,我們將在同一個網頁伺服器上部署兩個網站:

  • example.com
  • test.com

為每一個網站配置虛擬主機,連接 HTTPS,並展示調試與檢查運作的步驟。準備好了嗎?出發吧!

準備

在開始之前,先確保一切都已正確設置:

  1. 你已經安裝了網頁伺服器(Nginx 或 Apache)。

    • 如果你使用的是 Nginx:

      sudo apt-get update
      sudo apt-get install nginx
      
    • 或者 Apache:

      sudo apt-get update
      sudo apt-get install apache2
      
  2. 已安裝用於 SSL 的 Certbot 套件。

    • 對於 Nginx:

      sudo apt-get install certbot python3-certbot-nginx
      
    • 對於 Apache:

      sudo apt-get install certbot python3-certbot-apache
      
  3. 你可以連接到伺服器,並且對於 example.com 和 test.com 的域名已設置了 DNS,或者可以用 /etc/hosts 進行測試。


2. 為每個站點配置目錄

讓我們從為我們的網站創建目錄和檔案開始。

步驟 1: 創建站點文件夾

sudo mkdir -p /var/www/example.com
sudo mkdir -p /var/www/test.com

步驟 2: 創建測試 HTML 文件

為每個站點創建一個簡單的 HTML 檔案:

example.com

sudo nano /var/www/example.com/index.html

內容:

<!DOCTYPE html>
<html>
<head>
    <title>歡迎來到 example.com</title>
</head>
<body>
    <h1>這裡是 example.com</h1>
    <p>歡迎來到 example.com!該站點已啟動並通過 SSL 保護!</p>
</body>
</html>

test.com

sudo nano /var/www/test.com/index.html

內容:

<!DOCTYPE html>
<html>
<head>
    <title>歡迎來到 test.com</title>
</head>
<body>
    <h1>這裡是 test.com</h1>
    <p>歡迎來到 test.com!該站點正在運行並通過 SSL 保護!</p>
</body>
</html>

3. 設定虛擬主機

我們為每個網站建立單獨的配置檔案。

步驟 1:為 Nginx 設定

example.com

sudo nano /etc/nginx/sites-available/example.com

內容:

server {
    listen 80;
    server_name example.com www.example.com;

    root /var/www/example.com;
    index index.html;

    location / {
        try_files $uri $uri/ =404;
    }
}

test.com

sudo nano /etc/nginx/sites-available/test.com

內容:

server {
    listen 80;
    server_name test.com www.test.com;

    root /var/www/test.com;
    index index.html;

    location / {
        try_files $uri $uri/ =404;
    }
}

啟用配置檔案:

sudo ln -s /etc/nginx/sites-available/example.com /etc/nginx/sites-enabled/
sudo ln -s /etc/nginx/sites-available/test.com /etc/nginx/sites-enabled/

重啟伺服器:

sudo nginx -t
sudo systemctl reload nginx

步驟 2:為 Apache 設定

example.com

sudo nano /etc/apache2/sites-available/example.com.conf

內容:

<VirtualHost *:80>
    ServerName example.com
    ServerAlias www.example.com

    DocumentRoot /var/www/example.com
    <Directory /var/www/example.com>
        Options Indexes FollowSymLinks
        AllowOverride All
        Require all granted
    </Directory>
</VirtualHost>

test.com

sudo nano /etc/apache2/sites-available/test.com.conf

內容:

<VirtualHost *:80>
    ServerName test.com
    ServerAlias www.test.com

    DocumentRoot /var/www/test.com
    <Directory /var/www/test.com>
        Options Indexes FollowSymLinks
        AllowOverride All
        Require all granted
    </Directory>
</VirtualHost>

啟用配置檔案:

sudo a2ensite example.com.conf
sudo a2ensite test.com.conf
sudo systemctl reload apache2

4. 為網站設定 HTTPS

現在我們用 Let’s Encrypt 為兩個網站啟用 SSL。

sudo certbot --nginx
# 或者對於 Apache:
sudo certbot --apache

過程中會提示選擇要生成憑證的網站。選擇 example.comtest.com。Certbot 將自動更新伺服器的配置。


5. 測試網站運行狀況

完成設定後,訪問你的網站:

你應該能看到已建立的 HTML 網頁。確認瀏覽器的地址欄中顯示「安全」(Secure)。


6. 除錯與檢查

如果出了點問題,可以檢查日誌檔案:

  • 對於 Nginx:

    sudo tail -f /var/log/nginx/error.log
    
  • 對於 Apache:

    sudo tail -f /var/log/apache2/error.log
    

或者用 curl 檢查可用性:

curl -I http://example.com
curl -I https://example.com

7. 更新憑證

Certbot 會透過系統的 cron 自動更新憑證。要檢查的話可以手動執行:

sudo certbot renew --dry-run

就這樣,一步步設定,我們把支援多站點和 HTTPS 的網頁伺服器弄好了。你剛剛完成了從一台乾淨的伺服器到擁有虛擬主機和 SSL 的整個流程。現在你的伺服器已經準備好向世界展示網站了。是不是很酷啊?

1
Опрос
在 Linux 中處理網頁伺服器,  7 уровень,  5 лекция
недоступен
在 Linux 中處理網頁伺服器
在 Linux 中處理網頁伺服器
留言
TO VIEW ALL COMMENTS OR TO MAKE A COMMENT,
GO TO FULL VERSION