day35-四层负载

news2024/11/17 10:57:35
01.四层负载概念

请添加图片描述

02.四层实现对端口转发

请添加图片描述

1.克隆一台10.0.0.4
2.安装部署nginx服务
[root@lb:~]#
scp 10.0.0.7:/etc/yum.repos.d/nginx.repo /etc/yum.repos.d/

[root@lb:~]#yum -y install nginx



3.配置nginx四层负载
[root@lb:~]#rm -rf /etc/nginx/conf.d/default.conf
# 删除默认七层配置
[root@lb:~]#cd /etc/nginx/
[root@lb:nginx]#vim nginx.conf
...
events {
    worker_connections  1024;
}


include /etc/nginx/conf.c/*.conf;
# 添加一行配置包含引用conf.c下的所有conf文件


http {
    include       /etc/nginx/mime.types;
    default_type  application/octet-stream;
...

[root@lb:nginx]#mkdir conf.c
[root@lb:nginx]#cd conf.c

[root@lb:conf.c]#cat lb.conf
stream {
    upstream lb {
            server 172.16.1.7:22;
    }

    server {
            listen 2222;
            proxy_connect_timeout 3s;
            proxy_timeout 3s;
            proxy_pass lb;
    }
}

检测语法重启服务
[root@lb:conf.c]#nginx -t

[root@lb:conf.c]#systemctl restart nginx


4.xshell远程连接10.0.0.4的2222端口
[c:\~]$ ssh 10.0.0.4 2222
查看连接是否为web01
[root@web01:~]#



转发3333端口连接后端服务器172.16.1.8:22端口
[root@lb:conf.c]#cat lb.conf
stream {
    upstream lb {
            server 172.16.1.7:22;
    }

    server {
            listen 2222;
            proxy_connect_timeout 3s;
            proxy_timeout 3s;
            proxy_pass lb;
    }

    upstream web02 {
            server 172.16.1.8:22;
    }

    server {
            listen 3333;
            proxy_connect_timeout 3s;
            proxy_timeout 3s;
            proxy_pass web02;
    }

}
检测语法重启服务
[root@lb:conf.c]#nginx -t

[root@lb:conf.c]#systemctl restart nginx

[c:\~]$ ssh 10.0.0.4 3333
[root@web02:~]#

03.业务四层转发
[root@lb:conf.c]#cat lb.conf
stream {
    upstream lb {
            server 172.16.1.5:80;
            server 172.16.1.5:80;
    }

    server {
            listen 80;
            proxy_connect_timeout 3s;
            proxy_timeout 3s;
            proxy_pass lb;
    }

}

hosts解析
10.0.0.4  www.wp.com www.zh.com www.she.com www.admin.com

面试题:

LVS的几种模式
1.DR模式   修改目标地址
2.NAT模式  代理
3.TUN模式  隧道模式
4.FULL NAT模式
04.单台实现动静分离
1.部署java
[root@web01:~]#yum -y install java
2.部署tomcat服务
官网: https://tomcat.apache.org
wget https://dlcdn.apache.org/tomcat/tomcat-10/v10.1.28/bin/apache-tomcat-10.1.28.tar.gz
解压代码:
[root@web01:~]#tar xf apache-tomcat-10.1.28.tar.gz -C /usr/local/

启动tomcat服务
[root@web01:~]#/usr/local/apache-tomcat-10.1.28/bin/startup.sh

停止tomcat服务
[root@web01:~]#/usr/local/apache-tomcat-10.1.28/bin/shutdown.sh

查看tomcat是否启动:
[root@web01:~]#netstat -tnulp
Active Internet connections (only servers)
Proto Recv-Q Send-Q Local Address           Foreign Address         State       PID/Program name
tcp        0      0 127.0.0.1:9000          0.0.0.0:*               LISTEN      1061/php-fpm: maste
tcp        0      0 0.0.0.0:80              0.0.0.0:*               LISTEN      3581/nginx: master
tcp        0      0 0.0.0.0:22              0.0.0.0:*               LISTEN      1064/sshd: /usr/sbi
tcp6       0      0 127.0.0.1:8005          :::*                    LISTEN      7795/java
tcp6       0      0 :::8080                 :::*                    LISTEN      7795/java


tomcat的代码目录
[root@web01:~]#ll /usr/local/apache-tomcat-10.1.28/webapps/ROOT/
total 164
-rw-r----- 1 root root 27235 Aug  2 23:14 asf-logo-wide.svg
-rw-r----- 1 root root   713 Aug  2 23:14 bg-button.png
-rw-r----- 1 root root  1918 Aug  2 23:14 bg-middle.png
-rw-r----- 1 root root  1401 Aug  2 23:14 bg-nav.png
-rw-r----- 1 root root  3103 Aug  2 23:14 bg-upper.png
-rw-r----- 1 root root 21630 Aug  2 23:14 favicon.ico
-rw-r----- 1 root root 12241 Aug  2 23:14 index.jsp
-rw-r----- 1 root root  6776 Aug  2 23:14 RELEASE-NOTES.txt
-rw-r----- 1 root root  5584 Aug  2 23:14 tomcat.css
-rw-r----- 1 root root 67795 Aug  2 23:14 tomcat.svg
drwxr-x--- 2 root root    21 Aug 13 10:13 WEB-INF


3.配置nginx代理tomcat服务
[root@web01:conf.d]#cat tomcat.conf
server {
	listen 80;
	server_name www.tomcat.com;

	location / {
	proxy_pass http://127.0.0.1:8080;
	}
}

[root@web01:conf.d]#nginx -t

[root@web01:conf.d]#systemctl restart nginx

windows的hosts解析
10.0.0.7 www.tomcat.com
静态文件拆分:
[root@web01:conf.d]#cat tomcat.conf
server {
	listen 80;
	server_name www.tomcat.com;

	location / {
	proxy_pass http://127.0.0.1:8080;
	}

	location  ~ \.(svg|png|jpg|jpeg)$ {
	root /code;
	}
}

[root@web01:conf.d]#nginx -t
nginx: the configuration file /etc/nginx/nginx.conf syntax is ok
nginx: configuration file /etc/nginx/nginx.conf test is successful
[root@web01:conf.d]#systemctl restart nginx

将tomcat下的图片拷贝到/code目录
[root@web01:conf.d]#cp /usr/local/apache-tomcat-10.1.28/webapps/ROOT/tomcat.svg /code/
[root@web01:conf.d]#ll /code/
total 92
drwxr-xr-x 13 root root  4096 Aug  9 11:57 admin
drwxr-xr-x  2 root root   138 Aug 12 14:59 index
-rw-r--r--  1 root root    17 Aug  9 09:39 index.html
-rw-r--r--  1 root root   331 Aug  6 15:37 mysql.php
drwxr-xr-x  7 www  www    336 Aug  7 11:45 she
-rw-r-----  1 root root 67795 Aug 13 10:29 tomcat.svg			# tom猫的图片

修改文件的权限: 因为使用的是nginx代理,所以nginx运行用户www需要对tomcat.svg有读的权限
[root@web01:~]#ll /code/tomcat.svg
-rw-r----- 1 root root 67795 Aug 13 10:29 /code/tomcat.svg
[root@web01:~]#chown www.www /code/tomcat.svg
[root@web01:~]#ll /code/tomcat.svg
-rw-r----- 1 www www 67795 Aug 13 10:29 /code/tomcat.svg

05.动静分离实战
系统	作用	服务	地址
麒麟	负载均衡	nginx proxy	    10.0.0.5
麒麟	静态资源	nginx static	10.0.0.7
麒麟	动态资源	tomcat server	10.0.0.8


1.WEB02准备静态资源
[root@web01:conf.d]#cat static.conf
server {
        listen 80;
        server_name pic.lzy.com;
        root /code;
        index index.html;

        location ~* .*\.(jpg|png|gif)$ {
        root /code/images;
        }
}

[root@web01:conf.d]#echo web01.... > /code/index.html
上传一张图片到/code/iamges下
[root@web01:conf.d]#mkdir /code/images
[root@web01:conf.d]#mv 4.png /code/images/

[root@web01:conf.d]#nginx -t

[root@web01:conf.d]#systemctl restart nginx

hosts解析
10.0.0.7 pic.lzy.com
pic.lzy.com/4.png
WEB02准备动态资源
安装java运行环境
[root@web02:~]#yum -y install java
[root@web02:~]#scp -r 10.0.0.7:/usr/local/apache-tomcat-10.1.28/ /usr/local/
[root@web02:~]#cd /usr/local/
[root@web02:local]#ln -s apache-tomcat-10.1.28/ tomcat
[root@web02:~]#cat /usr/local/tomcat/webapps/ROOT/java.jsp
<%@ page language="java" import="java.util.*" pageEncoding="utf-8"%>
<HTML>
    <HEAD>
        <TITLE>oldboy JSP Page</TITLE>
    </HEAD>
    <BODY>
        <%
            Random rand = new Random();
            out.println("<h1>oldboy随机数:<h1>");
            out.println(rand.nextInt(99)+100);
        %>
    </BODY>
</HTML>

启动tomcat
[root@web02:~]#/usr/local/tomcat/bin/startup.sh

负载均衡实现调度:
[root@lb01:~]#cd /etc/nginx/conf.d/
[root@lb01:conf.d]#cat ds.conf
upstream static {
        server 172.16.1.7:80;
}

upstream java {
        server 172.16.1.8:8080;
}

server {
        listen 80;
        server_name pic.lzy.com;

        location ~* \.(jpg|png|gif)$ {
                proxy_pass http://static;
                proxy_set_header Host $http_host;
        }

        location ~ \.jsp {
                proxy_pass http://java;
                proxy_set_header Host $http_host;
        }
}
[root@lb01:conf.d]#nginx -t
nginx: the configuration file /etc/nginx/nginx.conf syntax is ok
nginx: configuration file /etc/nginx/nginx.conf test is successful
[root@lb01:conf.d]#systemctl restart nginx

通过负载均衡可以访问动态

通过负载均衡可以访问静态

将动态页面和静态页面集成到负载均衡的index.html的首页中。
 里面配置的是接口。
[root@lb01:conf.d]#cat ds.conf
upstream static {
        server 172.16.1.7:80;
}

upstream java {
        server 172.16.1.8:8080;
}

server {
        listen 80;
        server_name pic.lzy.com;
	root /code;				# 指定默认的代码目录
	index index.html;		# 返回默认的页面
        location ~* \.(jpg|png|gif)$ {
                proxy_pass http://static;
                proxy_set_header Host $http_host;
        }

        location ~ \.jsp {
                proxy_pass http://java;
                proxy_set_header Host $http_host;
        }
}

[root@lb01:conf.d]#nginx -t

[root@lb01:conf.d]#systemctl restart nginx

创建代码文件:
[root@lb01:~]#mkdir /code
[root@lb01:~]#vim /code/index.html

[root@lb01:~]#cat /code/index.html
<html lang="en">
<head>
        <meta charset="UTF-8" />
        <title>测试ajax和跨域访问</title>
        <script src="http://libs.baidu.com/jquery/
        2.1.4/jquery.min.js"></script>
</head>
<script type="text/javascript">
$(document).ready(function(){
        $.ajax({
        type: "GET",
        url: "http://pic.lzy.com/java.jsp",
        success: function(data){
                $("#get_data").html(data)
        },
        error: function() {
                alert("哎呦喂,失败了,回去检查你服务去~");
        }
        });
});
</script>
        <body>
                <h1>测试动静分离</h1>
                <img src="http://pic.lzy.com/4.png">
                <div id="get_data"></div>
        </body>
</html>

访问测试首页:
10.0.0.5  pic.lzy.com

测试动静分离:

1.停止静态资源访问动态
WEB01:
[root@web01:~]#systemctl stop nginx

访问主页:
pic.lzy.com

测试完成后启动 nginx

[root@web01:~]#systemctl start nginx

2.停止动态资源访问静态
[root@web02:~]#/usr/local/tomcat/bin/shutdown.sh
06.按照客户端转发到不同业务

系统版本	主机角色	外网IP	内网IP	    提供端口
麒麟		负载均衡	10.0.0.5	172.16.1.5	80
麒麟		提供Android页面			172.16.1.7	9090
麒麟		提供Iphone页面			172.16.1.7	9091
麒麟		提供pc页面				172.16.1.7	9092

WEB01配置基于多端口实现不同的业务:
[root@web01:~]#cd /etc/nginx/conf.d/
[root@web01:conf.d]#
[root@web01:conf.d]#cat m.conf
server {
	listen 9090;
	server_name _;

	location / {
	root /code/m/android;
	index index.html;
	}
}
[root@web01:conf.d]#mkdir /code/m/android -p
echo 您是使用的Android操作系统  > /code/m/android/index.html
[root@web01:conf.d]#nginx -t
[root@web01:conf.d]#systemctl restart nginx


中文乱码问题:
[root@web01:conf.d]#grep charset ../nginx.conf
    charset utf-8,gbk;		# 主配置文件增加字符集
[root@web01:conf.d]#systemctl restart nginx

整体配置:
[root@web01:conf.d]#cat m.conf
server {
	listen 9090;
	server_name _;

	location / {
	root /code/m/android;
	index index.html;
	}
}
server {
        listen 9091;
        server_name _;

        location / {
        root /code/m/iphone;
        index index.html;
        }
}
server {
        listen 9092;
        server_name _;

        location / {
        root /code/m/pc;
        index index.html;
        }
}
[root@web01:conf.d]#mkdir /code/m/{iphone,pc}
[root@web01:conf.d]#echo 您是使用的是iphone访问的 > /code/m/iphone/index.html
[root@web01:conf.d]#echo 您是使用的是pc浏览器访问的 > /code/m/pc/index.html

[root@web01:conf.d]#nginx -t
[root@web01:conf.d]#systemctl restart nginx






Nginx根据客户端UA的信息来决定转发到具体的业务
[root@lb01:conf.d]#cat m.conf
upstream android {
        server 172.16.1.7:9090;
}

upstream iphone {
        server 172.16.1.7:9091;
}

upstream pc {
        server 172.16.1.7:9092;
}

server {
        listen 80;
        server_name sj.lzy.com;
        charset 'utf-8';

        location / {

                #如果客户端来源是Android则跳转到Android的资源;
                if ($http_user_agent ~* "Android") {
                        proxy_pass http://android;
                }

                #如果客户端来源是Iphone则跳转到Iphone的资源;
                if ($http_user_agent ~* "Iphone") {
                        proxy_pass http://iphone;
                }

                #如果客户端是IE浏览器则返回403错误;
                if ($http_user_agent ~* "MSIE") {
                        return 403;
                }

                #默认跳转pc资源;
                proxy_pass http://pc;
        }
}


[root@lb01:conf.d]#nginx -t
[root@lb01:conf.d]#systemctl restart nginx

hosts解析
10.0.0.5 sj.lzy.com
06.作业:
1.四层转发
2222--->172.16.1.7:22
3333--->172.16.1.8:22
4444--->172.16.1.51:3306   # 测试
web01安装mysql: mysql -h 10.0.0.4 -p4444 -ulzy -plzy123.com
www.wp.com--->四层--->七层 172.16.1.5 172.16.1.6

2.单台实现动静分离
部署java
部署tomcat
通过nginx反向代理到tomcat
使用location拆分图片 tomcat首页图片

3.集群实现动静分离
准备静态资源
准备动态资源
负载均衡集成动态和静态为一个页面

4.通过UA判断客户端,转发到不同的业务。
07.四层负载均衡和七层负载均衡

四层负载均衡(L4)
适用场景:
TCP 应用:

数据库服务:
  当你需要负载均衡数据库连接(如 MySQL、PostgreSQL)时,使用四层负载均衡。
  数据库通常使用 TCP 连接,四层负载均衡可以处理这些连接的分发。
  示例: 你有一个高流量的 MySQL 数据库集群,
        使用四层负载均衡可以将数据库请求分发到多个数据库实例,
        提高处理能力和容错性。

自定义协议:
    专有协议: 如果你的应用使用自定义的网络协议而不是 HTTP,
    四层负载均衡是合适的。
    它能够处理不同于 HTTP 的数据流,如自定义的 TCP 协议。
    示例: 你在使用一个自定义的消息队列服务,
    该服务基于 TCP 协议进行通信。
    四层负载均衡可以将消息流量均匀地分配到多个消息队列服务器。

高性能要求:
    需要低延迟: 四层负载均衡处理的层次较低,
    通常在性能要求较高的场景下使用,
    因为它直接转发 TCP 连接,减少了处理延迟。
    示例: 你有一个金融交易系统,
    需要快速处理大量的实时交易数据。
    四层负载均衡可以提供低延迟的连接分发。


七层负载均衡(L7)
  适用场景:
  Web 应用:

HTTP/HTTPS 服务: 七层负载均衡适用于 Web 应用,
它可以根据 HTTP 请求的内容(如 URL 路径、主机名、请求头)来决定如何路由请求。
示例:
你有一个电商网站,
需要根据不同的请求路径将流量分发到不同的微服务(如产品服务、支付服务)。
七层负载均衡可以根据请求的 URL 路径将流量转发到相应的服务。

内容路由:
基于内容的路由:
 如果你需要根据请求的具体内容(如请求头、参数)来决定请求的路由,
 七层负载均衡可以进行内容解析和分发。
示例:
你有一个视频流服务,根据用户请求的区域或语言将视频流分发到不同的服务器群组。
七层负载均衡可以基于请求的内容来做出这些决策。

应用层优化:
缓存和压缩:
    七层负载均衡支持应用层的优化,
    如缓存、压缩和内容替换,提升应用的性能和响应速度。
示例:
你有一个高流量的新闻网站,
使用七层负载均衡来缓存静态内容(如图片、文章),
减少服务器的负载并加快页面加载速度。

安全和认证:
SSL/TLS 终止: 七层负载均衡可以在负载均衡器处终止 SSL/TLS 连接,
简化后端服务器的安全管理。
  示例: 你有一个需要处理大量 HTTPS 请求的在线服务,
  七层负载均衡器可以处理 SSL/TLS 解密,
  然后将解密后的流量发送到内部服务器。

总结
  四层负载均衡(L4): 适用于处理低层次的网络流量,
  如 TCP 连接,通常用于数据库、消息队列等需要高性能和低延迟的场景。
  七层负载均衡(L7):
  适用于处理基于 HTTP 的应用流量,支持更复杂的路由和内容处理,
  通常用于 Web 应用、内容分发和应用层优化。

选择合适的负载均衡类型可以帮助你优化应用性能、
提升用户体验,并确保系统的高可用性和可扩展性。

08.nginx 参数
proxy_pass http://my_app;:将请求转发到 my_app。
proxy_set_header Host $host;:传递原始请求中的 Host 头。
proxy_set_header X-Real-IP $remote_addr;:设置客户端的实际 IP 地址。
proxy_set_header X-Forwarded-For $proxy_add_x_forwarded_for;:将客户端 IP 地址添加到 X-Forwarded-For 头部,支持链式代理。
proxy_set_header X-Forwarded-Proto $scheme;:传递原始请求的协议(http 或 https)。

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

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

相关文章

【重磅发布】2025华清远见新品发布会亮点、新品抢先看!

匠心服务 智启新程 大咖云集 • 行业分析 • 预见趋势 新品首发 • 课程升级 • 育人交流 - 2025华清远见新品发布会 将于2024年8月23日在北京隆重举行 诚邀您的到来&#xff01; 大会背景 本次新品发布会以 “匠心服务 智启新程”为主题&#xff0c; 邀请多家业内知名…

顶刊中的水刊!中科院1区TOP和“平替”双打组合,3天初审,25天可录用!

高分“水刊” 前面小编解析了一本MDPI旗下能源电力类期刊《Energies》 &#xff08;&#x1f449;详情参考&#xff1a;MDPI旗下Energies“平替”&#xff1a;这本SCI又“水”又稳&#xff0c;不卡背景&#xff0c;25天录用吊打同行&#xff09; 本期解析一本顶刊&#xff0c…

【Python零基础学习】字典

文章目录 前言一、简单字典示例二、使用字典三、字典遍历四、嵌套总结 前言 Python 字典 是一种非常强大且灵活的数据结构&#xff0c;它允许你通过键&#xff08;key&#xff09;来存储和检索值&#xff08;value&#xff09;。想象一下&#xff0c;字典就像一个巨大的电话簿…

免费分享一套SpringBoot+Vue员工管理(职工管理,考勤管理,奖惩管理,合同管理)管理系统【论文+源码+SQL脚本】,帅呆了~~

大家好&#xff0c;我是java1234_小锋老师&#xff0c;看到一个不错的SpringBootVue员工管理(职工管理&#xff0c;考勤管理&#xff0c;奖惩管理&#xff0c;合同管理)管理系统&#xff0c;分享下哈。 项目视频演示 【免费】SpringBootVue员工管理(职工管理&#xff0c;考勤…

Redis远程字典服务器(6) —— list类型详解

目录 一&#xff0c;基本情况 二&#xff0c;list常用命令 2.1 lpush&#xff0c;lrange 2.2 对于“下标越界”的思考 2.3 lpushx&#xff0c;rpush&#xff0c;rpushx 2.4 lpop&#xff0c;rpop 2.5 lindex&#xff0c;linsert&#xff0c;llen 2.6 lrem 2.7 ltrim…

基于B站的热门视频数据分析与情感分析【关联性、主题、情感分析】

目录 2 研究内容 2.1 主要研究内容 2.2 拟解决的关键问题 2.2.1热门视频特征的识别和提取 2.2.2情感分析与用户反馈 2.3技术路线 2.3.1数据收集 2.3.2数据预处理 2.3.3数据挖掘 2.3.4 数据可视化 2.4可行性分析 2.4.1技术可行性 2.4.2数据可行性 2.4.3经济可行性 2.5数据库设计…

vba发送邮件功能实现方法:如何调试测试?

vba发送邮件的配置步骤流程&#xff1f;vba发送邮件的安全指南&#xff1f; VBA是一种常用于自动化Office应用程序的编程语言。利用VBA发送邮件功能&#xff0c;用户可以实现自动化发送邮件的任务&#xff0c;无需手动操作。AokSend将详细探讨如何通过调试与测试来确保VBA发送…

ThreadLoad如何防止内存溢出

优质博文&#xff1a;IT-BLOG-CN 从 ThreadLocalMap看 ThreadLocal使用不当的内存泄漏问题 【1】基础概念 &#xff1a; 首先我们先看看ThreadLocalMap的类图&#xff0c;我们知道 ThreadLocal只是一个工具类&#xff0c;他为用户提供get、set、remove接口操作实际存放本地变…

MT7621+MT7915(MT7905)+MT7975 (W7621A6G-SDK)编译固件与升级固件方法

一、搭建开发环境&#xff0c;编译固件。 1、安装在Ubuntu 14.04.5 x86_64系统后&#xff0c;然后安装下面命令行。 $ sudo apt-get install git g make libncurses5-dev subversion libssl-dev gawk libxml-parser-perl unzip wget python xz-utils vim zlibc zlib1g zlib1g…

XSS---DOM破坏靶场复现

目录 一、OK&#xff0c;Boomer 一、网址&#xff1a; 二、源码分析&#xff1a; 三、 解决思路&#xff1a; 1.页面中的元素可以通过id和name直接取出来 2.覆盖 3.覆盖方法 四、ToString 五、setTimeout函数 六、使用框架白名单 七、成功绕过 ​编辑 二、案例分析…

才来鱼厂实习 1 个月,就转正了!

大家好&#xff0c;我是程序员鱼皮。昨天&#xff0c;我给才来我们公司 实习一个月 的前端开发同学转正了&#xff0c;直接发了正式 Offer&#xff01;这个转正速度&#xff0c;放眼到所有公司中&#xff0c;我相信也是炸裂的。 看小伙子那么激动&#xff0c;让我回想到了 19 年…

认识 bufferbloat

很多人并不理解 bufferbloat 的本质&#xff0c;我引用《计算机网络-自顶向下方法(第 8 版)》第四章的一个解释&#xff1a; 很形象的比喻&#xff0c;buffer 就像盐&#xff0c;不可或缺&#xff0c;适量增味&#xff0c;过量食物就不能吃了。高血压患者更有所感受&#xff…

STM32是基于ARM架构的,那么ARM究竟是什么呢?

一、什么是ARM 首先&#xff0c;ARM是一家英国公司&#xff0c;全称Advanced RISC Machines&#xff0c;高级精简指令集机器&#xff0c;RISC意味着是精简指令集的芯片。同时也有复杂指令集CSIC的芯片&#xff0c;如X86&#xff0c;常以Intel和AMD为主。 其次&#xff0c;之后…

如何跳过极狐GitLab 密钥推送保护功能?

极狐GitLab 是 GitLab 在中国的发行版&#xff0c;专门面向中国程序员和企业提供企业级一体化 DevOps 平台&#xff0c;用来帮助用户实现需求管理、源代码托管、CI/CD、安全合规&#xff0c;而且所有的操作都是在一个平台上进行&#xff0c;省事省心省钱。可以一键安装极狐GitL…

vue 子组件全局自动导入,不在需要每个组件import

main.js import vue from vue import App from ./App.vue import axios from axios axios.defaults.baseURL HTTP://LOCALHOST:3000/api/ Vue.prototype.$http axios; vue config.productionTip false; //子组件全局自动导入 const requireComponents require.cont…

MK米客方德推出新一代工业级SD NAND——更长寿命、更高速度、更优功耗

博客目录 关注我&#xff0c;不迷路&#xff0c;共学习&#xff0c;同进步一、产品封装与兼容性二、SLC 存储颗粒的使用三、高性能 IOPS 表现四、智能健康监测功能五、内嵌 ECC 校验、坏块管理和其他保护机制六、低功耗设计总结 作为 SD NAND 领域的领跑者&#xff0c;MK 米客方…

【Chromium】分享一个网址 Chromium Browser Snapshots

利用 Chromium Browser Snapshots 进行开发和调试 author: jwensh & chatgpt date:20240819 文章目录 利用 Chromium Browser Snapshots 进行开发和调试1. 获取最新的浏览器特性2. 测试和调试浏览器兼容性问题3. 开发和测试浏览器扩展4. 安全研究和漏洞分析5. 提前为新特性…

如何一键删除iPhone相册所有照片

拍照已成为我们记录日常生活的常态。但是&#xff0c;大量照片便会积累在设备上&#xff0c;这不仅占用了大量存储空间&#xff0c;而且随着时间的推移&#xff0c;管理这些照片也变得越来越困难。如果你决定清理旧照片&#xff0c;或者出于隐私考虑需要删除所有照片&#xff0…

2024:AI新纪元,轻松打造你的专属AI助手

引入 在数字化时代的潮流中&#xff0c;人工智能已经成为了我们生活中不可或缺的一部分。2024年被誉为“AI元年”&#xff0c;这不仅是因为人工智能技术的飞速发展&#xff0c;更是因为它已经渗透到我们的日常生活中&#xff0c;为我们带来了无数便利和可能性。在这个充满活力…

FPGA使用笔记:GPIO操作方式(用于测试设备io驱动性能)

一、前言 使用FPGA测试IO速率&#xff0c;用于后续驱动高速AD/DA等高速芯片做铺垫&#xff0c;很多芯片的驱动都是使用并行接口&#xff0c;不是使用专用接口的&#xff0c;这样采样速率的快慢就有CPU的时许周期决定了。 本文测试FPGA和STM32&#xff0c;后续如果用到更快的芯…