Nginx部署前端vue后端express项目步骤细节

简介: Nginx部署前端vue后端express项目步骤细节
项目前端使用vue画页面、后端使用express写接口。部署项目之前,要做好准备工作。要把前端的vue项目 npm run build打包生成一个 dist文件夹,同时也要把nginx安装好。我们接着往下阅读步骤:

第一步

首先找到nginx安装的目录,然后修改nginx的服务配置文件,是在nginx安装目录里的conf文件夹中的nginx.conf这个文件,我们使用vscode打开,并加上一个serve{}配置我们所需要的反向代理,接下来就是写对应nginx配置代码了

第二步

我们比较喜欢 5678这个数字,于是我们就把自己电脑上的 5678这个端口开放给用户使用。即:我们使用nginx这个工具(哨兵)监听本机的5678这个端口,当有用户来访问这个端口的时候,我们就给到相应的反馈。

所以对应nginx代码:listen 5678

第三步

假设我们电脑的ip10.9.26.121,因为我们用自己的电脑当做服务器部署项目。

所以对应nginx代码: server_name 10.9.26.121

第四步

当用户访问我们的ip端口时,即:用户访问:10.9.26.121:5678的时候,因为哨兵工具nginx在时时刻刻监听监视这个ip端口。所以nginx收到ip端口的访问请求时,就会把请求转发到,或者说定位location到我们前端vue项目打包好的dist文件中去。dist文件夹中的存放的是我们写好的前端页面代码,代码解析执行,用户即可看到前端页面。因为程序执行需要找到对应的文件代码位置,所以root就是对应前端打包代码dist存放的位置。至于dist入口,肯定是index.html不需赘述。对应nginx代码如下:

location / { 
    root D:/nginx-1.18.0/html/personManage/dist; 
    index index.html; 
}

比如上述的root是,我把vue打包的dist文件放在电脑D磁盘中的这个目录位置D:/nginx-1.18.0/html/personManage/dist 但是注意,这里有一个坑:如果我们直接在文件地址栏复制dist文件地址位置,复制的结果是不对的。如下图这样的错误操作:

1.gif

我们最终复制到的是这样的地址: D:\nginx-1.18.0\html\personManage,如果我们直接把这个地址放在root后面,运行nginx以后,会显示 500 Internal Server Error,因为这里是去文件夹里面找程序代码,所以需要用正斜杠 /,这样的话nginx才能识别,即,解决方案为:

