在 Ubuntu 上安裝 Apache 以管理流量

您是否正在尋找一個開源的網頁伺服器來處理您的高流量需求?在Ubuntu上安裝Apache作為完美解決方案!

Apache是最廣泛使用的網頁伺服器,可以輕鬆處理大量流量。在這個教程中,您將學習如何在Ubuntu Linux伺服器上安裝Apache並設置虛擬主機。

今天就試用Apache吧,擺脫網頁伺服器的停機時間!

前提條件

本教程將進行實際示範。如果您想跟隨操作,請確保您擁有以下內容。

  • 一台Ubuntu伺服器-本教程使用Ubuntu 20.04。
  • A user account with root privileges.

如何在Ubuntu伺服器上安裝Apache

Apache提供許多強大的功能,如動態加載模塊、靈活的配置系統和廣泛的日誌記錄功能。為了充分利用這些功能,首先在您的伺服器上安裝Apache。

預設情況下,Apache套件在Ubuntu倉庫中可用,您可以使用apt套件管理器運行一個命令來安裝Apache。

1. 在下面運行apt update命令,確保您的伺服器是最新的並應用任何安全補丁。

sudo apt update -y
Updating Server Package Index

2. 執行下面的apt-cache命令來搜索並列出系統中所有可用的Apache套件。

sudo apt-cache search apache2

在下面的截圖中,您可以看到所有可用的Apache套件,最常見的套件包括:

  • apache2 – Apache HTTP Server – 這個套件是標準的Apache web伺服器。
  • libapache2-mod-php – 這個套件為Apache web伺服器提供PHP支援。
  • apache2-ssl-dev – 這個套件為Apache提供SSL/TLS連線支援。
  • apache2-utils – 這個套件提供各種Apache web伺服器的工具,如htpasswd用於建立基本身份驗證用戶。
Listing Apache Packages

3. 執行以下apt install命令來在您的伺服器上安裝Apache。

sudo apt install -y apache2
Installing Apache

4. 一旦安裝完成,執行以下指令啟動 Apache(`apache2`):systemctl start apache2。該指令不會有輸出,但您將在後續步驟中檢查 Apache 服務的狀態。

sudo systemctl start apache2

5. 現在,執行以下指令以在開機時啟用 Apache,因為 Ubuntu 預設安裝不會自動啟動 Apache 服務:systemctl enable apache2

sudo systemctl enable apache2
Enabling Apache Auto-Start on Boot Up

6. 接下來,執行以下指令使用 `systemctl` 檢查 Apache(`apache2`)服務的狀態:systemctl status apache2

sudo systemctl status apache2

您將看到以下輸出。活動(運行)狀態表示 Apache 服務已如預期啟動並運行。

Check the status of the Apache service.

7. 執行以下指令檢查伺服器上安裝的 Apache 版本:apache2 -v

apache2 -version

截至撰寫本文時,最新穩定版 Apache 版本為 2.4.41,您的版本可能有所不同。

Checking Installed Apache Version

8. 最後,打開您喜歡的瀏覽器,並導航到您的 Ubuntu 伺服器的 IP 地址或主機名稱(例如:192.168.1.100)。

下面,您可以看到在安裝過程中創建的預設 Apache 網頁。該頁面確認 Apache 安裝並按預期運作。

如果由於某種原因而收到錯誤,請跳至下一節並配置您的防火牆。

Verifying Apache Installation by Accessing Apache’s Default Page

配置 UFW 防火牆以保護 Apache 伺服器

在前一節中,您從Apache伺服器請求了一個網頁,顯示了預設的Apache網頁。但如果您遇到“連接被拒絕”的錯誤,如下所示呢?這個錯誤可能是由於防火牆阻止對Apache伺服器的訪問引起的。

Getting Connection Refused Error

要解決此連接錯誤,您將配置防火牆以允許訪問Apache伺服器。默認的Ubuntu安裝包括一個名為UFW的防火牆,可幫助保護您的伺服器免受未授權的訪問。

1. 運行以下命令列出UFW中包含的所有應用程式配置文件。

sudo ufw app list

您可以在下面看到UFW中可用的不同應用程式:

  • Apache Full – 此配置文件允許訪問Apache Web伺服器所需的所有端口範圍(端口80和443)。
  • Apache – 允許訪問未加密端口80的默認配置文件。

在生產環境中,您不應該使用此配置文件,因為它不夠安全。

  • Apache Secure – 此配置文件更安全,因為它僅限於用於TLS/SSL加密流量的端口443。
  • OpenSSH – 此配置文件允許訪問SSH端口(端口22),以允許SSH連接。
Listing Application Profiles Available in UFW

