Nginx-部署2个vue项目(多个项目)-二级域名设置代理

news2024/11/26 18:52:26

前言

  • 最近在实际开发过程中,需要在服务器部署2个项目。需要nginx二级域名。

  • 开始时候在网上查了一圈,各有说法,不是很全,很头大。这里把自己成功的二级域名代理记录一下。

  • 网上有很多文章说要该router.js文件,要该vue.config.js中的publicPath的路径问题。不用这么麻烦。

  • 很多文章都是说在nginx配置2个server就行了,但其实你不在域名哪里解析的话是访问不到的(重点)。

具体实现

1.两个项目的router.js都不用该

2.vue.config.js中的publicPath的路径使用相对路径就行了。

publicPath: './',

3.在服务器域名哪里解析二级域名(在购买域名地方,比如阿里云)

以阿里云为例

1.找到控制台-域名-解析设置地方

2.点击解析设置添加记录,只需要设置2个地方,二级域名名字,域名绑定服务器地址

4.Nginx配置

在配置之前给大家讲解一下server,以我们域名是www.baidu.com为例子

server {
        listen       80;
        #1.定义服务器的默认网站根目录位置(就是默认域名比如www.baidu.com)
        server_name  localhost;
        #2.dist文件放在位置
        location / {
            root   html/dist;
            index  index.html index.htm;
            try_files $uri $uri/ /index.html; #解决页面刷新404问题
        }
        #3.服务器运行的后端架包地址
        location /api/ {
            proxy_pass http://localhost:8080;
            proxy_set_header Host $HOST;
            rewrite "^/api/(.*)" /$1 break;
        }
​
        error_page   500 502 503 504  /50x.html;
        location = /50x.html {
            root   html;
        }
​
    }

1.server_name可以理解为域名地址,localhost就是www.baidu.com

2.root是你的dist文件在nginx中位置,一般都放在nginx-html文件夹中。

3./api/ 就是前端vue.config.js跨域代理的标识,rewrite "^/api/(.*)" /$1 break;这一句就是去除这个标识跟config文件中这个是一样道理

pathRewrite: {
          // 重写路径: 去掉路径中开头的'/dev-api'
          '^/dev-api': ''
}

我们要有清楚概念,前端项目打完包之后vue.config.js就已经失效,通过nginx转发,但是我们打完包之后是生产上线环境,所以这个/api/需要跟前端.env.production文件中的标识对应起来。

4.这样我们一个server重要配置就这几个了,当我们上线2个项目的时候,在复制一个server,域名解析后,配置server这几个重要地方就可以二级域名访问了。

Nginx-conf文件夹-nginx.conf全部配置

worker_processes  1;
events {
    worker_connections  1024;
}
​
​
http {
    include       mime.types;
    default_type  application/octet-stream;
    sendfile        on;
    keepalive_timeout  65;
​
​
    server {
        listen       80;
        #定义服务器的默认网站根目录位置
        server_name  localhost;
        location / {
            root   html/dist;
            index  index.html index.htm;
            try_files $uri $uri/ /index.html; #解决页面刷新404问题
        }
        
        location /api/ {
            proxy_pass http://localhost:8080;
            proxy_set_header Host $HOST;
            rewrite "^/api/(.*)" /$1 break;
        }
        location /dev-api/ {
            proxy_pass http://localhost:8800;
            proxy_set_header Host $HOST;
            rewrite "^/dev-api/(.*)" /$1 break;
        }
        error_page   500 502 503 504  /50x.html;
        location = /50x.html {
            root   html;
        }
​
    }
    #二级域名
    server {
        listen       80;
        server_name  weibao.baidu.com;
        #这里root是因为我在html文件夹中新建了一个main文件夹,这个文件夹中放第二个项目dist文件
        location / {
            root   html/main/dist;
            index  index.html index.htm;
            try_files $uri $uri/ /index.html; #解决页面刷新404问题
        }
        error_page   500 502 503 504  /50x.html;
        location = /50x.html {
            root   html;
        }
        location /prod-api/ {
            proxy_pass http://localhost:8800;
            proxy_set_header Host $HOST;
            rewrite "^/prod-api/(.*)" /$1 break;
        }
    }
​
}

