在 Windows 系统的云服务器上实现反向代理二:使用Nginx for Windows进行反向代理

在 Windows 系统的云服务器上实现反向代理,可以通过 Nginx for Windows 或 IIS(Windows 自带) 配置,以下是详细步骤(推荐 Nginx,配置更轻量灵活):

前提条件

  1. 确保云服务器能访问实体服务器的内网 IP 和 Web 端口(如实体服务器 IP 为 192.168.1.100,Web 服务端口为 80)。
  2. 实体服务器已部署 Web 服务(如 IIS、Apache、Nginx),且端口正常监听(默认 80/443)。

方案:使用 Nginx for Windows 实现反向代理

步骤 1:安装 Nginx for Windows

  1. 下载 Nginx Windows 版本:
    官网地址:nginx.org/download/,选择最新稳定版(如 nginx-1.25.3.zip)。
  2. 解压到云服务器的本地目录(如 C:\nginx

步骤 2:配置反向代理规则

  1. 打开配置文件:C:\nginx\conf\nginx.conf(用记事本或 VS Code 编辑)。
  2. 找到 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,若配置)端口,否则外部无法访问:
 
  1. 打开 “控制面板 → 系统和安全 → Windows Defender 防火墙 → 高级设置”。
  2. 左侧选择 “入站规则”,右侧点击 “新建规则”:
    • 规则类型:选择 “端口” → 下一步。
    • 协议和端口:选择 “TCP”,填写 “特定本地端口”(如 80,若配置 HTTPS 则加 443,用逗号分隔) → 下一步。
    • 操作:选择 “允许连接” → 下一步。
    • 配置文件:默认全选(域、专用、公用) → 下一步。
    • 名称:填写 “允许 HTTP/HTTPS” → 完成。

步骤 5:验证访问

  1. 在本地电脑浏览器中输入 云服务器的公网 IP(如 http://1.2.3.4),若能显示实体服务器的网页,则反向代理成功。
  2. 若访问失败,排查方向:
    • 云服务器是否能 ping 通实体服务器的内网 IP(如 ping 192.168.1.100)。
    • 实体服务器防火墙是否允许来自云服务器 IP 的 80 端口访问(需在实体服务器添加入站规则)。
    • Nginx 配置是否正确(检查 proxy_pass 地址是否错误,日志文件 C:\nginx\logs\error.log 可查错)。
posted @ 2025-10-29 16:24  勤奋的二牛  阅读(6)  评论(0)    收藏  举报