Nignx及负载均衡动静分离

核心要点:部署后台项目
1.配置jdk环境
    1.先将jdk的Linux版本的压缩包上传虚拟机中服务器
    2.解压上传的jdk压缩包    tar -zxvf jdk.gz
    3.先进入jdk的解压目录,再通过pwd查看当前解压包的路径
    4.将 解压包路径 配置到 /etc/profile
    5.更新环境变量 source /etc/profile 
    6.测试 java -version
    
2.配置tomcat环境
    1.先将tomcat的Linux版本的压缩包上传虚拟机中服务器
    2.解压上传的tomcat压缩包    tar -zxvf tomcat.gz
    3.进入 tomcat/bin执行 ./startup.sh
    4.默认防火墙是开启的,需要开放8080端口
    5.刷新防火墙规则
    6.测试 http://ip:8080
    
3.配置MySQL环境
    1.先将MySQL的Linux版本的安装包上传虚拟机中服务器
    2.先查询是否存在默认的数据库,如果有就删掉
    3.创建一个mysql5.7,将上传的安装包解压到指定目录
    4.执行4个命令 
        npm -ivh
    5.查看MySQL中的日志文件,获取初始化的登录密码
    6.登录MySQL,降低密码的设置等级,设置密码设置的长度
    7.setpassword修改密码,flush privilege
    8.此时外界不能链接,需要授权给root用户
    9.开放3306端口
    10.测试 Navicat
    
4.项目部署的流程
    1.先在本地启动项目,确定访问状况良好
    2.修改pom.xml中packaging为war,在通过maven clean清除掉
    target目录下的编译文件,再通过maven install将项目打包
    3.将ssm.war上传到虚拟机中的tomcat/webapp/...
    4.确定包虚拟机中的数据库是存在对应项目所需要用到的数据
    5。tomcat/bin/startup.sh
    
核心目标:部署前端项目
1.Nginx简介
    1.负载均衡:流量分摊
    2.反向代理:处理外网访问内网问题
    3.动静分离:判断动态请求还是静态请求,选择性的访问指定服务器
2.Nginx使用
    默认端口是80
    http://localhost:8080/ssm
    http://localhost:80/ssm
    http://localhost/ssm
    /etc/nginx/nginx.conf    配置上游服务upstream
    /etc/nginx/conf.d/default.conf
    
3.Nginx部署项目
    1.确保前台项目能用
    2.将前台项目打包 npm run build    (测试本地项目打包后没问题)
        build/utils.js
        config/index.js
    3.做ip/host主机映射
        将虚拟机ip映射域名www.zking.com
    4.完成Nginx动静分离的default.conf的相关配置
        定义规则:URL符合xxx标准走动态请求,不符合走静态请求
        ^~api
    5.将前台项目打包 npm run build (配合Nginx动静分离)
        注意:修改action.js 地址,添加api的路径配置
    6.将前端构建好的dist项目,上传到云服务器/usr/local/...
    7.server{
        server_name:www.zking.com
        root:/usr/local/mypro/dist
    }
    8.systemctl restart nginx
    9.www.zking.com完成整个前后端分离项目的测试
    

http://localhost:8080/T216_SSH/vue/treeNode 动态请求
http://192.168.195.143:8080/T216_SSH/vue/articleAction_list.action
@requestMapping("/vue")
Controller
    @requestMapping("/treeNode")
    menus()
http://localhost:8080/T216_SSH/static/css/layui.css
http://localhost:8080/T216_SSH/static/js/layui.js
http://localhost:8080/T216_SSH/static/img/sign.png


http://192.168.195.143/
http://192.168.195.143/index.html
解析Nginx.conf 
location / {
        #该句代码是为解决history路由不能跳转的问题,在vue-router官网有介绍 
    try_files $uri $uri/  /index.html;
}

