检查一下编译产物:
Test-Path dist/main.js # 或者 dist/src/main.js看你的配置如果返回True说明编译成功了。 实在不行你也可以在本地编译好了把整个dist文件夹直接上传到服务器跳过服务器上编译这一步。四、用 PM2 启动后端1. 写 PM2 配置文件在项目的根目录比如C:\wwwroot\my-node-project下新建一个文件叫ecosystem.config.js内容如下module.exports { apps: [ { name: my-node-backend, // 给你的应用起个好认的名字 cwd: ./backend, // 入口文件在哪个目录按你实际的改 script: dist/main.js, // 编译后的入口文件 instances: 1, autorestart: true, watch: false, max_memory_restart: 500M, env: { NODE_ENV: production, PORT: 3000, }, error_file: ./logs/backend-error.log, out_file: ./logs/backend-out.log, log_date_format: YYYY-MM-DD HH:mm:ss, }, ], }; 别忘了先创建logs文件夹mkdir C:\wwwroot\my-node-project\backend\logs2. 启动应用cd C:\wwwroot\my-node-project pm2 start ecosystem.config.js pm2 save3. 看看到底跑起来没有pm2 status你应该会看到类似这样的输出只要status是online就说明成了。4. 本地测试一下接口curl http://localhost:3000/api/health # 换成你项目里真实存在的接口如果返回了数据哪怕是 401 未授权也没关系起码说明服务在跑就恭喜你Node 程序已经在后台欢快地工作了。五、配置 HTTPS 反向代理用 Caddy为啥要搞这个因为你的前端比如部署在 Vercel强制用了 HTTPS而浏览器有个安全策略HTTPS 页面不能去请求 HTTP 接口否则会报 Mixed Content 错误。所以你的后端也必须通过 HTTPS 对外暴露。但是你服务器上可能已经有 IIS 或者其他服务占用了 80 和 443 端口。所以我们换个思路用 Caddy 监听一个高位端口比如 8443手动挂上 SSL 证书这样就不会跟 IIS 打架了。1. 下载 Caddy在 PowerShell 里执行Invoke-WebRequest -Uri https://github.com/caddyserver/caddy/releases/download/v2.9.1/caddy_2.9.1_windows_amd64.zip -OutFile $env:TEMP\caddy.zip New-Item -Path C:\caddy -ItemType Directory -Force Expand-Archive $env:TEMP\caddy.zip -DestinationPath C:\caddy -Force2. 搞一张免费 SSL 证书以阿里云为例登录阿里云控制台搜索“SSL 证书”点“免费证书” → “立即购买”0 元选“DV 单域名证书”证书绑定的域名写你的 API 域名比如api.yourdomain.com验证方式选 DNS如果你的域名也在阿里云它会自动帮你添加 TXT 记录签发成功后下载证书格式选Nginx你会得到两个文件.pem证书和.key私钥把这两个文件放到C:\caddy\目录下像这样C:\caddy\api.yourdomain.com.pem C:\caddy\api.yourdomain.com.key3. 配置 DNS 解析去你的域名管理后台加一条A 记录主机记录记录类型记录值apiA你服务器的公网 IP等几分钟让解析生效可以用这条命令验证Resolve-DnsName api.yourdomain.com应该会返回你的公网 IP。4. 写 Caddyfile在C:\caddy\目录下新建一个文件就叫Caddyfile没有扩展名内容如下{ auto_https off } api.yourdomain.com:8443 { tls C:\caddy\api.yourdomain.com.pem C:\caddy\api.yourdomain.com.key reverse_proxy localhost:3000 }⚠️ 这一行的auto_https off千万不能少不然 Caddy 会试图去占 80 端口做自动重定向然后就报错了。5. 测试一下 Caddy 能不能跑cd C:\caddy .\caddy.exe run --config Caddyfile --resumefalse如果你看到了server running并且没有报错那就成功了。按CtrlC先停掉。6. 让 Caddy 开机自启用任务计划关掉刚才的 Caddy 窗口然后以管理员身份打开 PowerShell执行下面这一大坨命令$action New-ScheduledTaskAction -Execute C:\caddy\caddy.exe -Argument run --config C:\caddy\Caddyfile -WorkingDirectory C:\caddy $trigger New-ScheduledTaskTrigger -AtStartup $settings New-ScheduledTaskSettingsSet -AllowStartIfOnBatteries -DontStopIfGoingOnBatteries -StartWhenAvailable -RestartCount 5 -RestartInterval (New-TimeSpan -Minutes 1) Register-ScheduledTask -TaskName Caddy-API-Proxy -Action $action -Trigger $trigger -Settings $settings -RunLevel Highest -Force Start-ScheduledTask -TaskName Caddy-API-Proxy检查一下 8443 端口是不是已经在监听了netstat -ano | findstr :8443应该会显示LISTENING。7. 开放防火墙端口netsh advfirewall firewall add rule nameAllow HTTPS 8443 dirin actionallow protocolTCP localport8443另外如果你的云服务器还有安全组阿里云叫安全组规则也要去控制台添加入方向规则允许 TCP 8443。8. 测试 HTTPS 接口打开浏览器或者直接敲命令curl https://api.yourdomain.com:8443/api/health如果能返回数据哪怕是 401就说明 HTTPS 反向代理大功告成了。六、日常更新代码的流程以后每次改了代码在服务器上走这几步

