阿里云-云小站(无限量代金券发放中)
【腾讯云】云服务器、云数据库、COS、CDN、短信等热卖云产品特惠抢购

HAproxy配置详解以及动静分离的实现

426次阅读
没有评论

共计 12504 个字符,预计需要花费 32 分钟才能阅读完成。

一、前面已经介绍过关于 haproxy 的工作特性了,本文主要介绍下 haproxy 如何来实现 web 应用的动静分离的,主要思路就是通过 frontend 段中定义 acl 访问控制,把符合静态内容的请求归类到一个 acl,符合动态的请求归类到另外一个 acl,backend 段中定义接收请求的静态内容和动态内容的服务器,然后通过 use_backend 调用定义的 acl 即可。

二、实验环境:

192.168.30.116 OS:CentOS6.4 x86_64  haproxy.luojianlong.com

192.168.30.117 OS:Centos6.4 x86_64  static.luojianlong.com

192.168.30.119 OS:Centos6.4 x86_64  dynamic.luojianlong.com

haproxy version:haproxy-1.4.24

拓扑图如下:

HAproxy 配置详解以及动静分离的实现

在 haproxy server 上安装 haproxy,这里使用 yum 安装

[root@haproxy ~]# yum -y install haproxy

在 static server,dynamic 上安装 httpd 和 php

[root@static ~]# yum -y install httpd

[root@dynamic ~]# yum -y install httpd php

分别启动 static,dynamic 的 httpd,测试本地访问是否正常

[root@static ~]# service httpd start

[root@static ~]# ss -naptl | grep :80

LISTEN    0      128                      :::80                      :::*      users:((“httpd”,24245,5),(“httpd”,24247,5),(“httpd”,24248,5),(“httpd”,24249,5),(“httpd”,24250,5),(“httpd”,24251,5),(“httpd”,24252,5),(“httpd”,24253,5),(“httpd”,24254,5))

[root@static ~]# echo “static.luojianlong.com” >> /var/www/html/index.html

[root@static ~]# curl 192.168.30.117

static.luojianlong.com

[root@dynamic ~]# service httpd start

[root@dynamic ~]# ss -anplt | grep :80

LISTEN    0      128                      :::80                      :::*      users:((“httpd”,13702,5),(“httpd”,13704,5),(“httpd”,13705,5),(“httpd”,13706,5),(“httpd”,13707,5),(“httpd”,13708,5),(“httpd”,13709,5),(“httpd”,13710,5),(“httpd”,13711,5))

[root@dynamic ~]# vi /var/www/html/index.php

<?php

echo “dynamic.luojianlong.com”

?>

[root@dynamic ~]# curl -I http://192.168.30.119/index.php

HTTP/1.1 200 OK

Date: Thu, 03 Apr 2014 05:39:23 GMT

Server: Apache/2.2.15 (CentOS)

X-Powered-By: PHP/5.3.3

Connection: close

Content-Type: text/html; charset=UTF-8

访问都正常

下面开始配置 haproxy

[root@haproxy ~]# cp /etc/haproxy/haproxy.cfg /etc/haproxy/haproxy.cfg.bak

[root@haproxy ~]# vi /etc/haproxy/haproxy.cfg

global                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                 

    log        127.0.0.1 local2

    chroot      /var/lib/haproxy

    pidfile    /var/run/haproxy.pid

    maxconn    4000

    user        haproxy

    group      haproxy

    daemon

                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                 

    stats socket /var/lib/haproxy/stats

defaults

    mode                    http

    log                    global

    option                  httplog

    option                  dontlognull

    option http-server-close

    option forwardfor      except 127.0.0.0/8

    option                  redispatch

    retries                3

    timeout http-request    10s

    timeout queue          1m

    timeout connect        10s

    timeout client          1m

    timeout server          1m

    timeout http-keep-alive 10s

    timeout check          10s

    maxconn                3000

listen stats

    mode http

    bind 0.0.0.0:1080

    stats enable

    stats hide-version

    stats uri    /haproxyadmin?stats

    stats realm  Haproxy\ Statistics

    stats auth    admin:admin

    stats admin if TRUE

frontend http-in

    bind *:80

    mode http

    log global

    option httpclose

    option logasap

    option dontlognull

    capture request  header Host len 20

    capture request  header Referer len 60

    acl url_static      path_beg      -i /static /images /javascript /stylesheets

    acl url_static      path_end      -i .html .jpg .jpeg .gif .png .css .js

    acl url_dynamic      path_end      -i .php .jsp

    use_backend static_servers          if url_static

    use_backend dynamic_servers        if url_dynamic