修改成:D:/nginx-1.18.0/html/personManage/dist(毕竟windows喜欢用反斜杠\,但是Nginx只使用正斜杠/

第五步

又因为,前端vue项目中ajax交互跨域解决方案使用的是vue.config.js中的devServer中proxy代理,所以nginx中还需要一个location去处理,前端跨域请求转发的问题,所以proxy中的跨域转发前缀要和nginx中的跨域转发前缀保持一致,页面接口交互才能正常实现。图示如下:

2.png

最终nginx代码

# personManage项目 history路由模式
server {
    listen    5678; # 给用户使用5678端口并监听
    server_name    10.9.26.121; # 本机服务器ip地址为:10.9.26.121
    client_max_body_size 100m; # 上传大文件的配置,nginx默认20M容量,想要上传更大文件,就要额外设置
    location / { # 定位具体的文件入口
        try_files $uri $uri/ /index.html; # 解决vue中history路由模式,部署后刷新页面404问题,hash路由模式则不需要
        root D:/nginx-1.18.0/html/personManage/dist; # 前端代码dist文件所在磁盘目录位置
        index index.html; # dist文件夹中的入口文件index.html
    }
    location /api/ { # 处理前端跨域转发请求
        # 我们后端express服务启用的端口是9999,所以这里就转发到这个地址
        proxy_pass http://10.9.26.121:9999/;
        # 下面三句话是用来获取用户访问的ip的
        proxy_set_header Host $host;
        proxy_set_header X-Real-IP $remote_addr;
        proxy_set_header X-Forwarded-For $remote_addr;
    }
}
后端express启用的是9999端口,代码:

app.listen(9999, (req,res) => { console.log('后端服务端口地址为:localhost://9999') } )

第六步

因为后端我们使用的是node中的express框架,不是java中的springboot框架什么的,不需要打一个jav包,我们只需要在express中使用pm2插件去管理我们的后端项目即可。

6.1 全局安装pm2

npm install -g pm2

6.2 使用pm2启动express项目

之前我们启动express项目使用的命令是node app.js,但是有局限,所以我们使用pm2这个插件去管理后端的express项目。pm2功能挺强大的,包括开机自启动项目、停止项目、进程管理、负载均衡、日志查看等功能,而node app.js只能启动项目,所以还是要使用pm2更加方便管理。

全局安装好pm2以后,我们执行pm2 -v命令能查看到版本号,就说明我们已经安装成功了,然后执行pm2 start app.js启动项目。出现下图,就说明我们服务启动好了,然后用户就可以正常访问了

333.png

总结

上述就是nginx部署一个vue+express项目的流程步骤。如果大家想进一步了解pm2插件的使用细节,可以去pm2官网看看。附上传送门:https://pm2.keymetrics.io/

相关文章
|
2月前
|
负载均衡 监控 应用服务中间件
配置Nginx反向代理时如何指定后端服务器的权重?
配置Nginx反向代理时如何指定后端服务器的权重?
173 61
|
20天前
|
开发框架 小程序 前端开发
圈子社交app前端+后端源码,uniapp社交兴趣圈子开发,框架php圈子小程序安装搭建
本文介绍了圈子社交APP的源码获取、分析与定制,PHP实现的圈子框架设计及代码编写,以及圈子小程序的安装搭建。涵盖环境配置、数据库设计、前后端开发与接口对接等内容,确保平台的安全性、性能和功能完整性。通过详细指导,帮助开发者快速搭建稳定可靠的圈子社交平台。
150 18
|
1月前
|
机器学习/深度学习 前端开发 算法
婚恋交友系统平台 相亲交友平台系统 婚恋交友系统APP 婚恋系统源码 婚恋交友平台开发流程 婚恋交友系统架构设计 婚恋交友系统前端/后端开发 婚恋交友系统匹配推荐算法优化
婚恋交友系统平台通过线上互动帮助单身男女找到合适伴侣,提供用户注册、个人资料填写、匹配推荐、实时聊天、社区互动等功能。开发流程包括需求分析、技术选型、系统架构设计、功能实现、测试优化和上线运维。匹配推荐算法优化是核心,通过用户行为数据分析和机器学习提高匹配准确性。
96 3
|
2月前
|
缓存 负载均衡 JavaScript
构建高效后端服务:Node.js与Express框架实践
在数字化时代的浪潮中,后端服务的重要性不言而喻。本文将通过深入浅出的方式介绍如何利用Node.js及其强大的Express框架来搭建一个高效的后端服务。我们将从零开始,逐步深入,不仅涉及基础的代码编写,更会探讨如何优化性能和处理高并发场景。无论你是后端新手还是希望提高现有技能的开发者,这篇文章都将为你提供宝贵的知识和启示。
|
2月前
|
JavaScript 中间件 关系型数据库
构建高效的后端服务:Node.js 与 Express 的实践指南
在后端开发领域,Node.js 与 Express 的组合因其轻量级和高效性而广受欢迎。本文将深入探讨如何利用这一组合构建高性能的后端服务。我们将从 Node.js 的事件驱动和非阻塞 I/O 模型出发,解释其如何优化网络请求处理。接着,通过 Express 框架的简洁 API,展示如何快速搭建 RESTful API。文章还将涉及中间件的使用,以及如何结合 MySQL 数据库进行数据操作。最后,我们将讨论性能优化技巧,包括异步编程模式和缓存策略,以确保服务的稳定性和扩展性。
|
2月前
|
存储 监控 安全
深入浅出:构建高效后端服务的五大关键步骤
【10月更文挑战第23天】在数字化浪潮中,后端服务是支撑现代Web应用的心脏。本文将带你探索如何打造一个高效、稳定且易于维护的后端系统。我们将一起学习五个核心步骤,包括选择合适的技术栈、设计高效的API、实现数据持久化、确保服务安全以及部署和监控。每个步骤都是成功构建后端服务不可或缺的一环,让我们开始吧!
|
2月前
|
缓存 NoSQL 测试技术
构建高效后端API的五个关键步骤
【10月更文挑战第23天】 在数字化时代的浪潮中,一个高效、可靠的后端API是支撑现代应用程序不可或缺的基石。本文将通过五个关键步骤,指导你如何从零开始构建一个强大的后端API。我们将深入探讨设计原则、选择合适的技术栈、实现安全性、优化性能以及确保可维护性等方面。无论你是初学者还是经验丰富的开发者,这篇文章都将为你提供宝贵的见解和实用的技巧。让我们一起探索后端开发的奥秘,解锁高效API的秘密吧!
57 1
|
3月前
|
Web App开发 JavaScript 中间件
构建高效后端服务:Node.js与Express框架的完美结合
【10月更文挑战第21天】本文将引导你走进Node.js和Express框架的世界,探索它们如何共同打造一个高效、可扩展的后端服务。通过深入浅出的解释和实际代码示例,我们将一起理解这一组合的魅力所在,并学习如何利用它们来构建现代Web应用。
92 1
|
2月前
|
Web App开发 JavaScript 前端开发
探索后端开发:Node.js与Express的完美结合
【10月更文挑战第33天】本文将带领读者深入了解Node.js和Express的强强联手,通过实际案例揭示它们如何简化后端开发流程,提升应用性能。我们将一起探索这两个技术的核心概念、优势以及它们如何共同作用于现代Web开发中。准备好,让我们一起开启这场技术之旅!
71 0
|
2月前
|
Web App开发 JavaScript 前端开发
构建高效后端服务:Node.js与Express框架的实践
【10月更文挑战第33天】在数字化时代的浪潮中,后端服务的效率和可靠性成为企业竞争的关键。本文将深入探讨如何利用Node.js和Express框架构建高效且易于维护的后端服务。通过实践案例和代码示例,我们将揭示这一组合如何简化开发流程、优化性能,并提升用户体验。无论你是初学者还是有经验的开发者,这篇文章都将为你提供宝贵的见解和实用技巧。