什麼是Nginx?¶
Nginx是一款高性能的Web服務器和反向代理服務器,它輕量級、穩定性強,能處理高併發訪問,常用於搭建個人博客、企業網站等。相比傳統的Apache,Nginx更省資源,配置也更靈活,是新手入門Web服務器的絕佳選擇。
一、安裝Nginx¶
在開始配置前,需要先安裝Nginx。以下是主流Linux系統的安裝方法(Windows和macOS用戶可跳過,或使用Docker安裝,這裏以Linux爲例):
Ubuntu/Debian系統¶
打開終端,執行以下命令:
# 更新軟件包列表
sudo apt update
# 安裝Nginx
sudo apt install nginx -y
# 啓動Nginx並設置開機自啓
sudo systemctl start nginx
sudo systemctl enable nginx
CentOS/RHEL系統¶
# 安裝Nginx(CentOS 8+已自帶,若未安裝)
sudo dnf install nginx -y
# 啓動並設置開機自啓
sudo systemctl start nginx
sudo systemctl enable nginx
驗證安裝成功¶
安裝後,執行以下命令檢查Nginx狀態:
sudo systemctl status nginx
若顯示“active (running)”,則安裝成功。也可直接在瀏覽器訪問服務器IP(如http://127.0.0.1或http://localhost),能看到Nginx默認歡迎頁面,說明安裝完成。
二、理解Nginx配置文件¶
Nginx的核心是配置文件,默認位於/etc/nginx/目錄下,關鍵文件及作用:
- nginx.conf:主配置文件,包含全局設置(如worker進程數、日誌路徑等)。
- conf.d/:子配置目錄,通常將每個虛擬主機(網站)的配置單獨寫在該目錄下的.conf文件中。
三、配置第一個網站¶
我們將配置一個簡單的Web服務器,步驟如下:
1. 創建網站文件目錄¶
Nginx默認網站文件存放在/var/www/html(Ubuntu/Debian)或/usr/share/nginx/html(CentOS),可直接使用該目錄。
# 創建測試目錄(若不存在)
sudo mkdir -p /var/www/html
# 創建首頁文件index.html
sudo nano /var/www/html/index.html
2. 編寫簡單的HTML內容¶
在index.html中輸入以下內容(可自定義):
<!DOCTYPE html>
<html>
<head>
<title>我的第一個Nginx網站</title>
</head>
<body>
<h1>Hello Nginx!</h1>
<p>這是我用Nginx搭建的第一個Web服務器~</p>
</body>
</html>
按Ctrl+X保存並退出編輯器。
3. 配置虛擬主機¶
Nginx通過server塊定義虛擬主機(網站),需在/etc/nginx/conf.d/目錄下創建一個配置文件(如default.conf):
sudo nano /etc/nginx/conf.d/default.conf
在文件中添加以下配置(解釋見註釋):
server {
# 監聽80端口(HTTP默認端口)
listen 80;
# 訪問域名/IP(新手可填localhost或服務器IP,如192.168.1.100)
server_name localhost;
# 網站文件存放路徑(與步驟1的目錄一致)
root /var/www/html;
# 首頁文件(按順序查找,優先index.html)
index index.html;
# (可選)默認404頁面
location / {
try_files $uri $uri/ =404;
}
}
4. 檢查配置並重新加載¶
修改配置後,需先檢查語法是否有誤,避免啓動失敗:
sudo nginx -t
若顯示“test is successful”,則配置正確。然後重新加載配置(無需重啓服務):
sudo systemctl reload nginx
四、測試訪問網站¶
配置完成後,在瀏覽器中輸入服務器IP或localhost,即可看到剛纔編寫的index.html內容:
- 若服務器IP爲192.168.1.100,直接訪問http://192.168.1.100
- 若用localhost,訪問http://localhost
若無法訪問?檢查以下常見問題:
1. 防火牆未開放80端口
- Ubuntu/Debian:sudo ufw allow 80/tcp(允許HTTP流量)
- CentOS/RHEL:sudo firewall-cmd --add-port=80/tcp --permanent + sudo firewall-cmd --reload
- 雲服務器需在控制檯安全組添加“80端口入站規則”
- 文件權限問題
Nginx默認以www-data(Ubuntu)或nginx(CentOS)用戶運行,需確保目錄有讀取權限:
sudo chown -R www-data:www-data /var/www/html # Ubuntu/Debian
sudo chown -R nginx:nginx /usr/share/nginx/html # CentOS
五、Nginx常用管理命令¶
- 啓動/停止/重啓:
sudo systemctl start nginx # 啓動
sudo systemctl stop nginx # 停止
sudo systemctl restart nginx # 重啓
sudo systemctl reload nginx # 重新加載配置(推薦,不中斷服務)
- 查看狀態:
sudo systemctl status nginx # 查看運行狀態
六、總結¶
通過以上步驟,你已成功用Nginx搭建了一個能訪問的Web服務器!核心流程是:安裝Nginx → 配置網站文件和虛擬主機 → 檢查配置並測試訪問。後續可在此基礎上添加CSS、JS等資源,或配置HTTPS(需SSL證書),讓網站更完善。
小提示:修改配置文件後,務必先用nginx -t檢查語法,再用reload生效,避免服務中斷!