如何在Ubuntu上安裝和優(yōu)化Apache
這是我們的 LAMP 系列教程的開始:如何在 Ubuntu 上安裝 Apache web 服務(wù)器。
這些說明適用于任何基于 Ubuntu 的發(fā)行版,包括 Ubuntu 14.04、 Ubuntu 16.04、 Ubuntu 18.04,甚至非 LTS 的 Ubuntu 發(fā)行版,例如 Ubuntu 17.10。這些說明經(jīng)過測試并為 Ubuntu 16.04 編寫。
Apache (又名 httpd) 是最受歡迎和使用最廣泛的 web 服務(wù)器,所以這應(yīng)該對每個人都有用。
開始安裝 Apache 之前
在我們開始之前,這里有一些要求和說明:
- Apache 可能已經(jīng)在你的服務(wù)器上安裝了,所以開始之前首先檢查一下。你可以使用
apachectl -V
命令來顯示你正在使用的 Apache 的版本和一些其他信息。 - 你需要一個 Ubuntu 服務(wù)器。你可以從 Vultr 購買一個,它們是最便宜的云托管服務(wù)商之一。它們的服務(wù)器價格每月 2.5 美元起。(LCTT 譯注:廣告 ≤_≤ )
- 你需要有 root 用戶或具有 sudo 訪問權(quán)限的用戶。下面的所有命令都由 root 用戶執(zhí)行,所以我們不必為每個命令都添加
sudo
。 - 如果你使用 Ubuntu,則需要啟用 SSH,如果你使用 Windows,則應(yīng)該使用類似 MobaXterm 的 SSH 客戶端。
這就是全部要求和注釋了,讓我們進(jìn)入安裝過程。
在 Ubuntu 上安裝 Apache
你需要做的第一件事就是更新 Ubuntu,這是在你做任何事情之前都應(yīng)該做的。你可以運(yùn)行:
apt-get update && apt-get upgrade
接下來,安裝 Apache,運(yùn)行以下命令:
apt-get install apache2
如果你愿意,你也可以安裝 Apache 文檔和一些 Apache 實用程序。對于我們稍后將要安裝的一些模塊,你將需要一些 Apache 實用程序。
apt-get install apache2-doc apache2-utils
*就是這樣。你已經(jīng)成功安裝了 Apache *
你仍然需要配置它。
在 Ubuntu 上配置和優(yōu)化 Apache
你可以在 Apache 上做各種各樣的配置,但是主要的和最常見的配置將在下面做出解釋。
檢查 Apache 是否正在運(yùn)行
默認(rèn)情況下,Apache 設(shè)置為在機(jī)器啟動時自動啟動,因此你不必手動啟用它。你可以使用以下命令檢查它是否正在運(yùn)行以及其他相關(guān)信息:
systemctl status apache2
check if apache is running
并且你可以檢查你正在使用的版本:
apachectl -V
一種更簡單的檢查方法時訪問服務(wù)器的 IP 地址,如果你得到默認(rèn)的 Apache 頁面,那么一切都正常。
更新你的防火墻
如果你使用防火墻(你應(yīng)該使用它),則可能需要更新防火墻規(guī)則并允許訪問默認(rèn)端口。Ubuntu 上最常用的防火墻是 UFW,因此以下說明使用于 UFW。
要允許通過 80(http)和 443(https)端口的流量,運(yùn)行以下命令:
ufw allow 'Apache Full'
安裝常見的 Apache 模塊
一些模塊經(jīng)常被建議使用,所以你應(yīng)該安裝它們。我們將包含最常見模塊的說明:
使用 PageSpeed 加速你的網(wǎng)站
PageSpeed 模塊將自動優(yōu)化并加速你的 Apache 服務(wù)器。
首先,進(jìn)入 PageSpeed 下載頁并選擇你需要的的文件。我們使用的是 64 位 Ubuntu 服務(wù)器,所以我們安裝最新的穩(wěn)定版本。使用 wget
下載它:
wget https://dl-ssl.google.com/dl/linux/direct/mod-pagespeed-stable_current_amd64.deb
然后,使用以下命令安裝它:
dpkg -i mod-pagespeed-stable_current_amd64.deb
apt-get -f install
重啟 Apache 以使更改生效:
systemctl restart apache2
使用 mod_rewrite 模塊啟動重寫/重定向
顧名思義,該模塊用于重寫(重定向)。如果你使用 WordPress 或任何其他 CMS 來處理此問題,你就需要它。要安裝它,只需運(yùn)行:
a2enmod rewrite
然后再次重新啟動 Apache。你可能需要一些額外的配置,具體取決于你使用的 CMS,如果有的話。為你的設(shè)置 Google 一下得到它的具體說明。
使用 ModSecurity 模塊保護(hù)你的 Apache
顧名思義,ModSecurity 是一個用于安全性的模塊,它基本上起著防火墻的作用,它可以監(jiān)控你的流量。要安裝它,運(yùn)行以下命令:
apt-get install libapache2-modsecurity
再次重啟 Apache:
systemctl restart apache2
ModSecurity 自帶了一個默認(rèn)的設(shè)置,但如果你想擴(kuò)展它,你可以使用 OWASP 規(guī)則集。
使用 mod_evasive 模塊抵御 DDoS 攻擊
盡管 mod_evasive 在防止攻擊方面有多大用處值得商榷,但是你可以使用它來阻止和防止服務(wù)器上的 DDoS 攻擊。要安裝它,使用以下命令:
apt-get install libapache2-mod-evasive
默認(rèn)情況下,mod_evasive 是禁用的,要啟用它,編輯以下文件:
nano /etc/apache2/mods-enabled/evasive.conf
取消注釋所有行(即刪除 #
),根據(jù)你的要求進(jìn)行配置。如果你不知道要編輯什么,你可以保持原樣。
mod_evasive
創(chuàng)建一個日志文件:
mkdir /var/log/mod_evasive
chown -R www-data:www-data /var/log/mod_evasive
就是這樣?,F(xiàn)在重啟 Apache 以使更改生效。
systemctl restart apache2
你可以安裝和配置附加模塊,但完全取決于你和你使用的軟件。它們通常不是必需的。甚至我們上面包含的 4 個模塊也不是必需的。如果特定應(yīng)用需要模塊,那么它們可能會注意到這一點(diǎn)。
用 Apache2Buddy 腳本優(yōu)化 Apache
Apache2Buddy 是一個可以自動調(diào)整 Apache 配置的腳本。你唯一需要做的就是運(yùn)行下面的命令,腳本會自動完成剩下的工作:
curl -sL https://raw.githubusercontent.com/richardforth/apache2buddy/master/apache2buddy.pl | perl
如果你沒有安裝 curl
,那么你可能需要安裝它。使用以下命令來安裝 curl
:
apt-get install curl
額外配置
用 Apache 還可以做一些額外的東西,但我們會留下它們作為另一個教程。像啟用 http/2 支持,關(guān)閉(或打開) KeepAlive,調(diào)整你的 Apache 甚至更多。這些東西你現(xiàn)在不需要做,但是如果你在網(wǎng)上找到了教程,并且如果你等不及我們的教程,那就去做吧。
使用 Apache 創(chuàng)建你的第一個網(wǎng)站
現(xiàn)在我們已經(jīng)完成了所有的調(diào)優(yōu)工作,讓我們開始創(chuàng)建一個實際的網(wǎng)站。按照我們的指示創(chuàng)建一個簡單的 HTML 頁面和一個在 Apache 上運(yùn)行的虛擬主機(jī)。
你需要做的第一件事是為你的網(wǎng)站創(chuàng)建一個新的目錄。運(yùn)行以下命令來執(zhí)行此操作:
mkdir -p /var/www/example.com/public_html
當(dāng)然,將 example.com
替換為你所需的域名。你可以從 Namecheap 獲得一個便宜的域名。
不要忘記在下面的所有命令中替換 example.com
。
接下來,創(chuàng)建一個簡單的靜態(tài)網(wǎng)頁。創(chuàng)建 HTML 文件:
nano /var/www/example.com/public_html/index.html
粘貼這些:
<html>
<head>
<title>Simple Page</title>
</head>
<body>
<p>If you're seeing this in your browser then everything works.</p>
</body>
</html>
保存并關(guān)閉文件。
配置目錄的權(quán)限:
chown -R www-data:www-data /var/www/example.com
chmod -R og-r /var/www/example.com
為你的網(wǎng)站創(chuàng)建一個新的虛擬主機(jī):
nano /etc/apache2/sites-available/example.com.conf
粘貼以下內(nèi)容:
<VirtualHost *:80>
ServerAdmin admin@example.com
ServerName example.com
ServerAlias www.example.com
DocumentRoot /var/www/example.com/public_html
ErrorLog ${APACHE_LOG_DIR}/error.log
CustomLog ${APACHE_LOG_DIR}/access.log combined
</VirtualHost>
這是一個基礎(chǔ)的虛擬主機(jī)。根據(jù)你的設(shè)置,你可能需要更高級的 .conf
文件。
在更新所有內(nèi)容后保存并關(guān)閉文件。
現(xiàn)在,使用以下命令啟用虛擬主機(jī):
a2ensite example.com.conf
最后,重啟 Apache 以使更改生效:
systemctl restart apache2
這就是全部了,你做完了。現(xiàn)在你可以訪問 example.com 并查看你的頁面。