You need to enable JavaScript to run this app.
优惠活动
大模型
产品
解决方案
定价
更多

如何配置Nginx使外部通过IP访问.NET项目的Swagger

配置Nginx实现外部设备访问.NET Swagger

一、先确保.NET项目允许外部访问Swagger

默认情况下,Swagger可能仅对localhost开放或在非开发环境被禁用,需先调整项目配置:

  1. 修改Program.cs中的Swagger配置,确保全环境启用(生产环境建议后续加权限控制):
builder.Services.AddSwaggerGen(c =>
{
    c.SwaggerDoc("v1", new OpenApiInfo { Title = "你的API服务", Version = "v1" });
});

// 启用Swagger及UI
app.UseSwagger();
app.UseSwaggerUI(c =>
{
    c.SwaggerEndpoint("/swagger/v1/swagger.json", "API V1");
    // 若希望直接通过根路径访问Swagger,取消下面注释:
    // c.RoutePrefix = string.Empty;
});
  1. 确保.NET项目监听所有IP地址:
    • 启动时使用命令:dotnet run --urls=http://0.0.0.0:5000(端口可自行修改)
    • 或在launchSettings.json中修改applicationUrl为http://0.0.0.0:5000

二、配置Nginx反向代理

  1. 打开Nginx配置目录(通常为/etc/nginx/conf.d/),新建配置文件(如swagger-proxy.conf)
  2. 添加以下反向代理配置:
server {
    listen 80; # 外部设备访问的端口
    server_name 你的系统局域网IP; # 例如192.168.3.10

    location / {
        proxy_pass http://localhost:5000; # 与.NET项目启动的地址/端口一致
        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

  • 检查配置语法正确性:nginx -t
  • 重启Nginx使配置生效:
    • 系统服务方式:systemctl restart nginx
    • 重载配置方式:nginx -s reload

四、外部设备访问测试

  1. 确保外部设备与你的系统处于同一局域网
  2. 在外部设备浏览器中输入:
    • 若Swagger使用默认路径:http://你的系统IP/swagger
    • 若设置了根路径访问:http://你的系统IP
  3. 能正常加载Swagger界面即为配置成功

注意事项

  • 开放系统防火墙端口:例如Ubuntu用ufw allow 80,CentOS用firewall-cmd --add-port=80/tcp --permanent && firewall-cmd --reload
  • 生产环境务必为Swagger添加身份验证,防止未授权访问
  • 确认.NET项目确实监听0.0.0.0而非仅localhost,否则Nginx无法转发请求

内容的提问来源于stack exchange,提问作者Sajad Nasiri

相关产品推荐
方舟 Agent Plan

超全模态模型 × Harness 升级,最新支持 Deepseek-V4.1-Flash、GLM-5.3 系列、Doubao-Seedream-5.0-pro、Kimi-K3 (部分), 限时 9.9 元起

最近更新时间:2026.08.11 04:35:28