http://192.168.195.143/
http://tomcat_list
location / {
      #root   /usr/share/nginx/html;
      #proxy_pass   http://172.17.0.3:8080;
      proxy_pass   http://tomcat_list;
      index index.html index.htm;
  }

  原始的用户
  http://192.168.195.143:8080/api/T216_SSH/vue/articleAction_list.action
  # 代理配置
    location / {
            #该句代码是为解决history路由不能跳转的问题,在vue-router官网有介绍 
        try_files $uri $uri/  /index.html;
    }
    location  ^~/api/ {
        #^~/api/表示匹配前缀是api的请求,proxy_pass的结尾有/, 则会把/api/*后面的路径直接拼接到后面,即移除api
        proxy_pass http://tomcat_list/;
    }
     http://tomcat_list/T216_SSH/vue/articleAction_list.action
    
     
     upstream  tomcat_list {  #服务器集群名字
        server    127.0.0.1:8080  weight=1;   #服务器1   weight是权重的意思,权重越大,分配的概率越大。
        server    127.0.0.1:8081  weight=1; #服务器2   weight是权重的意思,权重越大,分配的概率越大
    } 
     http://192.168.195.143:8080/T216_SSH/vue/articleAction_list.action
  
  最终效果:www.zking.com/
  
  listen       80;            #监听80端口,可以改成其他端口
    #server_name  localhost;    #当前服务的域名
    server_name  www.zking.com; #当前服务的域名(虚拟域名也可以)
    root         /usr/local/mypro/dist;      #将要访问的网站的根目录,nginx节点会自动继承父节点的配置;这里放到/usr/local/*,放到其他路径下会有权限相关问题;必要的时候配置Nginx.conf的user为root
    
  http://192.168.195.143/
  http://localhost:8080/T216_SSH/static/img/sign.png
    usr/local/mypro/dist/index.html
 

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

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

相关文章

sed 原地替换文件时遇到的趣事

哈喽大家好,我是咸鱼 在文章《三剑客之 sed》中咸鱼向大家介绍了文本三剑客中的 sed sed 全名叫 stream editor,流编辑器,用程序的方式来编辑文本 那么今天咸鱼打算讲一下我在用 sed 原地替换文件时遇到的趣事 sed 让文件属性变了&#xff…

计算机视觉基础——基于yolov5-face算法的车牌检测

文章目录 车牌检测算法检测实现1.环境布置2.数据处理2.1 CCPD数据集介绍2.1.1 ccpd2019及20202.1.2 文件名字解析 2.2数据集处理2.2.1 CCPD数据处理2.2.2 CPRD数据集处理 2.3 检测算法2.3.1 数据配置car_plate.yaml2.3.2 模型配置2.3.3 train.py2.3.4 训练结果 2.4 部署2.4.1 p…

约数之和 (普通快速幂求逆元做法)

假设现在有两个自然数 A 和 B,S 是 AB 的所有约数之和。 请你求出 Smod9901 的值是多少。 输入格式 在一行中输入用空格隔开的两个整数 A 和 B 。 输出格式 输出一个整数,代表 Smod9901 的值。 数据范围 0≤A,B≤5107 输入样例: …

从2D圆形到3D椭圆

示例代码&#xff1a;示例代码 要将一个2D圆形转换成3D椭圆&#xff0c;我们需要使用CSS的transform属性和一些基本的几何知识。首先&#xff0c;让我们创建一个HTML元素&#xff0c;如下所 html <div class"circle"></div> 然后&#xff0c;使用CSS样…

双链表详解(初始化、插入、删除、遍历)(数据结构与算法)

1. 单链表与双链表的区别 单链表&#xff08;Singly Linked List&#xff09;和双链表&#xff08;Doubly Linked List&#xff09;是两种常见的链表数据结构&#xff0c;它们在节点之间的连接方式上有所区别。 单链表&#xff1a; 单链表的每个节点包含两个部分&#xff1a;数…

C语言assert函数:什么是“assert”函数

我一直在学习 OpenCV 教程&#xff0c;遇到了assert函数;它做什么&#xff1f; assert将终止程序&#xff08;通常带有引用 assert 语句的消息&#xff09;&#xff0c;如果其参数为 false。它通常在调试过程中使用&#xff0c;以使程序在发生意外情况时更明显地失败。 例如&…

小程序使用echarts(超详细教程)

小程序使用echarts第一步就是先引用到小程序里面&#xff0c;可以直接从这里下载 文件很多&#xff0c;我们值下载 ec-canvas 就好&#xff0c;下载完成后&#xff0c;直接放在pages同级目录下 index.js 在我们需要的页面的 js 文件顶部引入 // pages/index/index.js impor…

【小白专用】微信小程序个人中心、我的界面(示例一)23.11.04

微信小程序使用button按钮实现个人中心、我的界面&#xff08;示例一&#xff09; 微信小程序个人中心、我的界面&#xff0c;使用button按钮实现界面布局&#xff0c;更好的将分享好友、获取头像等功能展现出来&#xff0c;更多示例界面&#xff0c;请前往我的主页哦。 1、js…

ChatGPT 实际上是如何工作的?

添加图片注释&#xff0c;不超过 140 字&#xff08;可选&#xff09; ChatGPT 操作的两个主要阶段 我们再用谷歌来打个比方。当你要求谷歌查找某些内容时&#xff0c;你可能知道它不会——在你提出要求的那一刻——出去搜索整个网络来寻找答案。相反&#xff0c;谷歌会在其数…