2. 接下來,運行以下命令啟用(allowApache Full配置文件以及SSH

這些指令允許訪問所有端口,在開發環境中很有用。

sudo ufw allow 'Apache Full'
sudo ufw allow 'OpenSSH'
Enabling the Apache Full Profile along with SSH

也許你想禁用應用程式,將允許選項更改為禁用選項,像這樣:sudo ufw disable ‘app_profile’

3. 執行下面的ufw status指令來檢查你的UFW防火牆的狀態。

sudo ufw status verbose

下面,你可以看到可用的防火牆規則,顯示Apache Full和OpenSSH可以從任何地方訪問。

Checking UFW Firewall Status

4. 最後,打開你的網頁瀏覽器,嘗試從Apache服務器請求網頁。這一次,你會看到在安裝過程中創建的默認Apache網頁。

Verifying Apache Installation by Accessing Apache’s Default Page

設置虛擬主機以提供網站

你的Apache服務器已經啟動,現在是最令人興奮的部分,託管你的Web應用程序。怎麼做?你將在Ubuntu服務器上設置你的虛擬主機。虛擬主機是一個配置文件,允許你在單個擁有單個IP地址的服務器上託管多個網站。

請注意,從教程的這一點開始創建文件和目錄需要sudo訪問權限。

開始設置虛擬主機:

1. 執行下面的指令創建一個名為/var/www/example.com的新目錄。你將使用這個目錄來存儲你網站的內容。用實際域名替換example.com

此命令沒有輸出,但您可以通過運行以下命令來驗證目錄:ls /var/www

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

2. 接下來,運行以下chown命令,將/var/www/example.com目錄的所有權更改為您的使用者帳戶。此命令沒有輸出,但允許您管理網站的內容。

sudo chown -R $USER:$USER /var/www/example.com

3. 運行以下chmod命令來將/var/www/example.com目錄的權限更改為755。此命令沒有輸出,但授予您的使用者帳戶對網站內容的讀取和寫入訪問權限。

sudo chmod -R 755 /var/www/example.com

4. 現在,在/var/www/example.com目錄中使用您喜歡的編輯器創建一個名為index.html的文件。將文件填充以下代碼,保存更改並關閉文件。index.html文件作為您網站的默認頁面。

下面的代碼創建了一個簡單的網頁,顯示文本 Hello World!您的虛擬主機正在運行中!

<html>
  <head>
    <title>Welcome to example.com!</title>
  </head>

  <body>
    <h1>Hello World! Your virtual host is working!</h1>
  </body>
</html>

5. 在/etc/apache2/sites-available目錄中創建一個名為example.com.conf的新虛擬主機配置文件。

您可以編輯預設的 /etc/apache2/sites-available/000-default.conf 檔案,以包含您的新虛擬主機。但更好的做法是為您的網站創建一個新檔案。這樣可以幫助您組織配置檔案。

將以下配置復制/粘貼到 example.com.conf 檔案中。但請確保將 example.com 和 webmaster@localhost 替換為您網站的實際值。

保存更改並關閉檔案。

<VirtualHost *:80>

  ServerAdmin webmaster@localhost

  ServerName example.com

  ServerAlias www.example.com

  DocumentRoot /var/www/example.com

  ErrorLog ${APACHE_LOG_DIR}/error.log

  CustomLog ${APACHE_LOG_DIR}/access.log combined

</VirtualHost>

6. 現在,運行下面的每個命令來禁用預設的虛擬主機檔案並啟用您的新虛擬主機檔案。

預設的虛擬主機檔案默認啟用,除非禁用預設的虛擬主機檔案,否則無法使用新的虛擬主機檔案。

# 禁用預設的虛擬主機檔案
sudo a2dissite 000-default
# 啟用您的虛擬主機檔案
sudo a2ensite example.com.conf
Disabling the Default Virtual Host File and Enabling your New Virtual Host

7. 運行以下 service 命令來 重新啟動 Apache 伺服器 (apache2) 以應用更改。

sudo service apache2 restart

8. 最後,打開您的網頁瀏覽器並訪問您的網站 (example.com)。

如果您的 Apache 伺服器配置正確,您將在網頁瀏覽器中看到下面的相同訊息顯示。

Accessing the Hosted Website

結論

在這個教程中,您已經學會了如何在Ubuntu上安裝Apache並設置虛擬主機,以在單個伺服器上提供您的網站。到目前為止,您現在可以在Ubuntu伺服器上有效地托管多個網站。

這個教程充當了入門指南的角色,您可能會考慮進一步使用Apache並配置其他功能。也許試著設置具有SSL的虛擬主機和密碼保護以保護您的Apache伺服器?或者添加自定義標頭到您的網站以控制用戶請求?

Source:
https://adamtheautomator.com/install-apache-on-ubuntu/