backend static_servers

    balance roundrobin

    server imgsrv1 192.168.30.117:80 check maxconn 6000

#  server imgsrv2 192.168.30.118:80 check maxconn 6000

backend dynamic_servers

    balance source

    server websrv1 192.168.30.119:80 check maxconn 1000

#  server websrv2 192.168.30.120:80 check maxconn 1000

stats enable:启用基于程序编译时默认设置的统计报告,不能用于“frontend”区段;

stats hide-version:启用统计报告并隐藏 HAProxy 版本报告,不能用于“frontend”区段。默认情况下,统计页面会显示一些有用信息,包括 HAProxy 的版本号,然而,向所有人公开 HAProxy 的精确版本号是非常有风险的,因为它能帮助恶意用户快速定位版本的缺陷和漏洞;

stats realm:启用统计报告并高精认证领域,不能用于“frontend”区段。haproxy 在读取 realm 时会将其视作一个单词,因此,中间的任何空白字符都必须使用反斜线进行转义。此参数仅在与“stats auth”配置使用时有意义;

stats scope:启用统计报告并限定报告的区段,不能用于“frontend”区段。当指定此语句时,统计报告将仅显示其列举出区段的报告信息,所有其它区段的信息将被隐藏。如果需要显示多个区段的统计报告,此语句可以定义多次。需要注意的是,区段名称检测仅仅是以字符串比较的方式进行,它不会真检测指定的区段是否真正存在;

stats auth:启用带认证的统计报告功能并授权一个用户帐号,其不能用于“frontend”区段;

stats admin:在指定的条件满足时启用统计报告页面的管理级别功能,它允许通过 web 接口启用或禁用服务器,不过,基于安全的角度考虑,统计报告页面应该尽可能为只读的。此外,如果启用了 HAProxy 的多进程模式,启用此管理级别将有可能导致异常行为;

 

option http-server-close:允许服务器端关闭连接;

option dontlognull:访问内容为空的不记录日志;

option redispatch:在 session 失败后,是否允许重新分配;

retries:用于 haproxy 到后端 server 连接失败时重试次数;

option httplog:启用记录 HTTP 请求、会话状态和计时器的功能;

option forwardfor:允许在发往服务器的请求首部中插入“X-Forwarded-For”首部;

HAproxy 的详细介绍:请点这里
HAproxy 的下载地址:请点这里

推荐阅读:

Haproxy+Keepalived 搭建 Weblogic 高可用负载均衡集群 http://www.linuxidc.com/Linux/2013-09/89732.htm

Keepalived+HAProxy 配置高可用负载均衡 http://www.linuxidc.com/Linux/2012-03/56748.htm

CentOS 6.3 下 Haproxy+Keepalived+Apache 配置笔记 http://www.linuxidc.com/Linux/2013-06/85598.htm

Haproxy + KeepAlived 实现 WEB 群集 on CentOS 6 http://www.linuxidc.com/Linux/2012-03/55672.htm

Haproxy+Keepalived 构建高可用负载均衡 http://www.linuxidc.com/Linux/2012-03/55880.htm

ACL 语法格式:

acl <aclname> <criterion> [flags] [operator] <value> …

<aclname>:ACL 名称,区分字符大小写,且其只能包含大小写字母、数字、-(连接线)、_(下划线)、.(点号)和:(冒号);haproxy 中,acl 可以重名,这可以把多个测试条件定义为一个共同的 acl;

<criterion>:测试标准,即对什么信息发起测试;测试方式可以由 [flags] 指定的标志进行调整;而有些测试标准也可以需要为其在 <value> 之前指定一个操作符[operator];

[flags]:目前 haproxy 的 acl 支持的标志位有 3 个:

-i:不区分 <value> 中模式字符的大小写;

-f:从指定的文件中加载模式;

–:标志符的强制结束标记,在模式中的字符串像标记符时使用;

<value>:acl 测试条件支持的值有以下四类:

整数或整数范围:如 1024:65535 表示从 1024 至 65535;仅支持使用正整数(如果出现类似小数的标识,其为 通常为版本测试),且支持使用的操作符有 5 个,分别为 eq、ge、gt、le 和 lt;

