插件窝 干货文章 Windows安装nginx1.10.1反向代理访问IIS网站的方法

Windows安装nginx1.10.1反向代理访问IIS网站的方法

Nginx 配置 端口 IIS 941    来源:    2025-04-22

Windows下安装Nginx 1.10.1作为IIS反向代理的配置方法

安装Nginx 1.10.1

  1. 下载Nginx

    • 访问Nginx官方下载页面:http://nginx.org/download/
    • 下载nginx-1.10.1版本(Windows版)
  2. 安装Nginx

    • 解压下载的zip文件到任意目录(例如:C:\nginx
    • 不需要运行安装程序,解压即可使用
  3. 测试运行

    • 打开命令提示符,进入Nginx目录
    • 执行命令:start nginx
    • 打开浏览器访问 http://localhost,应该能看到Nginx欢迎页面

配置Nginx作为IIS反向代理

  1. 修改Nginx配置文件
    • 打开conf/nginx.conf文件
    • http块内添加或修改server配置:
server {
    listen       80;
    server_name  yourdomain.com;  # 替换为你的域名或IP

    location / {
        proxy_pass http://localhost:8080;  # IIS默认端口或你的IIS站点端口
        proxy_set_header Host $host;
        proxy_set_header X-Real-IP $remote_addr;
        proxy_set_header X-Forwarded-For $proxy_add_x_forwarded_for;
        proxy_set_header X-Forwarded-Proto $scheme;
    }

    # 可选:静态文件直接由Nginx处理
    location ~* \.(jpg|jpeg|gif|png|ico|css|js|pdf|txt)$ {
        root /path/to/your/iis/static/files;  # 替换为实际路径
        expires 30d;
    }
}
  1. IIS配置调整

    • 确保IIS站点绑定到Nginx配置中指定的端口(如8080)
    • 如果使用ASP.NET应用,可能需要修改web.config处理反向代理头信息
  2. 测试配置

    • 在Nginx目录下运行:nginx -t 检查配置是否正确
    • 重新加载配置:nginx -s reload

常见问题解决

  1. 端口冲突

    • 确保Nginx和IIS不使用相同端口
    • 检查端口占用:netstat -ano | findstr :80
  2. 403禁止访问

    • 检查Nginx工作进程是否有权限访问IIS站点
    • 检查IIS是否允许来自Nginx服务器的请求
  3. 静态文件不加载

    • 确保Nginx配置中的静态文件路径正确
    • 检查文件权限
  4. 保持服务运行

    • 可以创建Windows服务来管理Nginx: sc create nginx binPath= "C:\nginx\nginx.exe" start= auto

高级配置(可选)

  1. 负载均衡
upstream iis_servers {
    server localhost:8080;
    server localhost:8081;
}

server {
    location / {
        proxy_pass http://iis_servers;
    }
}
  1. SSL终止
server {
    listen 443 ssl;
    ssl_certificate     cert.pem;
    ssl_certificate_key cert.key;

    location / {
        proxy_pass http://localhost:8080;
    }
}

完成以上配置后,Nginx将作为反向代理接收外部请求并转发到IIS服务器。