1. 安裝Nginx
在Debian系統上配置Nginx反向代理前,需先確保系統已更新并安裝Nginx。執行以下命令完成安裝:
sudo apt update
sudo apt install nginx
安裝完成后,Nginx服務會自動啟動,可通過systemctl status nginx
驗證狀態。
2. 創建或編輯反向代理配置文件
Nginx的虛擬主機配置文件通常存放在/etc/nginx/sites-available/
目錄下,建議通過創建新文件而非修改默認配置(避免影響其他站點)。使用文本編輯器(如nano
)創建配置文件:
sudo nano /etc/nginx/sites-available/yourdomain.com
在文件中添加以下基礎反向代理配置(需替換yourdomain.com
為你的域名,backend_server:port
為后端服務器的IP地址或域名及端口):
server {
listen 80; # 監聽HTTP默認端口(若需HTTPS則改為443并配置SSL)
server_name yourdomain.com www.yourdomain.com; # 指定域名(可包含多個,用空格分隔)
location / { # 處理根路徑(/)的請求
proxy_pass http://backend_server:port; # 關鍵指令:將請求轉發至后端服務器
proxy_set_header Host $host; # 傳遞原始請求的Host頭(后端服務器需識別)
proxy_set_header X-Real-IP $remote_addr; # 傳遞客戶端真實IP(解決后端獲取代理IP問題)
proxy_set_header X-Forwarded-For $proxy_add_x_forwarded_for; # 傳遞代理鏈路中的所有IP(用于日志或權限校驗)
proxy_set_header X-Forwarded-Proto $scheme; # 傳遞請求協議(HTTP/HTTPS,供后端適配)
}
}
上述配置中,proxy_pass
是反向代理的核心,決定了請求轉發的目標;proxy_set_header
系列指令則確保后端服務器能獲取客戶端的真實信息。
3. 啟用配置文件
Debian/Ubuntu的Nginx采用“sites-available/sites-enabled”機制管理配置。需將/etc/nginx/sites-available/yourdomain.com
鏈接到/etc/nginx/sites-enabled/
目錄,以激活該配置:
sudo ln -s /etc/nginx/sites-available/yourdomain.com /etc/nginx/sites-enabled/
此操作不會復制文件,僅創建符號鏈接,便于后續快速禁用(刪除鏈接即可)。
4. 測試配置文件語法
在重新加載Nginx前,必須驗證配置文件的正確性,避免因語法錯誤導致服務中斷。執行以下命令:
sudo nginx -t
若輸出顯示nginx: configuration file /etc/nginx/nginx.conf test is successful
,則表示配置無語法錯誤;若有錯誤,需根據提示定位并修正(如拼寫錯誤、路徑不存在等)。
5. 重新加載Nginx
配置文件測試通過后,重新加載Nginx以應用更改(無需重啟服務,不影響正在處理的請求):
sudo systemctl reload nginx
也可使用sudo systemctl restart nginx
強制重啟,但推薦優先使用reload
。
6. 驗證反向代理功能
打開瀏覽器或使用curl
命令訪問http://yourdomain.com
,若配置正確,應能看到后端服務器的響應內容(如后端返回的HTML頁面、API數據等)。
7. 可選:配置HTTPS(推薦)
為提升安全性,建議為域名配置SSL/TLS證書(免費使用Let’s Encrypt)。執行以下命令安裝Certbot及Nginx插件:
sudo apt install certbot python3-certbot-nginx
然后通過Certbot獲取并自動配置證書:
sudo certbot --nginx -d yourdomain.com -d www.yourdomain.com
Certbot會自動修改Nginx配置,添加HTTPS監聽端口(443)及SSL證書路徑,并保留HTTP到HTTPS的重定向(可選)。按提示完成驗證后,即可通過https://yourdomain.com
訪問反向代理服務。