在Linux系統(tǒng)上搭建Web服務器的方法步驟
摘要
對于許多開發(fā)者和技術(shù)愛好者而言,擁有一個屬于自己的 Web 服務器是邁向更廣闊技術(shù)世界的第一步。它不僅是學習網(wǎng)絡知識、托管個人博客、展示作品集的平臺,更是理解互聯(lián)網(wǎng)工作原理的絕佳實踐。然而,面對 Linux 的命令行,許多新手可能會望而卻步。本文旨在打破這一壁壘,提供一份超詳細、步驟清晰、真正零門檻的 Linux Web 服務器搭建指南。我們將以當前最主流的兩種 Web 服務器軟件 Nginx 和 Apache 為例,分別在兩大主流 Linux 發(fā)行版家族(基于 Debian/Ubuntu 和基于 RHEL/CentOS)上進行實戰(zhàn)演示。從系統(tǒng)更新、軟件安裝、防火墻配置,到部署第一個網(wǎng)頁,每一步都配有詳盡的命令和解釋,確保即便您是第一次接觸 Linux,也能輕松跟上,成功點亮您的第一個網(wǎng)站。
一、引言:為何要在 Linux 上搭建 Web 服務器?
在當今這個時代,云服務器已經(jīng)觸手可及,價格也日益親民。擁有一臺 Linux 云服務器,就如同擁有了一塊數(shù)字世界的“自留地”,您可以在上面自由地構(gòu)建和實驗。而搭建 Web 服務器,就是在這塊土地上蓋起第一座房子的過程。
為什么選擇 Linux?
- 開源與免費:Linux 內(nèi)核及其上絕大多數(shù)的軟件都是開源的,這意味著您可以免費使用,并且可以深入研究其源代碼。
- 穩(wěn)定與安全:Linux 以其卓越的穩(wěn)定性和強大的安全模型著稱,是全球絕大多數(shù)服務器的首選操作系統(tǒng)。
- 高性能:Linux 對系統(tǒng)資源的有效管理使其能夠提供優(yōu)異的性能,非常適合運行需要7x24小時不間斷服務的 Web 應用。
- 強大的社區(qū)支持:遇到任何問題,您都可以在龐大的全球社區(qū)中找到答案和幫助。
本文將聚焦于兩款最受歡迎的 Web 服務器軟件:
- Nginx:發(fā)音為 “Engine-X”,以其高性能、高并發(fā)和低資源消耗而聞名,特別擅長處理靜態(tài)文件和作為反向代理。
- Apache HTTP Server:一款老牌、穩(wěn)定且功能極其豐富的 Web 服務器,擁有龐大的模塊生態(tài)系統(tǒng),配置靈活,兼容性好。
我們將分別介紹如何在以下兩種主流 Linux 發(fā)行版上安裝它們,您可以根據(jù)自己的服務器系統(tǒng)選擇對應的教程:
- Ubuntu 22.04 (代表 Debian 家族)
- CentOS Stream 9 (代表 RHEL/Fedora 家族)
準備好了嗎?讓我們開始這段激動人心的旅程吧!
二、準備工作:連接并更新你的服務器
在開始安裝任何軟件之前,我們需要先通過 SSH (Secure Shell) 登錄到您的 Linux 服務器,并執(zhí)行一次全面的系統(tǒng)更新。這是一個至關重要的好習慣,可以確保系統(tǒng)中的所有軟件包都處于最新狀態(tài),修復已知的安全漏洞。
通過 SSH 連接服務器
您需要一個 SSH 客戶端。在 Windows 10/11 上,您可以使用 PowerShell 或命令提示符;在 macOS 和 Linux 上,可以直接使用終端。命令格式如下:
ssh username@your_server_ip
首次連接時,系統(tǒng)會提示您確認主機的真實性,輸入 yes 并回車即可。然后輸入您的密碼,登錄成功后,您將看到服務器的命令行歡迎信息。
username:通常是root或您在創(chuàng)建服務器時設置的用戶名。your_server_ip:您服務器的公網(wǎng) IP 地址。
更新系統(tǒng)軟件包
- 在 Ubuntu / Debian 上:
# 更新可用軟件包列表 sudo apt update # 升級所有已安裝的軟件包到最新版本 sudo apt upgrade -y
sudo 命令用于以管理員(root)權(quán)限執(zhí)行命令。-y 標志會自動對所有提示回答“是”。
- 在 CentOS / RHEL / Fedora 上:
# 更新所有已安裝的軟件包到最新版本 sudo dnf update -y
在較舊的 CentOS 7 等版本中,使用的命令是 yum 而不是 dnf。
完成以上步驟后,您的服務器就已經(jīng)處在一個干凈且最新的狀態(tài),可以開始安裝 Web 服務器軟件了。
三、方案一:搭建 Nginx Web 服務器
Nginx 是現(xiàn)代 Web 架構(gòu)的寵兒,我們將先介紹如何安裝和配置它。
3.1 在 Ubuntu 22.04 上安裝 Nginx
Ubuntu 的官方軟件倉庫中包含了 Nginx,安裝過程非常直接。
安裝 Nginx
sudo apt install nginx -y
配置防火墻
Ubuntu 默認使用 ufw (Uncomplicated Firewall) 作為防火墻管理工具。我們需要允許外部流量訪問 Web 服務器的端口。
# 查看 ufw 為 Nginx 預設的配置方案 sudo ufw app list
您會看到類似 Nginx HTTP, Nginx HTTPS, Nginx Full 的選項。
# 僅允許 HTTP 流量 (端口 80) sudo ufw allow 'Nginx HTTP' # 啟用防火墻 (如果尚未啟用) sudo ufw enable # 查看防火墻狀態(tài),確認規(guī)則已生效 sudo ufw status
輸出應該會顯示 Nginx HTTP 規(guī)則處于 ALLOW 狀態(tài)。
管理 Nginx 服務
安裝完成后,Nginx 服務通常會自動啟動。您可以使用 systemctl 命令來管理它。
# 檢查 Nginx 服務狀態(tài) sudo systemctl status nginx # 如果服務未運行,手動啟動 # sudo systemctl start nginx # 設置 Nginx 開機自啟 sudo systemctl enable nginx
驗證安裝
現(xiàn)在,打開您的本地瀏覽器,在地址欄輸入您服務器的公網(wǎng) IP 地址:http://your_server_ip。如果一切順利,您將看到 Nginx 的默認歡迎頁面!
3.2 在 CentOS Stream 9 上安裝 Nginx
在 CentOS Stream 9 上安裝 Nginx 同樣簡單。
安裝 Nginx
sudo dnf install nginx -y
配置防火墻
CentOS 默認使用 firewalld 作為防火墻。
# 永久允許 HTTP (端口 80) 和 HTTPS (端口 443) 流量 sudo firewall-cmd --permanent --add-service=http sudo firewall-cmd --permanent --add-service=https # 重新加載防火墻配置以使規(guī)則生效 sudo firewall-cmd --reload
管理 Nginx 服務
# 啟動 Nginx 服務 sudo systemctl start nginx # 設置 Nginx 開機自啟 sudo systemctl enable nginx # 檢查服務狀態(tài) sudo systemctl status nginx
驗證安裝
同樣地,在瀏覽器中訪問 http://your_server_ip。您應該能看到 CentOS 上的 Nginx 歡迎頁面。
四、方案二:搭建 Apache Web 服務器
Apache 歷史悠久,社區(qū)龐大,資料豐富,是新手入門的另一個絕佳選擇。
4.1 在 Ubuntu 22.04 上安裝 Apache
安裝 Apache
在 Ubuntu 上,Apache 的軟件包名為 apache2。
sudo apt install apache2 -y
配置防火墻
ufw 同樣為 Apache 提供了預設配置。
# 查看預設方案 sudo ufw app list # 允許 Apache 的 HTTP 流量 sudo ufw allow 'Apache' # 查看防火墻狀態(tài) sudo ufw status
管理 Apache 服務
# 檢查 Apache 服務狀態(tài) sudo systemctl status apache2 # 設置開機自啟 sudo systemctl enable apache2
驗證安裝
打開瀏覽器,訪問 http://your_server_ip。您將看到 Apache 在 Ubuntu 上的默認頁面,它會告訴您配置文件的位置等信息。
4.2 在 CentOS Stream 9 上安裝 Apache
安裝 Apache
在 CentOS/RHEL 家族中,Apache 的軟件包名為 httpd。
sudo dnf install httpd -y
配置防火墻
這與 Nginx 在 CentOS 上的防火墻配置完全相同。如果您之前已經(jīng)為 Nginx 配置過,則無需重復操作。
sudo firewall-cmd --permanent --add-service=http sudo firewall-cmd --permanent --add-service=https sudo firewall-cmd --reload
管理 Apache 服務
# 啟動 httpd 服務 sudo systemctl start httpd # 設置開機自啟 sudo systemctl enable httpd # 檢查服務狀態(tài) sudo systemctl status httpd
驗證安裝
瀏覽器訪問 http://your_server_ip,您會看到由 CentOS 提供的 Apache 測試頁面。
五、部署你的第一個網(wǎng)頁
現(xiàn)在服務器已經(jīng)運行起來了,但它只顯示默認頁面。讓我們用一個自定義的 “Hello, World!” 頁面來替換它。
Web 服務器從一個特定的目錄中讀取文件并將其提供給訪問者,這個目錄被稱為 Web 根目錄 (Web Root)。
- Nginx 的默認 Web 根目錄:
/usr/share/nginx/html/ - Apache (Ubuntu) 的默認 Web 根目錄:
/var/www/html/ - Apache (CentOS) 的默認 Web 根目錄:
/var/www/html/
創(chuàng)建 HTML 文件
我們將使用 nano 這個簡單易用的命令行文本編輯器來創(chuàng)建一個 index.html 文件。當然,您也可以使用 vim。
首先,為了避免權(quán)限問題,我們直接切換到 root 用戶操作(實際生產(chǎn)環(huán)境不推薦,但對于初學者練習來說最簡單)。
sudo -i
現(xiàn)在,根據(jù)您安裝的服務器和系統(tǒng),進入對應的目錄并創(chuàng)建文件。
示例:以 Nginx on Ubuntu 為例
# 進入 Web 根目錄 cd /usr/share/nginx/html/ # (可選) 備份默認文件 mv index.nginx-debian.html index.nginx-debian.html.bak # 創(chuàng)建并編輯新的 index.html 文件 nano index.html
編寫 HTML 內(nèi)容
在打開的 nano 編輯器中,粘貼以下簡單的 HTML 代碼:
<!DOCTYPE html>
<html lang="en">
<head>
<meta charset="UTF-8">
<meta name="viewport" content="width=device-width, initial-scale=1.0">
<title>Welcome to My Server!</title>
<style>
body {
font-family: sans-serif;
display: flex;
justify-content: center;
align-items: center;
height: 100vh;
background-color: #2c3e50;
color: #ecf0f1;
margin: 0;
}
h1 {
font-size: 3em;
text-shadow: 2px 2px 4px #000;
}
</style>
</head>
<body>
<h1>Hello, World! My Web Server is Running!</h1>
</body>
</html>
保存并退出
- 在
nano中,按下Ctrl + X。 - 它會詢問您是否保存,按下
Y。 - 最后按下
Enter確認文件名。
刷新瀏覽器
現(xiàn)在,回到您的瀏覽器,刷新 http://your_server_ip 頁面。您應該能看到您剛剛創(chuàng)建的 “Hello, World!” 頁面了!
總結(jié)
恭喜你!通過遵循本指南,您已經(jīng)成功地在 Linux 服務器上搭建起了自己的 Web 服務器,并部署了第一個自定義網(wǎng)頁。我們回顧一下核心步驟:
- 連接與準備:通過 SSH 登錄服務器,并使用
apt或dnf更新系統(tǒng),這是保證系統(tǒng)安全和穩(wěn)定的基礎。 - 選擇與安裝:我們演示了如何在 Ubuntu 和 CentOS 上安裝 Nginx 和 Apache 這兩款主流的 Web 服務器軟件。
- 防火墻配置:學習了如何使用
ufw和firewalld為 Web 服務打開必要的 HTTP/HTTPS 端口,這是讓外界能夠訪問您網(wǎng)站的關鍵一步。 - 服務管理:掌握了使用
systemctl來啟動、停止、重啟、設置開機自啟和檢查服務狀態(tài),這是服務器日常運維的基本技能。 - 內(nèi)容部署:了解了 Web 根目錄的概念,并成功創(chuàng)建并部署了一個簡單的 HTML 頁面。
這僅僅是一個開始。從這里出發(fā),您可以繼續(xù)探索更多高級主題,例如:
- 配置虛擬主機,在同一臺服務器上托管多個不同的網(wǎng)站。
- 安裝 PHP、MySQL/MariaDB,搭建經(jīng)典的 LAMP 或 LEMP 環(huán)境以支持動態(tài) 網(wǎng)站(如 WordPress)。
- 申請并配置 SSL 證書,啟用 HTTPS,保障網(wǎng)站數(shù)據(jù)傳輸安全。
- 學習 Nginx/Apache 的高級配置,實現(xiàn)負載均衡、反向代理等功能。
希望這篇指南能為您打開一扇通往 Linux 和 Web 開發(fā)世界的大門。記住,動手實踐是最好的學習方式。不斷嘗試,不斷探索,您將收獲更多。
以上就是在Linux系統(tǒng)上搭建Web服務器的方法步驟的詳細內(nèi)容,更多關于Linux搭建Web服務器的資料請關注腳本之家其它相關文章!
相關文章
Apache服務器中.htaccess文件的實用配置示例集錦
這篇文章主要介紹了Apache服務器中.htaccess文件的實用配置示例集錦,囊括了防盜鏈重定向及強制瀏覽器下載指定的文件類型等例子,很黃很暴力,需要的朋友可以參考下2016-03-03
用DNSPod和Squid打造自己的CDN (五) 安裝Squid的前期準備
從本章開始,大家將會學到如何在Linux下面安裝、編譯程序,還會學到程序編譯的優(yōu)化方法,最后會通過源代碼編譯的方式把Squid安裝上2013-04-04
通過rsync+inotify實現(xiàn)數(shù)據(jù)的實時備份配置
在前面的博文中,我講到過利用rsync實現(xiàn)數(shù)據(jù)的鏡像和備份,但是要實現(xiàn)數(shù)據(jù)的實時備份,單獨靠rsync還不能實現(xiàn),本文就講述下如何實現(xiàn)數(shù)據(jù)的實時備份2013-09-09

