如何将Express后端部署到本地服务器并调整访问路径
Express 调整访问路径为 http://localhost/backend 操作方案
以下提供两种适配不同场景的实现方案:
方案一:直接修改Express代码(适合本地开发)
- 第一步:修改服务监听端口为80(http协议默认端口,访问时无需额外加端口号)
注意:1024以下端口需要系统管理员/root权限,Windows系统启动终端时请选择「以管理员身份运行」,Linux/macOS系统请加sudo前缀启动服务,避免权限不足报错
基础代码示例:const express = require('express') const app = express() // 把原来的3000端口改为80 const port = 80 - 第二步:给所有接口统一添加/backend路径前缀
新项目可直接通过Router挂载前缀,示例如下:
旧项目不想修改原有路由写法的,可以直接把原有服务实例作为中间件挂载,示例如下:// 声明路由实例,原有所有路由都挂载到该实例上 const backendRouter = express.Router() // 原路由写法保持不变,无需修改路径 backendRouter.get('/list', (req, res) => { res.json({code: 200, data: []}) }) // 给所有路由统一添加/backend前缀 app.use('/backend', backendRouter) app.listen(port, () => { console.log(`服务已启动,访问地址:http://localhost`) })// 引入已经写完全部路由的原有服务实例 const oldApp = require('./your-old-app') const newApp = express() // 统一挂载前缀 newApp.use('/backend', oldApp) newApp.listen(80)
配置完成后直接启动服务,访问http://localhost/backend/xxx即可匹配到原有接口。
方案二:Nginx反向代理(推荐生产环境使用,无需修改原Express代码)
该方案无需改动现有Express服务,原服务可继续监听3000端口,通过Nginx做请求转发实现路径调整:
- 第一步:保证原Express服务正常运行在
http://localhost:3000 - 第二步:修改Nginx配置文件nginx.conf,在http块内添加如下server配置:
server { listen 80; server_name localhost; location /backend { # 末尾的斜杠代表转发时去掉/backend前缀,如需保留前缀可删除斜杠 proxy_pass http://localhost:3000/; proxy_set_header Host $host; proxy_set_header X-Real-IP $remote_addr; proxy_set_header X-Forwarded-For $proxy_add_x_forwarded_for; } } - 第三步:重启Nginx服务使配置生效,之后访问
http://localhost/backend/xxx会自动转发到原3000端口的对应接口。
内容的提问来源于stack exchange,提问作者Raihan Rahman
相关产品推荐
相关产品推荐