字符串:支持使用“-i”以忽略字符大小写,支持使用“\”进行转义;如果在模式首部出现了 -i,可以在 其之前使用“–”标志位;

正则表达式:其机制类同字符串匹配;

IP 地址及网络地址

path_beg <string>:用于测试请求的 URL 是否以 <string> 指定的模式开头;

path_end <string>:用于测试请求的 URL 是否以 <string> 指定的模式结尾;

 

支持的负载均衡算法:

roundrobin:基于权重进行轮叫,在服务器的处理时间保持均匀分布时,这是最平衡、最公平的算法。此算法是动态的,这表示其权重可以在运行时进行调整,不过,在设计上,每个后端服务器仅能最多接受 4128 个连接;

static-rr:基于权重进行轮叫,与 roundrobin 类似,但是为静态方法,在运行时调整其服务器权重不会生效;不过,其在后端服务器连接数上没有限制;

leastconn:新的连接请求被派发至具有最少连接数目的后端服务器;在有着较长时间会话的场景中推荐使用此算法,如 LDAP、SQL 等,其并不太适用于较短会话的应用层协议,如 HTTP;此算法是动态的,可以在运行时调整其权重;

source:将请求的源地址进行 hash 运算,并由后端服务器的权重总数相除后派发至某匹配的服务器;这可以使得同一个客户端 IP 的请求始终被派发至某特定的服务器;不过,当服务器权重总数发生变化时,如某服务器宕机或添加了新的服务器,许多客户端的请求可能会被派发至与此前请求不同的服务器;常用于负载均衡无 cookie 功能的基于 TCP 的协议;其默认为静态,不过也可以使用 hash-type 修改此特性;

uri:对 URI 的左半部分 (“问题”标记之前的部分) 或整个 URI 进行 hash 运算,并由服务器的总权重相除后派发至某匹配的服务器;这可以使得对同一个 URI 的请求总是被派发至某特定的服务器,除非服务器的权重总数发生了变化;此算法常用于代理缓存或反病毒代理以提高缓存的命中率;需要注意的是,此算法仅应用于 HTTP 后端服务器场景;其默认为静态算法,不过也可以使用 hash-type 修改此特性;

url_param:通过 <argument> 为 URL 指定的参数在每个 HTTP GET 请求中将会被检索;如果找到了指定的参数且其通过等于号“=”被赋予了一个值,那么此值将被执行 hash 运算并被服务器的总权重相除后派发至某匹配的服务器;此算法可以通过追踪请求中的用户标识进而确保同一个用户 ID 的请求将被送往同一个特定的服务器,除非服务器的总权重发生了变化;如果某请求中没有出现指定的参数或其没有有效值,则使用轮叫算法对相应请求进行调度;此算法默认为静态的,不过其也可以使用 hash-type 修改此特性;

hdr(<name>):对于每个 HTTP 请求,通过 <name> 指定的 HTTP 首部将会被检索;如果相应的首部没有出现或其没有有效值,则使用轮叫算法对相应请求进行调度;其有一个可选选项“use_domain_only”,可在指定检索类似 Host 类的首部时仅计算域名部分,以降低 hash 算法的运算量;此算法默认为静态的,不过其也可以使用 hash-type 修改此特性;

这里就写这么多了,更多,请查看官方网站:http://haproxy.1wt.eu/

接下来,启动 haproxy

[root@haproxy ~]# service haproxy start

Starting haproxy: [OK]

[root@haproxy ~]# ss -anptl | grep :80

LISTEN 0 128 *:80 *:* users:((“haproxy”,20436,6))

正常启动,打开浏览器访问管理界面:http://192.168.30.116:1080/haproxyadmin?stats

HAproxy 配置详解以及动静分离的实现

发现定义的 static_servers 和 dynamic_servers 已经正常工作

haproxy 的管理界面支持直接禁用 backend_server,使客户端无法访问:

HAproxy 配置详解以及动静分离的实现

接下来验证下动静分离的效果,打开浏览器访问 http://192.168.30.116/index.html

发现访问的 192.168.30.117, 为静态内容服务器

访问 http://192.168.30.116/index.php

发现访问的 192.168.30.119, 为动态内容服务器

到此已经实现了动静分离的效果。

一、前面已经介绍过关于 haproxy 的工作特性了,本文主要介绍下 haproxy 如何来实现 web 应用的动静分离的,主要思路就是通过 frontend 段中定义 acl 访问控制,把符合静态内容的请求归类到一个 acl,符合动态的请求归类到另外一个 acl,backend 段中定义接收请求的静态内容和动态内容的服务器,然后通过 use_backend 调用定义的 acl 即可。

