在 Windows 系統的云服務器上實現反向代理二:使用Nginx for Windows進行反向代理
在 Windows 系統的云服務器上實現反向代理,可以通過 Nginx for Windows 或 IIS(Windows 自帶) 配置,以下是詳細步驟(推薦 Nginx,配置更輕量靈活):
前提條件
- 確保云服務器能訪問實體服務器的內網 IP 和 Web 端口(如實體服務器 IP 為
192.168.1.100,Web 服務端口為 80)。- 若兩者不在同一局域網,需先通過 VPN 等方式建立網絡連通(參考 在 Windows 系統的云服務器上實現反向代理一:使用ZEROTIER將云服務器與實體服務器進行VPN組網 - 勤奮的二牛 - 博客園,確保云服務器能 ping 通實體服務器)。
- 實體服務器已部署 Web 服務(如 IIS、Apache、Nginx),且端口正常監聽(默認 80/443)。
方案:使用 Nginx for Windows 實現反向代理
步驟 1:安裝 Nginx for Windows
- 下載 Nginx Windows 版本:
官網地址:nginx.org/download/,選擇最新穩定版(如nginx-1.25.3.zip)。 - 解壓到云服務器的本地目錄(如
C:\nginx)
步驟 2:配置反向代理規則
- 打開配置文件:
C:\nginx\conf\nginx.conf(用記事本或 VS Code 編輯)。 - 找到
http { ... }塊中的server { ... }節點,替換為以下內容(核心配置):http { include mime.types; default_type application/octet-stream; sendfile on; keepalive_timeout 65; # 反向代理配置:將云服務器的80端口請求轉發到實體服務器 server { listen 80; # 云服務器監聽的端口(HTTP默認80) server_name _; # 若綁定域名,替換為你的域名(如 example.com) # 所有請求轉發到實體服務器 location / { proxy_pass http://192.168.1.100:80; # 實體服務器的內網IP和Web端口 proxy_set_header Host $host; # 傳遞原始請求的Host頭 proxy_set_header X-Real-IP $remote_addr; # 傳遞客戶端真實IP proxy_set_header X-Forwarded-For $proxy_add_x_forwarded_for; } # 錯誤頁面配置(可選) error_page 500 502 503 504 /50x.html; location = /50x.html { root html; } } # 配置HTTPS(可選,推薦) # server { # listen 443 ssl; # server_name example.com; # 綁定的域名 # ssl_certificate C:/nginx/ssl/cert.pem; # SSL證書路徑 # ssl_certificate_key C:/nginx/ssl/key.pem; # 證書私鑰路徑 # location / { # proxy_pass http://192.168.1.100:80; # 同上,轉發到實體服務器 # proxy_set_header Host $host; # proxy_set_header X-Real-IP $remote_addr; # } # } }
- 關鍵參數說明:
proxy_pass:必須填寫實體服務器的 內網 IP+Web 端口(如http://192.168.1.100:80),確保云服務器能訪問該地址。- 若實體服務器 Web 端口不是 80,需同步修改(如
http://192.168.1.100:8080)。
- 關鍵參數說明:
步驟 3:啟動 Nginx 并測試配置
啟動 Nginx:
進入 Nginx 目錄:雙擊nginx.exe打開或者使用cmd命令打開,使用管理員身份打開控制臺,然后使用cd進入到nginx的解壓目錄:nginx.exe
驗證是否啟動成功:打開任務管理器,查看是否有 nginx.exe進程;或訪問 http://127.0.0.1(云服務器本地),若顯示 “502 Bad Gateway”(實體服務器未連通)或實體服務器的網頁,則配置生效。
- 如果需要修改Nginx配置,啟動或者重啟可以使用cmd命令,使用管理員身份打開控制臺,然后使用cd進入到nginx的解壓目錄:
- 重啟:niginx.exe -s reload
- 停止:nginx.exe -s stop
步驟 4:配置 Windows 防火墻(允許外部訪問)
云服務器需要開放 80(HTTP)和 443(HTTPS,若配置)端口,否則外部無法訪問:
- 打開 “控制面板 → 系統和安全 → Windows Defender 防火墻 → 高級設置”。
- 左側選擇 “入站規則”,右側點擊 “新建規則”:
- 規則類型:選擇 “端口” → 下一步。
- 協議和端口:選擇 “TCP”,填寫 “特定本地端口”(如 80,若配置 HTTPS 則加 443,用逗號分隔) → 下一步。
- 操作:選擇 “允許連接” → 下一步。
- 配置文件:默認全選(域、專用、公用) → 下一步。
- 名稱:填寫 “允許 HTTP/HTTPS” → 完成。
步驟 5:驗證訪問
- 在本地電腦瀏覽器中輸入 云服務器的公網 IP(如
http://1.2.3.4),若能顯示實體服務器的網頁,則反向代理成功。 - 若訪問失敗,排查方向:
- 云服務器是否能 ping 通實體服務器的內網 IP(如
ping 192.168.1.100)。 - 實體服務器防火墻是否允許來自云服務器 IP 的 80 端口訪問(需在實體服務器添加入站規則)。
- Nginx 配置是否正確(檢查
proxy_pass地址是否錯誤,日志文件C:\nginx\logs\error.log可查錯)。
- 云服務器是否能 ping 通實體服務器的內網 IP(如

浙公網安備 33010602011771號