使用80端口统一部署前端:VITE_PUBLIC_PATH 与nginx后台代理设置

文章描述了如何部署一个新的前端系统并配置nginx代理,使得通过80端口访问/qmps/时,流量被转发到后台11003端口的/qmp/服务。关键步骤包括在前端设置VITE_PUBLIC_PATH,构建后将文件放入服务器的qmps目录,以及在nginx配置中添加代理规则将/qmps/请求映射到后台服务。

摘要生成于 C知道 ,由 DeepSeek-R1 满血版支持, 前往体验 >

1、系统资源结构情况

1.1、后台

11003端口
服务根路径是/qmp

后台服务端口与路径名

1.2、前端

已有系统使用80端口,根目录为E盘的dist文件夹
前端资源存放在E盘的dist文件夹下
nginx配置

server{
 listen 80;
 server_name servername;
 root E:\dist\
 index index.html index.htm;
}

2、实现

2.1、目标

部署新的系统前端,部署后通过nginx的80端口访问,对应本例中为:在浏览器里面输入:http://服务器IP/qmps能访问

2.2、前端Vue3 Build前设置VITE_PUBLIC_PATH

// production.env
VITE_PUBLIC_PATH =/qmps/

build命令时,会按照prod生产环境设置的路径配置,上面的配置路径应与build后要放置的文件夹名称一致。
即,前端build后,在服务器的E:\dist下新建文件夹qmps,将前端打包好的dist文件夹里面的内容拷贝到服务器的qmps目录下

2.3、nginx设置代理

添加如下到nginx配置。该配置实现在浏览器里面遇到带有qmps请求时自动转发到服务器的后端服务

location /qmps/ {
 #proxy_pass http://服务器IP:后端服务端口号/后端服务的名称/;
 proxy_pass http://服务器IP:11003/qmp/;
}

本例中涉及到的nginx conf配置:

server{
	 listen 80;
	 server_name servername;
	 root E:\dist\
	 index index.html index.htm;
	
	location /qmps/ {
	 #proxy_pass http://服务器IP:后端服务端口号/后端服务的名称/;
	 proxy_pass http://服务器IP:11003/qmp/;
	}
}

3、总结

1、nginx根目录下面建立存放前端的子文件夹qmps
2、前端打包时设置VITE_PUBLIC_PATH 为上述子文件夹名qmps
3、nginx设置代理,将qmps转发至后台服务
4、浏览器中输入http://服务器IP/qmps

### Fastify 后台配置服务器端使用方法 #### 1. **Fastify 基本概念** Fastify 是一种高性能的 Node.js Web 框架,专注于速度和低开销。它提供了简洁的 API 和强大的插件生态系统,使其成为构建高效后端服务的理想选择[^2]。 #### 2. **创建并启动一个基本的 Fastify 应用程序** 以下是初始化和运行一个简单的 Fastify 服务器的方法: ```javascript const fastify = require('fastify')({ logger: true }); // 定义路由 fastify.get('/', async (request, reply) => { return { hello: 'world' }; }); // 启动服务器 const start = async () => { try { await fastify.listen(3000); } catch (err) { fastify.log.error(err); process.exit(1); } }; start(); ``` 此代码片段展示了如何定义一个 GET 路由以及如何监听指定端口来启动服务器[^2]。 #### 3. **集成 Vite 到 Fastify 中** 为了支持现代化前端工具链(如 Vite),可以借助 `fastify-vite` 插件完成两者的无缝集成。具体操作如下所示: 安装依赖项: ```bash npm install fastify fastify-vite vite ``` 随后,在应用程序中引入该插件: ```javascript const fastify = require('fastify')(); async function main() { const server = fastify({ logger: true, }); // 注册 fastify-vite 插件 await server.register(require('fastify-vite'), { rootDir: __dirname, publicPath: '/public/', }); await server.listen(3000); } main().catch((error) => console.error(error)); ``` 这段脚本实现了将 Vite 集成至 Fastify 的功能[^1]。 #### 4. **反向代理设置** 如果需要为 Fastify 设置反向代理,则可以通过 Nginx 实现这一目标。下面是一个典型的 Nginx 配置文件示例: ```nginx server { listen 80; server_name localhost; location /api/ { proxy_pass http://localhost:3000/; proxy_http_version 1.1; proxy_set_header Upgrade $http_upgrade; proxy_set_header Connection 'upgrade'; proxy_set_header Host $host; proxy_cache_bypass $http_upgrade; } } ``` 上述配置会把所有 `/api/*` 请求转发给本地正在运行于 3000 端口上的 Fastify 实例处理[^3]。 #### 5. **其他框架对比** 相比其他流行的 JavaScript 后端框架比如 Express 或者 Nest.js ,Fastify 提供了更优性能的同时保持易用性和灵活性。例如,当结合 Sequelize ORM 使用时,它可以轻松应对复杂的数据库交互需求;而在架构设计方面则借鉴了 Clean Architecture 思想,从而提高了系统的可维护性扩展能力[^4]。 #### 6. **总结** 综上所述,Fastify 不仅具备出色的性能表现还拥有丰富的生态资源可供开发者选用。无论是初学者还是有经验的专业人士都能从中受益匪浅。
评论 1
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包

打赏作者

Higer2008

你的鼓励将是我创作的最大动力

¥1 ¥2 ¥4 ¥6 ¥10 ¥20
扫码支付:¥1
获取中
扫码支付

您的余额不足,请更换扫码支付或充值

打赏作者

实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值