二、实验环境:

192.168.30.116 OS:CentOS6.4 x86_64  haproxy.luojianlong.com

192.168.30.117 OS:Centos6.4 x86_64  static.luojianlong.com

192.168.30.119 OS:Centos6.4 x86_64  dynamic.luojianlong.com

haproxy version:haproxy-1.4.24

拓扑图如下:

HAproxy 配置详解以及动静分离的实现

在 haproxy server 上安装 haproxy,这里使用 yum 安装

[root@haproxy ~]# yum -y install haproxy

在 static server,dynamic 上安装 httpd 和 php

[root@static ~]# yum -y install httpd

[root@dynamic ~]# yum -y install httpd php

分别启动 static,dynamic 的 httpd,测试本地访问是否正常

[root@static ~]# service httpd start

[root@static ~]# ss -naptl | grep :80

LISTEN    0      128                      :::80                      :::*      users:((“httpd”,24245,5),(“httpd”,24247,5),(“httpd”,24248,5),(“httpd”,24249,5),(“httpd”,24250,5),(“httpd”,24251,5),(“httpd”,24252,5),(“httpd”,24253,5),(“httpd”,24254,5))

[root@static ~]# echo “static.luojianlong.com” >> /var/www/html/index.html

[root@static ~]# curl 192.168.30.117

static.luojianlong.com

[root@dynamic ~]# service httpd start

[root@dynamic ~]# ss -anplt | grep :80

LISTEN    0      128                      :::80                      :::*      users:((“httpd”,13702,5),(“httpd”,13704,5),(“httpd”,13705,5),(“httpd”,13706,5),(“httpd”,13707,5),(“httpd”,13708,5),(“httpd”,13709,5),(“httpd”,13710,5),(“httpd”,13711,5))

[root@dynamic ~]# vi /var/www/html/index.php

<?php

echo “dynamic.luojianlong.com”

?>

[root@dynamic ~]# curl -I http://192.168.30.119/index.php

HTTP/1.1 200 OK

Date: Thu, 03 Apr 2014 05:39:23 GMT

Server: Apache/2.2.15 (CentOS)

X-Powered-By: PHP/5.3.3

Connection: close

Content-Type: text/html; charset=UTF-8

访问都正常

下面开始配置 haproxy

[root@haproxy ~]# cp /etc/haproxy/haproxy.cfg /etc/haproxy/haproxy.cfg.bak

[root@haproxy ~]# vi /etc/haproxy/haproxy.cfg

global                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                 

    log        127.0.0.1 local2

    chroot      /var/lib/haproxy

    pidfile    /var/run/haproxy.pid

    maxconn    4000

    user        haproxy

    group      haproxy

    daemon

                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                 

    stats socket /var/lib/haproxy/stats

defaults

    mode                    http

    log                    global

    option                  httplog

    option                  dontlognull

    option http-server-close

    option forwardfor      except 127.0.0.0/8

    option                  redispatch

    retries                3

    timeout http-request    10s

    timeout queue          1m

    timeout connect        10s

    timeout client          1m

    timeout server          1m

    timeout http-keep-alive 10s

    timeout check          10s

    maxconn                3000

listen stats

    mode http

    bind 0.0.0.0:1080

    stats enable

    stats hide-version

    stats uri    /haproxyadmin?stats

    stats realm  Haproxy\ Statistics

    stats auth    admin:admin

    stats admin if TRUE

frontend http-in

    bind *:80

    mode http

    log global

    option httpclose

    option logasap

    option dontlognull

    capture request  header Host len 20

    capture request  header Referer len 60

    acl url_static      path_beg      -i /static /images /javascript /stylesheets

    acl url_static      path_end      -i .html .jpg .jpeg .gif .png .css .js

    acl url_dynamic      path_end      -i .php .jsp

    use_backend static_servers          if url_static

    use_backend dynamic_servers        if url_dynamic

backend static_servers

    balance roundrobin

    server imgsrv1 192.168.30.117:80 check maxconn 6000

#  server imgsrv2 192.168.30.118:80 check maxconn 6000

backend dynamic_servers

    balance source

    server websrv1 192.168.30.119:80 check maxconn 1000

#  server websrv2 192.168.30.120:80 check maxconn 1000

