Nginx部署Vue项目
2023-06-13 09:13:55 时间
用Vue
开发时,经常配置这样的代理服务器(这里展示Vite
的配置项):
{
server: {
port: 80,
proxy: {
'/api': {
target: 'http://127.0.0.1:8084/',
changeOrigin: true,
rewrite: path => path.replace(/^\/api/, '')
}
}
}
}
我们的需求大概是,把类似于这样的请求:
http://localhost/api/xxx
转发到:
http://localhost:8084/xxx
但是部署到Nginx服务器的时候,显然上面在Vite
里配置的代理服务器是无效的。
经过我的一番查询,发现下面这些配置是可以起到相同的作用的
解决方案
本文假设你刚安装好Nginx,还没有进行任何配置。 并且,我的服务器是Ubuntu,如果有些命令或者路径不一样,还请去搜一下对应系统版本的命令和路径是什么。
因为Nginx默认是有一个配置文件在生效的,我们需要把它注释掉。
找到配置文件nginx.conf
,我的服务器路径是/etc/nginx/nginx.conf
,找到类似于下面的这一项:
include /etc/nginx/sites-enabled/*;
把这句话注释掉,就是前面加个井号:
# include /etc/nginx/sites-enabled/*;
刚才注释掉的这句话应该就在http
配置项里,下一步就是在这个配置项下新加一个server
项,下面可以这样配置:
server {
# 服务器名字,可以随便填
server_name XXX;
# Nginx去哪里找文件
root /path/to/web/root;
# 这里是设置服务器端口为80,并且是默认服务器
listen 80 default_server;
# 设置入口文件
index index.html;
# 这里相当于Vite里配置的代理服务器
location ~ /api/ {
# 把路径头上的/api/去掉
rewrite "^/api/(.*)$" /$1 break;
# 把请求转发到本地的8084端口
proxy_pass http://127.0.0.1:8084;
}
# 这个配置项配置这里主要是为了Vue
# 设置路由为history模式后
# 刷新界面404的问题
location / {
# 这个原理也就是先尝试找到给定的路径
# 如果找不到就返回index.html
try_files $uri $uri/ /index.html;
}
}
配置完后重启nginx
。
nginx -s reload
那么之后就可以把:
http://localhost/api
下的请求转发到:
http://localhost:8084
后记
如果你还需要配置多个代理,如在上文的基础上,还需要把:
http://localhost/api/test
下的请求转发到:
http://localhost:8085
那么需要进行这样的操作:
location ~ /api/test/ {
rewrite "^/api/test/(.*)$" /$1 break;
proxy_pass http://127.0.0.1:8085;
}
把这段配置放在之前配置的 /api
上面。一定要放在上面,否则你的请求会被转发到:
http://localhost:8084/test
就达不到我们的目的了。
相关文章
- Java项目毕业设计:基于springboot+vue的电影视频网站系统「建议收藏」
- Jenkins 安装及使用 ( Jenkins 部署 Maven 项目、Jenkins 部署 Vue 项目)
- Springboot+vue项目旅游管理系统
- VUE 项目本地没有问题,部署到服务器上提示错误
- vue 键盘事件keyup/keydoen
- vue的双向绑定原理_vue中数据双向绑定的原理
- 使用vue-cli创建项目登陆页面
- Vue学习笔记之vue.js 两个等号 == 和三个等号===的区别 数字0和空字符串
- Java项目分享-基于 SpringBoot + Vue的网页版聊天室
- Vue 组件插槽:父子组件间的内容分发和插槽作用域
- 【架构师(第三十篇)】Vue-Test-Utils 全局组件和第三方库 vuex | vue-router
- 使用vue ui时在其他盘创建项目
- java和vue开发的二手车小程序系统租车小程序系统
- Vue-cli搭建的项目中路径别名的配置
- Vue项目部署到服务器(ubuntu)
- 校招前端一面必会vue面试题指南3
- Vue动态刷新Echarts数据
- ruoyi-vue版本(十三)若依项目里面,spring security 框架的使用
- Django+Vue前后端分离项目的部署详解编程语言
- Vue.js是什么?它有什么特点?
- Vue技术实现访问远程Redis的精彩之旅(vue访问远端redis)
- Vue用Redis储存获取数据(vue获取redis)
- Vue快速连接Redis实现数据存储(vue 直连redis)
- Vue如何连接Redis(vue怎么连接Redis)
- Vue如何连接Redis数据库(vue怎么连接Redis)
- Vue中触发Redis订阅通知(vue中订阅redis)
- 构建基于Vue与Redis的高性能缓存系统(VUE redis缓存)