COCOS2DX3.17.2 Android升级targetSDK30问题解决方案

一、luajit不兼容问题 不兼容版本&#xff1a;【2.1.0-bate2、2.1.0-bate3都存在异常】 出问题系统&#xff1a;Android11&#xff1b;Android10的系统部分机型有问题&#xff0c;部分机型正常 异常点1&#xff1a;c调用lua接口&#xff0c;pushObjiect的时候crash 异常点2…

下载JMeter

最近准备对接口进行测试&#xff0c;下了JMeter来玩玩 一、下载地址 百度云下载&#xff1a;链接&#xff1a;https://pan.baidu.com/s/1RbMemwzGR6dnDi6BSlPGrw 提取码&#xff1a;uscy 二、开启方式 1.解压后打开目录 2. 进入bin目录 3.双击 jmeter.bat&#xff0c;就可以…

代碼隨想錄算法訓練營|第五十九天|647. 回文子串、7516.最长回文子序列、动态规划总结篇。刷题心得(c++)

目录 讀題 647. 回文子串 看完代码随想录之后的想法 516.最长回文子序列 看完代码随想录之后的想法 647. 回文子串 - 實作 思路 動態規劃思路 雙指針思路 Code 動態規劃思路 雙指針思路 516.最长回文子序列 - 實作 思路 Code 动态规划 - 總結 動態規劃基礎 動…

1015. 摘花生

题目&#xff1a; 1015. 摘花生 - AcWing题库 思路&#xff1a;dp 代码&#xff1a; #include<iostream> #include<cstdio> #include<cmath> using namespace std; const int N 110; typedef long long ll; int T, r, c; int num[N][N]; ll dp[N][N];//dp…

Linux学习第27天:Platform设备驱动开发(一): 专注与分散

Linux版本号4.1.15 芯片I.MX6ULL 大叔学Linux 品人间百味 思文短情长 专注与分散是我在题目中着重说明的一个内容。这是今天我们要学习分离与分层概念的延伸。专注是说我们要专注某层驱动的开发&#xff0c;而对于其他层则是芯片厂商…

mac flutter pb解析报错:protoc-gen-dart: program not found or is not executable

在mac对pb文件转dart文件的时候报错&#xff1a;protoc-gen-dart: program not found or is not executable 原因是没有安装protoc-gen-dart或者protoc-gen-dart没有设置到环境变量中 解决办法&#xff1a; 1、安装protoc-gen-dart flutter pub global activate protoc_plu…

[hive]中的字段的数据类型有哪些

Hive中提供了多种数据类型用于定义表的字段。以下是Hive中常见的数据类型&#xff1a; 布尔类型&#xff08;Boolean&#xff09;&#xff1a;用于表示true或false。 字符串类型&#xff08;String&#xff09;&#xff1a;用于表示文本字符串。 整数类型&#xff08;Intege…

react_13

React Router //-dom代表给浏览器应用使用的 npm install react-router-dom 目前版本是 "react-router-dom": "^6.18.0" 使用 新建文件 src/router/MyRouter.tsx import { Navigate, RouteObject, useRoutes } from "react-router-dom"; imp…

JAVA整理学习实例(二)Object类

JAVA整理学习实例&#xff08;二&#xff09;Object类 注&#xff1a;整理一下之前写的东西&#xff0c;然后在修修补补&#xff0c;水平有限&#xff0c;有错误的请指正。 前言 如果面试没有遇到问Object类的面试题&#xff0c;那真是一种遗憾。 一、关于Java Object的方法 解…

基于LDA主题+协同过滤+矩阵分解算法的智能电影推荐系统——机器学习算法应用(含python、JavaScript工程源码)+MovieLens数据集(三)

目录 前言总体设计系统整体结构图系统流程图 运行环境模块实现1. 数据爬取及处理2. 模型训练及保存1&#xff09;协同过滤2&#xff09;矩阵分解3&#xff09;LDA主题模型 3. 接口实现1&#xff09;流行电影推荐2&#xff09;相邻用户推荐3&#xff09;相似内容推荐 相关其它博…

ubuntu 20.04 + cuda-11.8 + cudnn-8.6+TensorRT-8.6

1、装显卡驱动 ubuntu20.04 cuda10.0 cudnn7.6.4_我是谁&#xff1f;&#xff1f;的博客-CSDN博客 查看支持的驱动版本&#xff1a; 查看本机显卡能够配置的驱动信息 luhost:/usr/local$ ubuntu-drivers devices/sys/devices/pci0000:00/0000:00:01.0/0000:01:00.0 moda…