linux系统 nginx服务 多个vue项目配置-超详细

2023-10-31

linux系统 nginx服务 多个vue项目配置-超详

首先了解nginx路由配置注意事项

两种情况
主要分为两种情况,以及一些注意事项:

  • proxy_pass的链接无/
  • proxy_pass的链接有/

第一种:proxy_pass的链接无/
proxy_pass中,不带『/』,则把『匹配字符串及后缀(/api/xxx)』均带给转发地址

# 效果为:http://xxx.xxx.com/api/xxx -> http://127.0.0.1:7000/api/xxx. 转发的时候,包含了url前缀.
location ^~ /api/ { 
    proxy_pass  http://127.0.0.1:7000; 
}

# 效果与上面一致
location ^~ /api {
    proxy_pass  http://127.0.0.1:7000; 
}

第二种:proxy_pass的链接有/
proxy_pass中,带『/』,则把『请求地址排除匹配字符串(/api/)』后,再带给转发地址

# 效果为:http://xxx.xxx.com/api/xxx --> http://127.0.0.1:7000/xxx
location ^~ /api/ {
    proxy_pass  http://127.0.0.1:7000/; # 端口后多了斜杠『/』
}

# 注意:下面的代码会导致失败,原因为『/api/xxx排除了/api』后,会把『/xxx』带给转发地址,但转发地址中已有了斜杠,结果会多了一条斜杠,报错。
# 效果为:http://xxx.xxx.com/api/xxx --> http://127.0.0.1:7000//xxx
location ^~ /api {  # 这里的匹配字符串最后少了斜杠『/』
    proxy_pass  http://127.0.0.1:7000/;
}

注意事项
location的修饰符为正则匹配时,proxy_pass的地址最后不要带斜杠

nginx安装

网子自己找博客安装,yum安装,我的博客也有写到

vue项目配置后缀

我这里统一加的是 tem 后缀

1:在你项目的 vue.config.js 文件修改 publickPath参数
这个参数表示
部署应用包时的基本 URL

publicPath: '/tem',

在这里插入图片描述

配置数据位置,茹上图:这里我是引入的配置,不用管

2:修改路由配置项 router文件下的index.js

// 导出路由 在 main.js 里使用
const router = new VueRouter({
    routes,
    mode: ‘history’,
    base:/tem’
});

1:项目文件修改完毕,修改后,本地启动项目,会发现页面已经带有tem后缀
2:打包成功的index.html文件 会发现 访问的js css 路径 前面也带有了tem路径访问
茹下图
在这里插入图片描述
至此:项目配置成功

nginx安装配置

我的nginx放了两个vue项目,一个带有不带后缀访问的,一个带有后缀访问的
分别存放的目录是
不带后缀: /usr/local/nginx/html/web
带有后缀: /usr/local/nginx/html/tem

nginx配置文档修改

    

location / {
        root   /usr/local/nginx/html/web;
        try_files $uri $uri/ /index.html;
		index  index.html index.htm;
    }
        location /tem {
            alias  /usr/local/nginx/html/tem/;
	        try_files $uri $uri/ /tem/index.html;
			index  index.html index.htm;
        }
		location /api{
			rewrite  ^.+api/?(.*)$ /$1 break;
			include  uwsgi_params;
			proxy_pass  http://192.168.0.1:8080;
		}

文档说明

三个location 配置

1:第一个location

不带后缀的vue路由配置 也就是我们常用nginx一个vue项目的配置,不用修改