stats enable:启用基于程序编译时默认设置的统计报告,不能用于“frontend”区段;

stats hide-version:启用统计报告并隐藏 HAProxy 版本报告,不能用于“frontend”区段。默认情况下,统计页面会显示一些有用信息,包括 HAProxy 的版本号,然而,向所有人公开 HAProxy 的精确版本号是非常有风险的,因为它能帮助恶意用户快速定位版本的缺陷和漏洞;

stats realm:启用统计报告并高精认证领域,不能用于“frontend”区段。haproxy 在读取 realm 时会将其视作一个单词,因此,中间的任何空白字符都必须使用反斜线进行转义。此参数仅在与“stats auth”配置使用时有意义;

stats scope:启用统计报告并限定报告的区段,不能用于“frontend”区段。当指定此语句时,统计报告将仅显示其列举出区段的报告信息,所有其它区段的信息将被隐藏。如果需要显示多个区段的统计报告,此语句可以定义多次。需要注意的是,区段名称检测仅仅是以字符串比较的方式进行,它不会真检测指定的区段是否真正存在;

stats auth:启用带认证的统计报告功能并授权一个用户帐号,其不能用于“frontend”区段;

stats admin:在指定的条件满足时启用统计报告页面的管理级别功能,它允许通过 web 接口启用或禁用服务器,不过,基于安全的角度考虑,统计报告页面应该尽可能为只读的。此外,如果启用了 HAProxy 的多进程模式,启用此管理级别将有可能导致异常行为;

 

option http-server-close:允许服务器端关闭连接;

option dontlognull:访问内容为空的不记录日志;

option redispatch:在 session 失败后,是否允许重新分配;

retries:用于 haproxy 到后端 server 连接失败时重试次数;

option httplog:启用记录 HTTP 请求、会话状态和计时器的功能;

option forwardfor:允许在发往服务器的请求首部中插入“X-Forwarded-For”首部;

HAproxy 的详细介绍:请点这里
HAproxy 的下载地址:请点这里

推荐阅读:

Haproxy+Keepalived 搭建 Weblogic 高可用负载均衡集群 http://www.linuxidc.com/Linux/2013-09/89732.htm

Keepalived+HAProxy 配置高可用负载均衡 http://www.linuxidc.com/Linux/2012-03/56748.htm

CentOS 6.3 下 Haproxy+Keepalived+Apache 配置笔记 http://www.linuxidc.com/Linux/2013-06/85598.htm

Haproxy + KeepAlived 实现 WEB 群集 on CentOS 6 http://www.linuxidc.com/Linux/2012-03/55672.htm

Haproxy+Keepalived 构建高可用负载均衡 http://www.linuxidc.com/Linux/2012-03/55880.htm

正文完
星哥玩云-微信公众号
post-qrcode
 0
星锅
版权声明:本站原创文章,由 星锅 于2022-01-20发表,共计12504字。
转载说明:除特殊说明外本站文章皆由CC-4.0协议发布,转载请注明出处。
【腾讯云】推广者专属福利,新客户无门槛领取总价值高达2860元代金券,每种代金券限量500张,先到先得。
阿里云-最新活动爆款每日限量供应
评论(没有评论)
验证码
【腾讯云】云服务器、云数据库、COS、CDN、短信等云产品特惠热卖中

星哥玩云

星哥玩云
星哥玩云
分享互联网知识
用户数
4
文章数
19350
评论数
4
阅读量
7964795
文章搜索
热门文章
星哥带你玩飞牛NAS-6:抖音视频同步工具,视频下载自动下载保存

星哥带你玩飞牛NAS-6:抖音视频同步工具,视频下载自动下载保存

星哥带你玩飞牛 NAS-6:抖音视频同步工具,视频下载自动下载保存 前言 各位玩 NAS 的朋友好,我是星哥!...
星哥带你玩飞牛NAS-3:安装飞牛NAS后的很有必要的操作

星哥带你玩飞牛NAS-3:安装飞牛NAS后的很有必要的操作

星哥带你玩飞牛 NAS-3:安装飞牛 NAS 后的很有必要的操作 前言 如果你已经有了飞牛 NAS 系统,之前...
我把用了20年的360安全卫士卸载了

我把用了20年的360安全卫士卸载了

我把用了 20 年的 360 安全卫士卸载了 是的,正如标题你看到的。 原因 偷摸安装自家的软件 莫名其妙安装...
再见zabbix!轻量级自建服务器监控神器在Linux 的完整部署指南

