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

如何修改launchsettings.json及前端代码部署本地运行的ASP.NET Core API

ASP.NET Core 后端 + NGINX 部署联调配置方案

首先纠正一个误区:launchSettings.json 仅在本地开发运行时生效,生产环境部署不需要修改这个文件的配置。

1. 后端服务配置

  • 发布ARM架构Linux版本的生产包,发布时环境选择Production,不要用开发环境配置。
  • 后端服务启动时,直接让Kestrel监听本地回环地址的闲置端口即可,不需要绑定公网IP、域名,也不需要在后端层配置HTTPS证书,HTTPS卸载统一交给NGINX处理。
  • 如果你用systemd管理后端服务,直接在service配置文件里通过环境变量指定监听地址即可,示例配置:
[Service]
WorkingDirectory=/var/www/stratego-api
ExecStart=/usr/bin/dotnet /var/www/stratego-api/Stratego.Api.dll
Restart=always
# 监听本地127.0.0.1的5000端口,不对外暴露
Environment=ASPNETCORE_URLS=http://127.0.0.1:5000
Environment=ASPNETCORE_ENVIRONMENT=Production
  • 在后端项目的请求管道最前端(Program.cs/Startup.cs里,所有其他中间件注册之前)添加转发头中间件,避免反向代理场景下后端获取请求协议、客户端IP出错:
app.UseForwardedHeaders(new ForwardedHeadersOptions
{
    ForwardedHeaders = ForwardedHeaders.XForwardedFor | ForwardedHeaders.XForwardedProto
});

2. NGINX反向代理配置

你已经用NGINX部署了前端,直接给API加同域反向代理规则即可,不需要单独给后端分配域名、开放公网端口,也不会产生跨域问题:

  • 在现有前端站点的NGINX server配置块中,添加/api路径的转发规则:
location /api {
    proxy_pass http://127.0.0.1:5000;
    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;
    # 如果项目用了WebSocket(比如SignalR),额外加下面两行配置
    proxy_set_header Upgrade $http_upgrade;
    proxy_set_header Connection "upgrade";
}
  • 执行nginx -t验证配置无错后,执行nginx -s reload重载配置生效。

3. 前端代码修改

不要在前端代码里写死完整的带域名、端口的请求地址,直接用相对路径即可,不管后续域名、端口怎么调整都不需要改前端代码。你示例中的请求代码修改为:

get('/api/Game/' + localStorage.getItem("gameId") + '/board', headers)
        .then(response => {
            response.text().then(async function (message) {
                let parsed = JSON.parse(message);
                if (!containsBoard()) {
                    createBoard(parsed.squares, parsed.size);
                }
            });
        });

避坑提示

  • 不要把后端直接绑定到0.0.0.0:5000然后让前端直接请求域名:5000,这种方案需要单独开放防火墙端口,HTTPS配置繁琐,还容易触发跨域问题,稳定性和维护性远不如反向代理方案。
  • 同域反向代理场景下不需要额外配置CORS策略,生产环境记得移除开发阶段加的允许所有源的CORS配置,避免安全风险。

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

相关产品推荐
方舟 Agent Plan

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

最近更新时间:2026.08.26 22:24:17