## 前言
Nginx 係一款高效能既網頁伺服器,同時支援反向代理功能。透過反向代理,你可以用一個 IP 同域名托管多個服務。
## 什麼係反向代理?
反向代理位於客戶端與後端伺服器之間,接收客戶端請求後轉發到相應既後端服務。
## 安裝 Nginx
“`bash
sudo apt update
sudo apt install -y nginx
sudo systemctl enable nginx
“`
## 基本反向代理設定
“`nginx
server {
listen 80;
server_name your-domain.com;
# 主站
location / {
proxy_pass http://127.0.0.1:80;
}
# Dashboard 反向代理
location /dashboard/ {
proxy_pass http://127.0.0.1:3000/;
proxy_set_header Host $host;
proxy_set_header X-Real-IP $remote_addr;
}
}
“`
## SSL 設定
“`bash
sudo apt install -y certbot python3-certbot-nginx
sudo certbot –nginx -d your-domain.com
“`
## 常用指令
“`bash
sudo nginx -t # 測試配置
sudo systemctl reload nginx
sudo systemctl restart nginx
“`
## 架構示例
| 路徑 | 實際服務 |
|——|———-|
| / | WordPress |
| /dashboard/ | 監控面板:3000 |
| /api/ | Node.js API:4000 |
## 疑難排解
| 問題 | 解決 |
|——|——|
| 502 Bad Gateway | 檢查後端服務 |
| 504 Timeout | 增加 timeout 設定 |
## 總結
Nginx 反向代理係托管多個服務既最佳方案。