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/

相关文章
|
7月前
|
前端开发 JavaScript 应用服务中间件
在Docker部署的前端应用中使用动态环境变量
以上步骤展示了如何在 Docker 配置过程中处理并注入环墨遁形成可执行操作流程,并确保最终用户能够无缝地与之交互而无须关心背后复杂性。
369 13
|
12月前
|
前端开发 Java 物联网
智慧班牌源码,采用Java + Spring Boot后端框架,搭配Vue2前端技术,支持SaaS云部署
智慧班牌系统是一款基于信息化与物联网技术的校园管理工具,集成电子屏显示、人脸识别及数据交互功能,实现班级信息展示、智能考勤与家校互通。系统采用Java + Spring Boot后端框架,搭配Vue2前端技术,支持SaaS云部署与私有化定制。核心功能涵盖信息发布、考勤管理、教务处理及数据分析,助力校园文化建设与教学优化。其综合性和可扩展性有效打破数据孤岛,提升交互体验并降低管理成本,适用于日常教学、考试管理和应急场景,为智慧校园建设提供全面解决方案。
651 70
|
11月前
|
Java 关系型数据库 MySQL
在Linux操作系统上设置JDK、Tomcat、MySQL以及J2EE后端接口的部署步骤
让我们总结一下,给你的Linux操作系统装备上最强的军队,需要先后装备好JDK的弓箭,布置好Tomcat的阵地,再把MySQL的物资原料准备好,最后部署好J2EE攻城车,那就准备好进军吧,你的Linux军团,无人可挡!
351 18
|
前端开发 NoSQL Java
【Java若依框架】RuoYi-Vue的前端和后端配置步骤和启动步骤
本文介绍了如何配置和启动基于Java的若依(RuoYi)项目,涵盖后端和前端的详细步骤。首先,准备Redis、MySQL以及IDE(如Idea和VS)。接着,通过GitHub获取代码并导入到IDE中,执行必要的SQL文件和配置数据库密码。然后,启动Redis并进行相关配置。最后,按照前端配置步骤克隆前端代码库,打开终端执行命令完成前端配置。整个过程详细记录了每一步的操作,帮助开发者顺利部署若依项目。 如果你觉得有帮助,请点赞、关注和收藏,这将是我持续分享的动力!
7940 4
|
前端开发 Java 数据库连接
Java后端开发-使用springboot进行Mybatis连接数据库步骤
本文介绍了使用Java和IDEA进行数据库操作的详细步骤,涵盖从数据库准备到测试类编写及运行的全过程。主要内容包括: 1. **数据库准备**:创建数据库和表。 2. **查询数据库**:验证数据库是否可用。 3. **IDEA代码配置**:构建实体类并配置数据库连接。 4. **测试类编写**:编写并运行测试类以确保一切正常。
715 2
|
监控 前端开发 jenkins
Jenkins 在前端项目持续部署中的应用,包括其原理、流程以及具体的实现方法
本文深入探讨了Jenkins在前端项目持续部署中的应用,涵盖其基本原理、流程及具体实现方法。首先介绍了Jenkins的基本概念及其在自动化任务中的作用,随后详细解析了从前端代码提交到生产环境部署的全过程,包括构建、测试、部署等关键步骤。最后,强调了持续部署中的代码质量控制、环境一致性、监控预警及安全管理等注意事项,旨在帮助开发者高效、安全地实施持续部署。
398 5
|
Web App开发 缓存 监控
前端性能优化实战:从代码到部署的全面策略
前端性能优化实战:从代码到部署的全面策略
383 1
|
Web App开发 前端开发 JavaScript
前端性能优化实战:从代码到部署的全面指南
前端性能优化实战:从代码到部署的全面指南
357 1
|
缓存 监控 前端开发
前端性能优化:从代码到部署的全面策略
前端性能优化:从代码到部署的全面策略
|
应用服务中间件 Linux PHP
nginx怎么部署php项目,如何php项目部署到nginx
php项目部署到nginx的方法:首先安装“Nginx”和“php-fpm”;然后将项目复制到“nginx/html”文件下;接着修改配置文件;最后重新载入Nginx并启动“php-fpm”即可。

热门文章

最新文章