location / {
            root   /usr/local/nginx/html/web;
	        try_files $uri $uri/ /index.html;
			index  index.html index.htm;
        }`

注意细节:
1:文件地址,用root表示,地址后面不带斜杠 /

root   /usr/local/nginx/html/web;

2:try_files这个配置是vue页面刷新不404 直接 /index.html 就行

try_files $uri $uri/ /index.html;

3:index 固定不变

index  index.html index.htm;

2:第二个location
这个是带有tem后缀的vue项目地址的配置

location /tem {
            alias  /usr/local/nginx/html/tem/;
	        try_files $uri $uri/ /tem/index.html;
			index  index.html index.htm;
        }

1:注意 地址用alias表示 并且地址后面需要带有斜杠 /

alias  /usr/local/nginx/html/tem/;

2:try_files参数 后面index页面前要把tem后缀加上去

try_files $uri $uri/ /tem/index.html;

3:第三个location
不做多讲解,这个是后端请求拦截转发

location /api{
			rewrite  ^.+api/?(.*)$ /$1 break;
			include  uwsgi_params;
			proxy_pass  http://192.168.0.1:8080;
		}

重启nginx服务

最后重启nginx服务器就行

我的nginx服务启动,你们的可能有点不同
我的 重启
/usr/local/nginx/sbin/nginx -s reload

配置好后出现问题排除

前提:如果全部配置好,把项目放入了指定的位置后

1:页面访问出现404

这个时候应该是你的nginx配置出现了问题,自己需要排除nginx配置

2:页面没有出现404, 但是页面出现空白
这个时候你要考虑你的vue项目配置是否有问题,打包有没有问题

结束----------------------------------------------------------------------------------

本文内容由网友自发贡献,版权归原作者所有,本站不承担相应法律责任。如您发现有涉嫌抄袭侵权的内容,请联系:hwhale#tublm.com(使用前将#替换为@)

linux系统 nginx服务 多个vue项目配置-超详细 的相关文章

  • 本地主机中的 Ansible SSH 连接错误

    当我针对本地主机启动我的剧本时 出现此错误 TASK setup fatal 127 0 0 1 UNREACHABLE gt changed false msg SSH encountered an unknown error durin
  • .net-core:ILDASM / ILASM 的等效项

    net core 是否有相当于 ILDASM ILASM 的功能 具体来说 我正在寻找在 Linux 上运行的东西 因此为什么是 net core ildasm 和 ilasm 工具都是使用此存储库中的 CoreCLR 构建的 https
  • Bash - 在与当前终端分开的另一个终端中启动命令的新实例

    我有一个简单的 bash 脚本 test sh 设置如下 bin bash args if args 0 check capture then watch n 1 ls lag home user capture0 watch n 1 ls
  • 内核的panic()函数是否完全冻结所有其他进程?

    我想确认内核的panic 功能和其他类似kernel halt and machine halt 一旦触发 保证机器完全冻结 那么 所有的内核和用户进程都被冻结了吗 是panic 可以被调度程序中断吗 中断处理程序仍然可以执行吗 用例 如果
  • 使用 python 脚本更改 shell 中的工作目录

    我想实现一个用户态命令 它将采用其参数之一 路径 并将目录更改为该目录 程序完成后 我希望 shell 位于该目录中 所以我想实施cd命令 但需要外部程序 可以在 python 脚本中完成还是我必须编写 bash 包装器 Example t
  • 绕过 dev/urandom|random 进行测试

    我想编写一个功能测试用例 用已知的随机数值来测试程序 我已经在单元测试期间用模拟对其进行了测试 但我也希望用于功能测试 当然不是全部 最简单的方法是什么 dev urandom仅覆盖一个进程 有没有办法做类似的事情chroot对于单个文件并
  • linux下如何从文本文件中获取值

    我有一些文本格式的文件 xxx conf 我在这个文件中有一些文本 disablelog 1 当我使用 grep r disablelog oscam conf 输出是 disablelog 1 但我只需要值1 请问你有什么想法吗 一种方法
  • Apache 访问 Linux 中的 NTFS 链接文件夹

    在 Debian jessie 中使用 Apache2 PHP 当我想在 Apache 的文档文件夹 var www 中创建一个新的小节时 我只需创建一个指向我的 php 文件所在的外部文件夹的链接 然后只需更改该文件夹的所有者和权限文件夹
  • cdc_acm:无法设置 dtr/rts - 无法与 USB cdc 设备通信

    我试图使用 pic24fj128gb206 枚举 usb cdc 设备 设备似乎已正确枚举 但是当我将设备连接到 Linux PC 时 我从内核收到以下警告消息 cdc acm 1 8 1 6 7 1 0 failed to set dtr
  • 检查已安装的软件包,如果没有找到则安装

    我需要检查已安装的软件包 如果未安装则安装它们 RHEL CentOS Fedora 示例 rpm qa grep glibc static glibc static 2 12 1 80 el6 3 5 i686 如何在 BASH 中进行检
  • 如何获取 vuejs 组件单元测试中定义的“this”变量

    我正在尝试在 npm 脚本中使用 mocha webpack 来测试 vuejs 组件 我在测试中像这样嘲笑 vuex 商店 const vm new Vue template div div
  • 尽管我已在 python ctypes 中设置了信号处理程序,但并未调用它

    我尝试过使用 sigaction 和 ctypes 设置信号处理程序 我知道它可以与python中的信号模块一起使用 但我想尝试学习 当我向该进程发送 SIGTERM 时 但它没有调用我设置的处理程序 只打印 终止 为什么它不调用处理程序
  • 使用自定义堆的类似 malloc 的函数

    如果我希望使用自定义预分配堆构造类似 malloc 的功能 那么 C 中最好的方法是什么 我的具体问题是 我有一个可映射 类似内存 的设备 已将其放入我的地址空间中 但我需要获得一种更灵活的方式来使用该内存来存储将随着时间的推移分配和释放的
  • 如何将vue组件插入到contenteditable div中

    我想用 vue 创建简单的所见即所得编辑器 我发现只有一个在 vue js 上创建的真正的所见即所得编辑器 这里是 https quasar dev vue components editor 但我没有发现有插入图像的能力 其他 vue w
  • 无法显示 Laravel 欢迎页面

    我的服务器位于 DigitalOcean 云上 我正在使用 Ubuntu 和 Apache Web 服务器 我的家用计算机运行的是 Windows 7 我使用 putty 作为终端 遵循所有指示https laracasts com ser
  • 如何使用vue v3项目将bootstrap v5(js + css)导入nuxt.js v2.14?

    截至今日 引导程序vue不支持vue v3 and 引导程序 v5 我只想import引导文件到努克斯v2 14项目 谁能给我一个具体的例子如何实现这一点 由于我一周前刚刚开始使用 vue nuxt 因此我非常感谢此时的帮助 附 强调 CS
  • 何时用引号将 shell 变量括起来?

    我应该或不应该在 shell 脚本中用引号括住变量吗 例如 下列说法正确的是 xdg open URL eq 2 or xdg open URL eq 2 如果是这样 为什么 一般规则 如果它可以为空或包含空格 或实际上任何空格 或特殊字符
  • 来源和出口有什么区别?

    我正在编写一个 shell 脚本 以读取具有 key value 对的文件并将这些变量设置为环境变量 但我有疑问 如果我这样做source file txt是否会将该文件中定义的变量设置为环境变量 或者我应该逐行读取文件并使用导出命令设置它
  • 将 NPM 包客户端与 nuxt 结合使用

    我对 nuxt 和 javascript 非常陌生 我正在尝试弄清楚如何在客户端使用我的应用程序的依赖项 我将它们列在我的 nuxt config js 中并使用 npm 安装 我也有一个文件 plugins导入它们的目录 不确定这是否好
  • 从另一个 python 脚本获取返回信息

    我在 Linux 上 我有一个 python 脚本 我想从另一个 python 脚本调用它 我不想将其作为模块导入 为了一层安全性 现在为了学术练习 因为我想弄清楚这一点 我实际上想让一个脚本使用 os system 或另一个类似的函数 并

随机推荐

  • VS2019无法登陆解决办法

    文章目录 前言 1 vs登陆 2 解决 总结 前言 今天想看看c代码 打开vs2017 哦豁 登不进去 打开vs2019 哦豁 还是不行 1 vs登陆 到这里就登不进去了 2 解决 vs2019找到账户选项 将嵌入式Web浏览器改为系统We
  • Spring事务嵌套:业务场景事务2异常时需要事务2回滚事务1提交

    目录 1 改变事务2的传播方式REQUIRES NEW 2 异步调用 业务场景 业务提交审核 生成审核账单等数据 事务方法1 审核通过 业务看到账单如果没有问题就去手动审核通过 事务方法2 后期增加了一个自动审核的功能 如果账单中等等一些信
  • 【华为OD机试真题 JAVA】转骰子

    JS版 华为OD机试真题 JS 转骰子 标题 转骰子 时间限制 1秒 内存限制 262144K 语言限制 不限 骰子是一个立方体 每个面一个数字 初始为左1 右2 前3 观察者方向 后4 上5 下6 用123456表示这个状态 放置到平面上
  • 【新手教程】手把手教你搭建腾讯云服务器,图文详细教程

    目 录 本篇字数 1271 背景 服务器搭建 环境搭建 安装JDK Tomcat MySQL驱动 域名绑定 背景 暑假期间 愁着无聊但也不能荒废学业吧 毕竟以后想靠技术混口饭吃 为了实施自己的计划 特地挑了一个便宜的云服务器来用作自己的后台
  • 华为OD机试 - 计算最接近的数(Java)

    题目描述 给定一个数组X和正整数K 请找出使表达式 X i X i 1 X i K 1 结果最接近于数组中位数的下标 i 如果有多个 i 满足条件 请返回最大的 i 其中 数组中位数 长度为N的数组 按照元素的值大小升序排列后 下标为 N
  • SQL 从字符串中提取数字

    一基础使用 声明一个nvarchar类型的变量并赋值declare Name nvarchar 50 set Name 我正在123学 习22 SQL中11 的一些函数 patindex函数返回所查内容在字符串中第一次出现的内容print
  • 敏捷开发 宣言 思想 认识误区

    敏捷软件开发 Agile software Development 敏捷开发是一种软件开发方法 基于迭代和增量开发 通过自组织 跨团队 沟通协作完成开发工作 敏捷宣言的诞生 2001年2月11日到13日 17位软件开发领域的领军人物聚集在美
  • C语言 系统调用操作内核信号集

    使用内存映射可以拷贝文件 对原始文件进行内存映射 创建一个新文件 把新文件的数据拷贝映射到内存中 通过内存拷贝将第一个文件的内存映射区拷贝到第二个文件的内存映射区 释放资源 匿名映射 不需要文件实体来进行内存映射 只能用于有血缘关系的进程间
  • 【Python 1-14】Python手把手教程之——详解函数的高级用法

    作者 弗拉德 来源 弗拉德 公众号 fulade me 传递列表 你经常会发现 向函数传递列表很有用 这种列表包含的可能是名字 数字或更复杂的对象 如字典 将列表传递给函数后 函数就能直接访问其内容 下面使用函数来提高处理列表的效率 假设有
  • Filter过滤器的作用和工作原理

    对于一个web应用程序来说 过滤器是处于web容器内的一个组件 它会过滤特定请求资源请求信息和响应信息 一个请求来到时 web容器会判断是否有过滤器与该信息资源相关联 如果有则交给过滤器处理 然后再交给目标资源 响应的时候则以相反的顺序交给
  • ubuntu 查看USB对应的串口

    dmesg grep tty conner conner W65KJ1 KK1 dmesg grep tty 0 000000 console tty0 enabled 4 599129 usb 1 6 2 ch341 uart conve
  • FAT32下和NTFS下永久性删除文件的恢复

    FAT32下和NTFS下永久性删除文件的恢复 查看文件系统类型 FAT32下永久性删除文件的恢复 NTFS下永久性删除文件的恢复 注意事项 总结 查看文件系统类型 右键磁盘点击属性 就可以看到文件系统 如果没有FAT32文件系统 可以创建虚
  • 外包干三年,必废!

    点击上方 Java基基 选择 设为星标 做积极的人 而不是积极废人 源码精品专栏 原创 Java 2020 超神之路 很肝 中文详细注释的开源项目 RPC 框架 Dubbo 源码解析 网络应用框架 Netty 源码解析 消息中间件 Rock
  • Anaconda环境配置常见报错与解决方案汇总

    Anaconda指的是一个开源的Python发行版本 其包含了conda Python等180多个科学包及其依赖项 因为包含了大量的科学包 Anaconda 的下载文件比较大 约 531 MB 如果只需要某些包 或者需要节省带宽或存储空间
  • Windows 环境安装Scala详情

    为了进一步学习Spark 必须先学习Scala 编程语言 首先开始Scala 环境搭建 温馨提示 本文是基于Windows 11 安装Scala 2 13 1 版本 第一步 确保本机已经正确安装JDK1 8 环境 第二步 Scala 官网下
  • python里unexpected eof while parsing_[人人都会编程]Python代码报错看不懂?记住这20个报错提示单词轻松解决bug...

    1 syntaxerror invalid syntax语法错误 无效语法 1 syntax s nt ks 语法 句法 2 error er r 错误 3 invalid n v l d 无效 2 syntaxerror unexpect
  • ChatGPT爆火背后的真相:学编程已经成为必选项

    这一阵最热门的话题 莫过于人工智能新选手 ChatGPT 在推出后只用了两个月就积累了1亿用户 它的出现在科技圈掀起了一阵 惊涛骇浪 有人称ChatGPT的意义 堪比当年蒸汽机的出现 它足以爆发新一轮的 工业革命 它的出现 和我们每个人的生
  • 有关@string

    android label string app name gt 什么意思 有何作用 android label string app name gt 意思是应用的名称 还有一个是主活动的名称 label表示标签 表示引用 string a
  • 计算机视觉教程核心版(三)优化中篇反向传播展示

    目录 介绍 简单的表达式 模块化 反向传播中的模式 多个分支梯度相加 介绍 在本节中 我们将对反向传播 这是一种通过递归的应用链式法则计算梯度表达式的方法 进行直观而专业的理解 理解反向传播的过程以及其中的细节对我们理解 有效开发 设计和调
  • linux系统 nginx服务 多个vue项目配置-超详细

    linux系统 nginx服务 多个vue项目配置 超详细 linux系统 nginx服务 多个vue项目配置 超详 首先了解nginx路由配置注意事项 nginx安装 vue项目配置后缀 nginx安装配置 重启nginx服务 配置好后出