再见zabbix!轻量级自建服务器监控神器在Linux 的完整部署指南

再见 zabbix!轻量级自建服务器监控神器在 Linux 的完整部署指南 在日常运维中,服务器监控是绕不开的...
飞牛NAS中安装Navidrome音乐文件中文标签乱码问题解决、安装FntermX终端

飞牛NAS中安装Navidrome音乐文件中文标签乱码问题解决、安装FntermX终端

飞牛 NAS 中安装 Navidrome 音乐文件中文标签乱码问题解决、安装 FntermX 终端 问题背景 ...
阿里云CDN
阿里云CDN-提高用户访问的响应速度和成功率
随机文章
星哥带你玩飞牛NAS-8:有了NAS你可以干什么?软件汇总篇

星哥带你玩飞牛NAS-8:有了NAS你可以干什么?软件汇总篇

星哥带你玩飞牛 NAS-8:有了 NAS 你可以干什么?软件汇总篇 前言 哈喽各位玩友!我是是星哥,不少朋友私...
星哥带你玩飞牛NAS硬件03:五盘位+N5105+双网口的成品NAS值得入手吗

星哥带你玩飞牛NAS硬件03:五盘位+N5105+双网口的成品NAS值得入手吗

星哥带你玩飞牛 NAS 硬件 03:五盘位 +N5105+ 双网口的成品 NAS 值得入手吗 前言 大家好,我...
告别Notion焦虑!这款全平台开源加密笔记神器,让你的隐私真正“上锁”

告别Notion焦虑!这款全平台开源加密笔记神器,让你的隐私真正“上锁”

  告别 Notion 焦虑!这款全平台开源加密笔记神器,让你的隐私真正“上锁” 引言 在数字笔记工...
星哥带你玩飞牛NAS-13:自动追番、订阅下载 + 刮削,动漫党彻底解放双手!

星哥带你玩飞牛NAS-13:自动追番、订阅下载 + 刮削,动漫党彻底解放双手!

星哥带你玩飞牛 NAS-13:自动追番、订阅下载 + 刮削,动漫党彻底解放双手! 作为动漫爱好者,你是否还在为...
240 元左右!五盘位 NAS主机,7 代U硬解4K稳如狗,拓展性碾压同价位

240 元左右!五盘位 NAS主机,7 代U硬解4K稳如狗,拓展性碾压同价位

  240 元左右!五盘位 NAS 主机,7 代 U 硬解 4K 稳如狗,拓展性碾压同价位 在 NA...

免费图片视频管理工具让灵感库告别混乱

一言一句话
-「
手气不错
Prometheus:监控系统的部署与指标收集

Prometheus:监控系统的部署与指标收集

Prometheus:监控系统的部署与指标收集 在云原生体系中,Prometheus 已成为最主流的监控与报警...
12.2K Star 爆火!开源免费的 FileConverter:右键一键搞定音视频 / 图片 / 文档转换,告别多工具切换

12.2K Star 爆火!开源免费的 FileConverter:右键一键搞定音视频 / 图片 / 文档转换,告别多工具切换

12.2K Star 爆火!开源免费的 FileConverter:右键一键搞定音视频 / 图片 / 文档转换...
支付宝、淘宝、闲鱼又双叕崩了,Cloudflare也瘫了连监控都挂,根因藏在哪?

支付宝、淘宝、闲鱼又双叕崩了,Cloudflare也瘫了连监控都挂,根因藏在哪?

支付宝、淘宝、闲鱼又双叕崩了,Cloudflare 也瘫了连监控都挂,根因藏在哪? 最近两天的互联网堪称“故障...
星哥带你玩飞牛NAS硬件03:五盘位+N5105+双网口的成品NAS值得入手吗

星哥带你玩飞牛NAS硬件03:五盘位+N5105+双网口的成品NAS值得入手吗

星哥带你玩飞牛 NAS 硬件 03:五盘位 +N5105+ 双网口的成品 NAS 值得入手吗 前言 大家好,我...
国产开源公众号AI知识库 Agent:突破未认证号限制,一键搞定自动回复,重构运营效率

国产开源公众号AI知识库 Agent:突破未认证号限制,一键搞定自动回复,重构运营效率

国产开源公众号 AI 知识库 Agent:突破未认证号限制,一键搞定自动回复,重构运营效率 大家好,我是星哥,...