相关新闻

为什么BiliBiliCCSubtitle是B站字幕处理的最佳解决方案

为什么BiliBiliCCSubtitle是B站字幕处理的最佳解决方案

为什么BiliBiliCCSubtitle是B站字幕处理的最佳解决方案 【免费下载链接】BiliBiliCCSubtitle 一个用于下载B站(哔哩哔哩)CC字幕及转换的工具; 项目地址: https://gitcode.com/gh_mirrors/bi/BiliBiliCCSubtitle 在B站海量视频内容中,CC字幕(Close…

2026/7/9 8:20:19阅读更多 →
Unlock-Music终极教程:5分钟学会解锁加密音乐,实现音乐自由播放

Unlock-Music终极教程:5分钟学会解锁加密音乐,实现音乐自由播放

Unlock-Music终极教程:5分钟学会解锁加密音乐,实现音乐自由播放 【免费下载链接】unlock-music 在浏览器中解锁加密的音乐文件。原仓库: 1. https://github.com/unlock-music/unlock-music ;2. https://git.unlock-music.dev/um/w…

2026/7/9 8:15:19阅读更多 →
AMD MI355X与GLM5.2:高性价比AI推理方案的成本效益分析

AMD MI355X与GLM5.2:高性价比AI推理方案的成本效益分析

🚀 30款热门AI模型一站整合,DeepSeek/GLM/Qwen 随心用,限时 5 折。 👉 点击领海量免费额度 如果你正在为AI推理服务的成本问题头疼,特别是面对NVIDIA Blackwell架构的高昂价格时,那么AMD MI355X与GLM5.2…

2026/7/9 8:15:19阅读更多 →
MyComputerManager终极指南:如何彻底清理Windows“此电脑“中的顽固图标

MyComputerManager终极指南:如何彻底清理Windows“此电脑“中的顽固图标

MyComputerManager终极指南:如何彻底清理Windows"此电脑"中的顽固图标 【免费下载链接】MyComputerManager 管理“此电脑”里删不掉的流氓“快捷方式”(包括侧边栏),同时可自己添加这类“快捷方式” 项目地址: https:…

2026/7/9 9:20:31阅读更多 →
pandas 内存优化:read_csv 的 dtype 参数能省一半内存

pandas 内存优化:read_csv 的 dtype 参数能省一半内存

pandas 内存优化:read_csv 的 dtype 参数能省一半内存公司那台 16G 内存的开发机,被一个 800M 的 CSV 文件干到 OOM。排查了一圈才发现,pandas 默认推断类型这件事,偷偷多吃了一倍的内存。今天用实际案例聊聊 dtype 参数怎么给数据…

2026/7/9 9:20:31阅读更多 →
ESLint 自定义规则实战:用 AST 分析封堵团队特有的代码坏味道

ESLint 自定义规则实战:用 AST 分析封堵团队特有的代码坏味道

ESLint 自定义规则实战:用 AST 分析封堵团队特有的代码坏味道 一、通用 Lint 规则的盲区:为什么团队特有的"坏习惯"永远被漏掉 ESLint 有数百条内置规则和社区插件。no-unused-vars、no-console、prefer-const 这些通用规则覆盖了 80% 的常见…

2026/7/9 9:20:29阅读更多 →
ARIMA模型实战:Python statsmodels 0.14 电商销量预测,MAPE误差降至8%

ARIMA模型实战:Python statsmodels 0.14 电商销量预测,MAPE误差降至8%

ARIMA模型实战:Python statsmodels 0.14 电商销量预测,MAPE误差降至8% 1. 电商销量预测的业务挑战与ARIMA解决方案 在电商运营中,精准的销量预测是库存管理、营销策略和供应链优化的核心。传统方法如移动平均或简单指数平滑往往难以捕捉销售…

2026/7/9 9:20:29阅读更多 →
web应用课程设计最终项目展示

web应用课程设计最终项目展示

云边书屋|基于Spring BootVue3的前后端分离图书管理系统一、项目简介 云边书屋是一款Spring Boot Vue3开发的前后端分离在线书库管理系统,项目寓意“于云端书海之畔,打造极简治愈的线上阅读空间”。系统兼具用户阅读体验与后台管理能力&…

2026/7/9 9:20:28阅读更多 →
京东app 滑块验证码逆向分析