结果:这样我们就在服务器部署2个项目,更多同理

1.主项目访问 www.baidu.com

2.第二个项目 www.weibao.baidu.com

注意:

可以复制,但需要改上面说的几个重要地方,二级域名解析非常重要(不然怎么也没用)


总结:

经过这一趟流程下来相信你也对 Nginx-部署2个vue项目(多个项目)-二级域名设置代理 有了初步的深刻印象,但在实际开发中我 们遇到的情况肯定是不一样的,所以我们要理解它的原理,万变不离其宗。加油,打工人!

什么不足的地方请大家指出谢谢 -- 風过无痕

本文来自互联网用户投稿,该文观点仅代表作者本人,不代表本站立场。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如若转载,请注明出处:http://www.coloradmin.cn/o/533848.html

如若内容造成侵权/违法违规/事实不符,请联系多彩编程网进行投诉反馈,一经查实,立即删除!

相关文章

自动备份交换机的配置到远程服务器

环境 交换机配置修改后及时备份相关配置,每次配置变化后需要在1分钟后自动进行保存,并且将配置上传至FTP服务器;每隔30分钟,交换机自动把配置上传到FTP服务器 配置命令: [huawei]set save-configuration delay 1 //…

单片机外围电路:电阻之上下拉电阻

1.基础概念 上拉就是将不确定的信号通过一个电阻钳位在高电平,电阻同时起限流作用。下拉同理,也是将不确定的信号通过一个电阻钳位在低电平。 2.基础应用 上下拉电阻在数字电路中使用,为了好理解一点,可把上下拉电阻大致分为两种…

货币简史:从物物交换到数字货币

货币简史 1. 物物交换阶段2. 一般等价物阶段3. 信用货币阶段4. 电子货币阶段5. 数字货币阶段 金钱是什么时候产生的呢,这取决于你如何定义金钱。 费利克斯马丁(FelixMartin)名为《金钱:未授权的传记》(Money:An Unauthorized Biography)书中…

19c rac环境修改pubic, vip,scan ip步骤

19c rac环境第一次修改public、vip和scan ip,和11g还是稍有不同。首先说明下环境 具体步骤如下 1、修改public地址,关闭实例后使用root用户操作 [rootdb1 ~]# ./oifcfg getif bond0 172.20.30.0 global public bond2 100.100.100.0 global clust…

【JVM】JVM堆内存(heap)详解

文章目录 前言一、堆内存划分二、为什么移除永久代?三、分代概念四、为什么分代?五、为什么survivor分为两块相等大小的幸存空间?六、JVM堆内存常用参数七、垃圾回收算法(GC,Garbage Collection)八、垃圾收…

java 反射及代理模式初步学习

java 反射及代理模式初步学习 0. 什么是反射? Java的反射(reflection)机制是指在程序的运行状态中,可以构造任意一个类的对象,可以了解任意一个对象所属的类,可以了解任意一个类的成员变量和方法&#xf…

小程序组件

swiper swiper 和 swiper-item 结合使用,, swiper有默认高度 300rpx 属性: autoplay : 自动播放circular : 循环播放indicator-dots : 显示指示点indicator-active-color : 轮播选中的颜色 &…

SpringBoot整合钉钉消息推送(四十四)

从头开始,并不意味着失败,相反,正是拥抱成功的第一步,即使还会继续失败 上一章简单介绍了 SpringBoot 发送邮件(四十三), 如果没有看过,请观看上一章 钉钉消息推送, 官方文档: https://open.dingtalk.com/document/gr…

3.结构化的数学思想

前言 今天在复习概率论的公理化过程中,我发现它的公理其实也是人为定义的,为什么我会这么想呢?这是因为我曾听过严伯均在为什么诺贝尔奖没有数学讲曾说过数学是一门无法证伪的学科,甚至不能算是科学,而诺贝尔设置这个…

超详细的Linux环境下使用git上传代码教程(gitee版)

git是一个版本控制器,我们使用它上传我们以前写过的代码给他进行托管,更为方便以后找到,同时也方便我们找到我们每次更改了什么。 创建仓库 创建完成后界面: 接下来复制我们创建的仓库的地址: 使用 git 命令行 安装…

