在 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号