京东app 滑块验证码逆向分析

声明 本文章中所有内容仅供学习交流使用,不用于其他任何目的,抓包内容、敏感网址、数据接口等均已做脱敏处理,严禁用于商业用途和非法用途,否则由此产生的一切后果均与作者无关!有相关问题请第一时间点击头像看简介或私…

2026/7/9 9:15:27阅读更多 →
从GitHub安全案例解析常见漏洞与防护实践

从GitHub安全案例解析常见漏洞与防护实践

1. 项目概述:从GitHub Trending看安全实战 最近在GitHub Trending上看到一个项目,叫 skills4/skills ,它因为一些安全漏洞案例被大家讨论。这其实是一个挺典型的场景:一个旨在展示或教授某种技能的仓库,本身却成了安…

2026/7/9 5:56:19阅读更多 →
MLT 2026启示:因果推理与概率建模驱动下一代LLM应用

MLT 2026启示:因果推理与概率建模驱动下一代LLM应用

# MLT 2026启示:因果推理与概率建模驱动下一代LLM应用## 一、背景与挑战:从“黑箱预测”到“可信推理”2026年6月,第7届机器学习与趋势国际会议(MLT 2026)将在悉尼召开。会议议程中,“因果与可解释机器学习…

2026/7/8 7:00:12阅读更多 →
通达OA SQL注入漏洞深度剖析:从手工注入到自动化利用与防御

通达OA SQL注入漏洞深度剖析:从手工注入到自动化利用与防御

1. 项目概述与漏洞背景最近在梳理一些历史OA系统的安全风险时,通达OA v11.6版本中的一个老漏洞又进入了我的视线。这个漏洞位于/general/bi_design/appcenter/report_bi.func.php文件中,是一个典型的SQL注入点。虽然这个漏洞的利用方式看起来并不复杂&am…

2026/7/9 2:47:07阅读更多 →
Three.js 着色器光效教程

Three.js 着色器光效教程

着色器光效 Shader Light ▶ 在线运行案例 案例合集: 三维可视化功能案例(threehub.cn)开源仓库github地址: https://github.com/z2586300277/three-cesium-examples400个案例代码: 网盘链接 你将学到什么 ShaderMaterial 自…

2026/7/9 0:04:37阅读更多 →
如何5分钟掌握CS2智能库存管理:开源工具CASEMOVE终极指南

如何5分钟掌握CS2智能库存管理:开源工具CASEMOVE终极指南

如何5分钟掌握CS2智能库存管理:开源工具CASEMOVE终极指南 【免费下载链接】casemove A dedicated desktop app that enables you to move items in and out of storage units in CS2. 项目地址: https://gitcode.com/gh_mirrors/ca/casemove 还在为CS2存储单…

2026/7/9 0:04:37阅读更多 →
GBase 8a vs MySQL 8.0:ALTER TABLE语法与限制的5点关键差异对比

GBase 8a vs MySQL 8.0:ALTER TABLE语法与限制的5点关键差异对比

GBase 8a与MySQL 8.0:ALTER TABLE语法差异深度解析与实战指南1. 两种数据库的ALTER TABLE能力全景对比在数据库架构设计和运维过程中,表结构变更(DDL操作)是不可避免的需求。GBase 8a作为国产分析型数据库代表,与开源M…

2026/7/9 0:04:37阅读更多 →
YOLOv8推理性能优化:从1.2FPS到35FPS的全链路加速实践

YOLOv8推理性能优化:从1.2FPS到35FPS的全链路加速实践

如果你在部署 YOLOv8 时,发现推理速度只有可怜的 1-2 FPS,而别人的演示视频却能跑到 30 FPS 以上,那么问题很可能不在模型本身,而在于你的整个处理链路。很多开发者拿到一个训练好的 YOLOv8 模型后,会直接使用官方示例…

2026/7/8 6:59:54阅读更多 →
Coze与Dify对比指南:低代码AI应用开发从入门到实战

Coze与Dify对比指南:低代码AI应用开发从入门到实战

1. 从零到一:为什么你需要了解 Coze 和 Dify?如果你对 AI 应用开发感兴趣,但一看到“大模型”、“智能体”、“工作流”这些词就头疼,觉得门槛太高,那这篇文章就是为你准备的。很多开发者,包括我自己&#…

2026/7/8 13:42:39阅读更多 →
AI生图工具怎么选?2026年6月版实测对比

AI生图工具怎么选?2026年6月版实测对比

做自媒体的朋友应该都有体会:配图一直是个让人头疼的问题。2026年,AI生图工具已经非常成熟了,但工具太多反而不知道怎么选。以下是截至2026年6月我对主流AI生图工具的实测对比。Midjourney V8.1:速度之王2026年6月11日&#xff0c…

2026/7/8 13:42:39阅读更多 →