BGP路由策略,IPV6

下一跳不变 从EBGP来的路由,传给|BGP S居时,下一跳不变 解决方案: 水平分割 ∷:AS内防环 从|BGP来的路由,不会传给IBGP邻居 1全互联 2路由反射器 3联盟 BGP选路原则: 当BGP 由表存在多条相同路由,会产生多个转发路径,BGP 会根据这些路由的属性,选择一条最优…

使用 C 语言验证非均匀概率的离散事件在样本数量足够大时,符合正态分布曲线(通过生成一个PPM格式的图像)

我想写本文的原因是看到著名数学科普账号 3Blue1Brown 发布的【官方双语】但是什么是中心极限定理?中提到:不论这个离散型事件的各种情况概率是不是平均的,当数量一定大时,还是会符合正态分布曲线。我就想自己试试看是不是这种情况…

深入篇【C++】类与对象:const成员与Static成员

深入篇【C】类与对象&#xff1a;const成员与Static成员 ⏰<const成员>&#x1f553;1.权限&#x1f550;2.规则&#x1f552;3.思考&#xff1a; ⏰<Static成员>&#x1f551;1.概念&#x1f557;2.特性&#x1f555;3.思考&#xff1a; ⏰<const成员> &am…

从零开始 Spring Boot 29:类型转换

从零开始 Spring Boot 29&#xff1a;类型转换 图源&#xff1a;简书 (jianshu.com) PropertyEditor Spring使用PropertyEditor进行String和具体类型之间的转换&#xff1a; public interface PropertyEditor {void setValue(Object value);Object getValue();String getAsT…

第五章 面向对象-7.hashCode()和toString()

hashCode()和toString() hashCode() hashCoed 的特性&#xff1a; &#xff08;1&#xff09;HashCode的存在主要是用于查找的快捷性&#xff0c;如Hashtable&#xff0c;HashMap等&#xff0c;HashCode经常用于确定对象的存储地址&#xff1b; &#xff08;2&#xff09;如果…

华为OD机试真题 Java 实现【统一限载货物数最小值】【2023Q1 200分】

一、题目描述 火车站附近的货物中转站负责将到站货物运往仓库&#xff0c;小明在中转站负责调度 2K 辆中转车(K辆干货中转车&#xff0c;K 辆湿货中转车)货物由不同供货商从各地发来&#xff0c;各地的货物是依次进站&#xff0c;然后小明按照卸货顺序依次装货到中转车&#x…

智能床垫市场调研分析报告

文章目录 一、简介&#xff08;1&#xff09;电动床&#xff08;2&#xff09;气垫床 二、使用人群三、睡姿四、实用性 一、简介 &#xff08;1&#xff09;电动床 电动床之下又分成了分体、连体和床头分体。分体电动床是指床垫与床底座分开的电动床&#xff1b;连体的则是床垫…

数据结构-外部排序-(多路归并排序、败者树、置换选择排序、最佳归并树)

目录 一、外部归并排序 二、败者树 三、置换选择排序 四、最佳归并树 一、外部归并排序 16个块&#xff0c;先每个块读入内存进行排序在输出回来&#xff0c;进行16次读和16次写 两两归并&#xff0c;第一趟如下 在两两归并 时间分析 外部排序时间开销读写外存时间内存排序时…

C语言基础知识:函数的声明和使用

目录 函数的声明 1.定义顺序 2.函数的声明 3.函数的声明格式 多源文件开发 1.为什么要有多个源文件 2.将sum函数写到其他源文件中 3.在main函数中调用sum函数 4.编译所有的源文件 5.链接所有的目标文件 #include 1.#include的作用 2.#include可以使用绝对路径 3.#…

Linux免交互操作

免交互操作 Here DocumentExpect工具 Here Document Here Document概述 使用I/O重定向的方式将命令列表提供给交互式程序或命令&#xff0c;比如 ftp 、cat 或 read 命令。Here Document 是标准输入的一种替代品&#xff0c;可以帮助脚本开发人员不必使用临时文件来构建输入信息…