Category: newest

  • IPv6改造遇到的问题解答

    Q:服务器地址为A.A.A.A,并在此服务器做302重定向至B.B.B.B,若开通IPv6转换,目标IP应该是哪个? 图片 A:需要确定个问题:向A.A.A.A发出请求是否能获取到网站资源?302重定向是将重定向IP返回给用户浏览器,浏览器向新IP发起新请求;反向代理表现为从内网将浏览器请求发给目标服务器IP,从目标服务器获取页面信息,返回给用户浏览器。因此若客户服务器模式为反向代理,则可以直接对A.A.A.A进行IPv6转换,但客户服务器模式为302重定向,则需要对B.B.B.B进行IPv6转换。 Q:网站首页域名未配置SSL证书,对此域名对应IP进行IPv6转换,子网页若安装了SSL证书,是否会影响IPv6转换功能? 图片 A:未配置SSL证书的域名,进行IPv6转换时只能选择HTTP模式,这样会导致该域名下有证书的页面转换受到影响;如果域名配置了SSL证书,进行IPv6转换时即可选择HTTPS模式,这种情况下该域名下的子页面无论是HTTP模式还是HTTPS模式都可以支持。 Q:配置了IPv6转换方案后,网站服务器统计的访问IP均为转换服务的IP,如何获取访客原IP以便进行流量统计或安全防护? 图片 A:通过使用X-Forwarded-For(XFF)可以获取访客原IP。X-Forwarded-For(XFF)是用来识别通过HTTP代理或负载均衡方式连接到Web服务器的客户端最原始的IP地址的HTTP请求头字段。对于使用Apache服务器的管理员,还可以通过配置mod_rpaf模块来实现这一目的。在保证代理服务器绝对可信任的情况下,通过此方式便能对访客原IP进行统计或限制。 Q:使用支持IPv6的云解析可配置宕机切换功能,但有时宕机切换监测报警发生宕机却未进行IP切换,而有时又会一检测到宕机就立即切换,是什么原因? 图片 A:前者是切换阈值定得太高,如果某个监测节点偶尔未响应,系统就不会进行切换操作;后者则是切换阈值设置得太低,这样少数节点检测到宕机就会直接切换。因此建议将宕机切换的监测阈值设置为零到最大节点数之间的中位值。 Q:使用支持IPv6的云解析,但是网站检测结果显示不支持IPv6授权体系? 图片 A:使用云解析配置CNAME记录将网站指向另一域名,再在其他解析服务器上给目标域名配置AAAA记录绑定IPv6地址,此种通过CNAME指向IPv6地址的解析方式,不被计入支持IPv6授权体系,因此网站必须在绑定了IPv6地址的解析服务器上直接配置AAAA记录绑定IPv6地址才能通过IPv6授权体系。

  • 微信显示已停止访问该网页怎么办?

    微信显示已停止访问该网页怎么办?

    微信链接可能会报错,显示如下图: 以下为官方解决方案文档: 修订时间:2020年09月13日 生效时间:2020年09月23日 微信是一个生活方式,微信聊天是用户和朋友们沟通的场所,朋友圈是用户分享和关注朋友们生活点滴的空间,微信公众平台是一个企业、机构与个人用户之间交流和服务的平台。一直以来,微信致力于为用户提供绿色、健康的网络生态环境。通过《腾讯微信软件许可及服务协议》《微信公众平台服务协议》《微信个人帐号使用规范》《微信公众平台运营规范》和《微信开放平台开发者服务协议》等相关协议及专项规则,微信内流转的链接内容得到了良好的管理。为了进一步优化微信用户的使用体验,更好地保障微信用户合法权益,现将非由微信公众平台产生(即域名地址不归属于微信公众平台)且在微信内传播的外部链接(下亦简称“外链”)内容相关管理规范进行公示。 对于违反本规范的内容,腾讯有权将其进行处理,包括但不限于停止链接内容在微信继续传播、停止对相关域名或IP地址进行访问、阻止相关链接直接打开、在朋友圈对相关内容做不可见处理等;由微信公众平台或开放平台帐号施行或者发起的,一经查实,前述帐号、主体也将按照微信相关规则进行处罚,包括但不限于限制或禁止使用部分或全部功能、帐号封禁直至注销等,对于情节恶劣的情况,永久封禁帐号、域名、IP地址或分享接口,并公告处理结果;微信也有权依照本规范及相关协议、专项规则的规定,拒绝再向前述主体提供服务。 为了维持微信绿色、健康的生态,以及优化微信用户的使用体验,对在微信传播的非外链的内容,包括但不限于小程序快照页(即“小程序单页模式”)、小游戏快照页(即“小游戏单页模式”)及其他近似内容,腾讯有权参照本规范中对外链内容的约定进行管理。 特别说明的是,本规范是为进一步提升微信绿色、健康的网络生态环境,而进行的平台内管理措施。平台并不因制定本规范而承担额外的法律义务、法律责任,也不构成任何意义上对相关内容均可处理的承诺。 具体规则及相关处罚如下: 1. 诱导分享类内容 1.1 要求用户分享,分享后方可进行下一步操作,分享后方可知道答案等; 1.2 通过利益诱惑,诱导用户分享以及传播外链内容的,包括但不限于:以金钱奖励、实物奖品、虚拟奖品(包括但不限于红包、优惠券、代金券、积分、话费、流量、信息);声称分享可增加抽奖机会、中奖概率、成功可能;通过签到打卡、邀请好友协助(包括但不限于助力、砍价、加速)、设置收集任务(包括但不限于集赞、集卡、集福、集碎片)等形式利诱、诱导用户分享以及传播外链内容的;     1.3 用夸张言语来胁迫、引诱用户分享的。包括但不限于:“不转不是中国人”、“请好心人转发一下”、“转发后一生平安”、“转疯了”、“必转”、“转到你的朋友圈朋友都会感激你”等; 2. 诱导关注类内容 强制或诱导用户关注公众帐号的,包括但不限于关注后查看答案、领取红包、关注后方可参与活动; 3.诱导或误导下载/跳转类内容 3.1 外链内容所明示或暗示的金钱奖励、实物奖品、虚拟奖品(包括但不限于红包、优惠券、代金券、积分、话费、流量、信息)等利益内容,用户无法在微信内获得,而需要下载或跳转到外部APP,或需要用户离开微信、下载特定内容或完成特定操作,才能获得的; 3.2 外链内容标题、页面文案、按钮说明、文字提示等与实际实现的效果不符,造成用户误解或误导用户点击,导致用户下载或者跳转到外部APP的,例如点击新闻标题后、点击“展开全文”后、点击“继续收听”后、点击“领取红包”后直接跳转到外部APP内或下载页等; 4. 违规拼团类内容 4.1 虚假的拼团活动,如全部或部分拼团参与者无须进行支付,或部分拼团参与者所支付的金额与其他参与者明显不相当的; 4.2 欺诈性质的拼团活动,如全部或部分拼团参与者通过拼团所获得的实物或虚拟物品,其价值明显低于用户付出的对价的; 4.3 带有抽奖性质的拼团活动,如拼团参与者之间获得的实物或虚拟物品之数量或质量、价值等明显不相当的; 4.4 拼团活动无明确且清晰的活动规则,或规则未以显著方式向用户公示,可能误导用户参与拼团或进行支付的。例如在活动规则中约定用户拼团失败后,已支付的费用不退回,但活动规则未以显著方式向用户公示的; 4.5 任何在微信朋友圈内传播的拼团类外链内容; 5. H5游戏、测试类内容 以游戏、测试等方式,吸引用户参与互动的,具体形式包括但不限于比手速、好友问答、性格测试,测试签、网页小游戏;   6. 欺诈类内容 6.1 虚假红包、活动 通过虚假的红包、活动等形式,以赚取金钱、实物奖品、虚拟奖品等方式欺骗用户参与的,具体形式包括但不限于虚假现金红包、虚假话费卡、虚假流量红包、虚假优惠券、虚假优惠活动等; 6.2 宣传或销售侵害他人合法权益的商品 通过虚假宣传、恶意营销等方式,向用户宣传或诱骗用户购买侵害他人合法权益的物品的,例如以骗取邮费为目的的赠送物品活动、虚假付费服务等; 6.3 仿冒微信公众帐号排版、域名 仿冒微信公众帐号文章排版、域名,可能造成微信用户混淆的; 7.…

  • Discuz3的表结构

    Discuz3的表结构

    有时候需要看表里的数据,可以按关键词搜索: pre_common_addon 插件扩展中心服务商表 pre_common_admincp_cmenu 后台管理面板,自定义常用菜单表 pre_common_admincp_group 后台团队职务名称表 pre_common_admincp_member 后台管理员成员表 pre_common_admincp_perm 后台团队职务权限分配表 pre_common_admincp_session 后台管理面板登录session表 pre_common_admingroup 后台管理组权限分配表 pre_common_adminnote 管理团队留言表 pre_common_advertisement 广告位管理表 pre_common_advertisement_custom 广告位自定义名称 pre_common_banned 禁止IP表 pre_common_block DIY模块表 pre_common_block_favorite DIY模块收藏表:门户管理的模块管理里使用 pre_common_block_item DIY模块属性表 pre_common_block_item_data DIY模块数据表 pre_common_block_permission DIY模块权限表 pre_common_block_pic DIY模块图片表 pre_common_block_style DIY模块风格表 pre_common_block_xml 模块XML扩展类数据表 pre_common_cache 公用缓存表 pre_common_card 充值卡表 pre_common_connect_guest QQ互联游客表 pre_common_credit_log 积分记录表 pre_common_credit_log_field 积分记录详细信息 3.0版本增加 pre_common_credit_rule 积分策略表 pre_common_credit_rule_log 积分策略生效记录 pre_common_credit_rule_log_field…

  • MacOS下管理配置多个Git账户

    MacOS下管理配置多个Git账户

    mac下生成密钥对,以下是mac下.ssh/config的通用配置,User通用都是git: 本地生成的密钥对,假设公钥传到gitlab服务器的ad_reporter用户中,ssh测试下: ad_reporter的权限必须给到xxx这个组,才能拉取代码,命令: 我们经常将代码托管到github、gitlab这样的网站上。为了避免每次push代码时都要输入用户名和密码,通常会选择使用ssh协议,将公钥保存到托管网站上。在实际开发中,往往要将代码托管到多个不同的网站上。比如,公司的代码需要托管到coding上,自己的开源代码托管到GitHub上,私有代码托管到gitlab上等等,每个托管网站都对应一个git账户。默认情况下,一台电脑的Git只对应一个账户,只能往一个网站push代码,非常不便。这篇博客将介绍如何在一个Git终端中配置多个账户,同时管理多个托管网站的代码。 准备工作 首先,需要准备好对Git的全局用户进行配置。在初次安装Git时,往往会使用如下的命令配置全局用户名和邮箱:git config –global user.name “xxx” // 配置全局用户名,如Github上注册的用户名git config –global user.email “yyy@mail.com” // 配置全局邮箱,如Github上配置的邮箱这个–global选项,是指这里配置的user.name和user.email是相对于全局进行配置的,即不同的Git仓库默认的用户名和邮箱都是这个值。由于需要管理多个账户,所以仅仅使用这个全局值是不够的,需要在每个仓库中单独配置。对此,有两种处理方法:如果之前已经使用该命令进行配置,则先使用如下命令清除git config –global –unset user.namegit config –global –unset user.email如果不确定是否已经配置过,可以使用下面的命令查看git config –global user.namegit config –global user.email 配置步骤 1. 对每个账户生成一对密钥首先进入保存秘钥的目录:cd ~/.ssh // 进入目录,该目录下保存生成的秘钥然后,根据账户邮箱生成秘钥。例如我在GitHub上的邮箱是fox@moneyslow.com,则命令为:ssh-keygen -t rsa -C “fox@moneyslow.com”输入完成后,会有如下提示:Generating public/private rsa key pair.Enter file in which to save the key (/Users/fox/.ssh/id_rsa):这里要求对秘钥进行命名,默认的文件名是id_rsa。为了方便区分,我这里命名为id_rsa_github。接下来的提示都直接进行回车,直到秘钥生成。通过ls命令,可以看到刚刚生成的密钥对id_rsa_github和id_rsa_github.pub。其中id_rsa_github.pub是公钥。同样,对于GitLab上的账户,我是用另一个邮箱注册的,按照同样的步骤生成id_rsa_gitlab的秘钥对。接下来的步骤,除额外说明外,两个账户的操作完全相同。2. 私钥添加到本地SSH协议的原理,就是在托管网站上使用公钥,在本地使用私钥,这样本地仓库就可以和远程仓库进行通信。在上一步已经生成了秘钥文件,接下来需要使用秘钥文件,首先是在本地使用秘钥文件:ssh-add…

  • ssh-agent和ssh-add的关系

    ssh-agent和ssh-add的关系

    一、ssh-agent是一个密钥管理器,运行ssh-agent以后,使用ssh-add将私钥交给ssh-agent保管。 使用ssh-agent后,可以通过ssh-add命令向ssh-agent注册本机的私钥,ssh-agent会自动推导出这个私钥的指纹(实际上是ssh-add计算的)保存在自己的小本本里(内存),以后只要ssh连接某主机(某用户),将自动转发给ssh-agent,ssh-agent将自动从它的小本本里查找私钥的指纹并将其发送给服务端(sshd端)。如此一来,ssh客户端就无需再指定使用哪个私钥文件去连接。 总的看上去,ssh-agent的角色就是帮忙存储、查找并发送对应的指纹而已,也就是说它是一个连接的转发人,扮演的是一个代理的角色。 ssh-agent的启动,一般情况下macOS已经有此进程: % ps -ef|grep ssh-agent 501 2489 1 0 四09上午 ?? 0:00.32 /usr/bin/ssh-agent -l 二、macOS 下使用 ssh-add 命令将SSH 密钥添加到ssh-agent 代理 三、将 SSH 私钥(id_ed25519)添加到 ssh-agent 并将密码存储在密钥链中: ssh-add -K ~/.ssh/id_ed25519 四、测试 SSH 连接之前,确认好3个工作: 1、检查现有 SSH 密钥(.ssh/目录下是否有密钥文件,通过ssh-add -l 查看已经加入ssh-agent密钥管理器的密钥) 2、生成新 SSH 密钥 (ssh-keygen -t rsa -C “fox@github.com”) 3、新增 SSH 密钥到 GitHub 帐户 (在github的设置里)   五、测试…

  • Mac下利用brew工具把git版本从2.23升级到2.30

    查看目前git版本为2.23: fox@MacBook-Air ~ % git –version git version 2.23.0 进行升级: fox@MacBook-Air ~ % brew upgrade git Updating Homebrew… ==> Downloading https://homebrew.bintray.com/bottles-portable-ruby/portable-ruby-2.6.3_2.yosemite.bottle.tar.gz -=O=- # # # # curl: (6) Could not resolve host: d29vzk4ow07wi7.cloudfront.net ==> Downloading https://github.com/Homebrew/homebrew-portable-ruby/releases/download/2.6.3_2/portable-ruby-2.6.3_2.yosemite.bottle.tar.gz #################################################################################################################### 100.0%#################################################################################################################### 100.0% ==> Pouring portable-ruby-2.6.3_2.yosemite.bottle.tar.gz ==> Auto-updated Homebrew! Updated 3 taps (laggardkernel/tap, homebrew/core and homebrew/cask). ==> New Formulae…

  • 如何升级Kali linux系统?

    在 /etc/apt/sources.list 里原来的内容全部删除,改为: deb https://http.kali.org/kali kali-rolling main non-free contrib deb-src https://http.kali.org/kali kali-rolling main non-free contrib # apt update Hit:1 http://dl.google.com/linux/chrome/deb stable InRelease Hit:2 https://mirrors.neusoft.edu.cn/kali kali-rolling InRelease Reading package lists… Done Building dependency tree Reading state information… Done 879 packages can be upgraded. Run ‘apt list –upgradable’ to see them. 以下命令查看可以升级的所有安装包: apt list –upgradable 现在我们有两个选择,如果安装固定包,执行:apt install…

  • 如何用OkHttp实现WebSocket长连接

    如何用OkHttp实现WebSocket长连接

    HTML5规范引出了WebSocket协议是一种建立在TCP协议基础上的全双工通信的协议。他跟Http同属于应用层协议,下层还是需要通过TCP建立连接。

  • telnet ipv6 port ?

    telnet ipv6 port ?

    如何telnet ipv6端口

  • linux怎么pingipv6地址

    linux怎么pingipv6地址

    首先保证自己已经在ipv6环境里,在Linux下,通过以下命令ping ipv6地址,注意,不是ping,是ping6 了 # ping6 ipv6.google.com PING ipv6.google.com(lax28s10-in-x0e.1e100.net (2607:f8b0:4007:80d::200e)) 56 data bytes 64 bytes from lax28s10-in-x0e.1e100.net (2607:f8b0:4007:80d::200e): icmp_seq=1 ttl=119 time=0.373 ms 64 bytes from lax28s10-in-x0e.1e100.net (2607:f8b0:4007:80d::200e): icmp_seq=2 ttl=119 time=0.404 ms 64 bytes from lax28s10-in-x0e.1e100.net (2607:f8b0:4007:80d::200e): icmp_seq=3 ttl=119 time=0.403 ms 那么ping不能用了么?当然不是,以下是ping命令,带一个参数-6 就可以了。 # ping -6 ipv6.google.com PING ipv6.google.com(lax28s10-in-x0e.1e100.net (2607:f8b0:4007:80d::200e)) 56 data bytes 64 bytes from lax28s10-in-x0e.1e100.net…

  • Linux下如何mount你的usb硬盘

    Linux下如何mount你的usb硬盘

    首先需要在Linux系统里检测到USB硬盘 将USB设备插入USB端口后,Linux系统将一个新的块设备添加到/dev/目录中。这个阶段还无法使用该设备,因为在获取或存储任何数据之前需要先清除USB文件系统。 查找块设备文件的名称,可以运行fdisk -l命令。 # fdisk -l OR $ sudo fdisk -l 执行上述命令后,输出 Disk /dev/sdc: 7.4 GiB, 7948206080 bytes, 15523840 sectors Units: sectors of 1 * 512 = 512 bytes Sector size (logical/physical): 512 bytes / 512 bytes I/O size (minimum/optimal): 512 bytes / 512 bytes Disklabel type: dos Disk identifier: 0x00000000 Device Boot Start…

  • ipv6概念讲解小视频

    ipv6概念讲解小视频

  • wordpress或者 Discuz 利用sql语句批量更新替换帖子文章内容字符串
  • 国内支持ipv6的网站

    国内支持ipv6的网站

    国内支持ipv6的网站大部分是教育网内高校的系统,比如清华大学的镜像网址 https://mirrors.tuna.tsinghua.edu.cn 。进入后右侧可以看到有ipv6的网址:https://mirrors6.tuna.tsinghua.edu.cn 因为是IPv6的,所以IPv4下无法访问。如果想在ipv4环境下测试ipv6网址,可通过 IPv6代理测试网址 https://ipv6screen.moneyslow.com 进行测试,返回ipv6网址内容。

  • ipv6测试网站有哪些?

    ipv6测试网站有哪些?

    目前中国大范围上ipv6,非技术人员几乎无感,大家也没必要关心。 专业人士如需测试ipv6,如果测试纯ipv6的网址内容,但是要在ipv4环境下测试,可以通过 https://ipv6screen.moneyslow.com 进行测试。 其返回ipv6 only的网址内容。

  • 如何在Windows 10上安装WSL 2

    WSL 2是Microsoft早在2017年推出的WSL原始版本的重大升级。WSL2更快,更通用,并且使用了真正的Linux内核。 在Windows 10 安装WSL 2 的前提: 1、版本:Windows 10 May 2020 (2004), Windows 10 May 2019 (1903), or Windows 10 November 2019 (1909) or later 若要更新到 WSL 2,需要运行 Windows 10。 对于 x64 系统:版本 1903 或更高版本,采用 内部版本 18362 或更高版本。 对于 ARM64 系统:版本 2004 或更高版本,采用 内部版本 19041 或更高版本。 低于 18362 的版本不支持 WSL 2。 使用 Windows Update 助手更新…

  • Ubuntu配置国内清华大学源

    Ubuntu配置国内清华大学源

    打开清华源官网 https://mirror.tuna.tsinghua.edu.cn/help/ubuntu/ 选择自己对应的系统版本,如:20.04 LTS 得到下面的结果: # 默认注释了源码镜像以提高 apt update 速度,如有需要可自行取消注释 deb https://mirrors.tuna.tsinghua.edu.cn/ubuntu/ focal main restricted universe multiverse # deb-src https://mirrors.tuna.tsinghua.edu.cn/ubuntu/ focal main restricted universe multiverse deb https://mirrors.tuna.tsinghua.edu.cn/ubuntu/ focal-updates main restricted universe multiverse # deb-src https://mirrors.tuna.tsinghua.edu.cn/ubuntu/ focal-updates main restricted universe multiverse deb https://mirrors.tuna.tsinghua.edu.cn/ubuntu/ focal-backports main restricted universe multiverse # deb-src https://mirrors.tuna.tsinghua.edu.cn/ubuntu/ focal-backports main restricted universe multiverse…

  • Centos8中启用EPEL库

    安装配置包 EPEL8在RHEL 8 / CentOS 8上启用存储库非常简单:我们需要做的就是下载并安装包含存储库文件的配置包。 我们可以使用dnf软件包管理器直接执行操作: $ sudo dnf install https://dl.fedoraproject.org/pub/epel/epel-release-latest-8.noarch.rpm 我们只是使用dnf与install子命令,并提供https的URL,在运行命令后,显示并提示我们确认要安装该软件包: =================================================== Package Arch Version Repository Size =================================================== Installing: epel-release noarch 8-5.el8 @commandline 21 k Transaction Summary =================================================== Install 1 Package Total size: 21 k Installed size: 30 k Is this ok [y/N]: y 如果我们通过键入“ y”并按Enter确认,则将安装该软件包。 要查看这些文件的安装位置,我们可以运行以下命令: sudo rpm -ql epel-release 在上面的命令中,该-q选项是–query的缩写,-l而是–list的缩写,用于列出软件包中包含的文件。上面的命令产生以下输出: /etc/pki/rpm-gpg/RPM-GPG-KEY-EPEL-8…

  • 安装Ubuntu 20.04之后必须要做的10件事情

    安装Ubuntu 20.04之后必须要做的10件事情

    在安装完最新的ubuntu20.04后,以下10件事情仅为个人建议,做为参考。 1、启用黑暗模式 Ubuntu 20.04具有深色模式选项 打开设置>外观  Open Settings > Appearance 选择“深色窗口” 设置 Select ‘Dark Windows’ setting 更改立即生效,立即使大多数应用程序的背景和工具栏变暗。请注意,Ubuntu中的暗模式不会更改GNOME Shell UI的颜色,例如通知,日历和系统菜单。 当您厌倦了黑暗的外观时,可以在“外观设置”面板中切换回默认的“混合”模式 2.安装GNOME Tweaks GNOME Tweaks是瑞士军刀的选择,包括… 更改GTK和图标主题 将窗口按钮向左移动 更改桌面字体和字体大小 自动居中新窗口 在时钟标签中显示工作日 在动态和静态工作空间之间切换 3、强大的文件预览工具 GNOME Sushi是用于GNOME Shell桌面的方便的空格键预览工具。 曾经尝试过macOS的任何人都会立即知道“空格键预览”的含义,这是Apple操作系统首次使用并广受欢迎的功能。 首先在Nautilus文件管理器中选择(单击)文件,然后单击空格键。这将打开文件的即时预览。预览的构成将根据文件本身而有所不同,但是支持大多数常用的文件格式。您可以使用Sushi即时预览图像,播放媒体,滚动浏览PDF和LibreOffice文档,获取文件夹大小信息等,而所有这些都无需打开单个应用程序。 当您找到要完全打开的文件时,“ Sushi”窗口(在大多数情况下)为您提供了打开文件的选项。 Sushi是免费的开源软件。您可以从Ubuntu软件应用程序将其安装在Ubuntu上。只需按名称搜索“ sushi”。 4、启用最小化点击 如果您希望应用程序在单击时最小化到其Ubuntu停靠图标,则可以手动启用该行为。我的意思是手动,因为尽管它是最流行的Ubuntu调整之一,但仍然没有简便的GUI方法可以做到这一点。 打开一个新的终端窗口,然后键入以下命令以实现在Ubuntu中启用最小化单击: gsettings set org.gnome.shell.extensions.dash-to-dock click-action ‘minimize’ 5、显示电池百分比 如果您不使用笔记本电脑(或者您不想在不打开状态菜单的情况下一目了然地看到电池电量百分比),请跳过此步骤。 Ubuntu的电池指示器可让您快速监视电池寿命,而无需打开状态菜单。但是它有点小,并且有点模糊。 打开GNOME Tweaks 选择“顶部栏” ‘Top Bar’ 将“电池百分比”…

  • zsh: bad CPU type in executable: nmap报错了,Mac下如何卸载nmap

    zsh: bad CPU type in executable: nmap报错了,Mac下如何卸载nmap

    错误如下: zsh: bad CPU type in executable: nmap 经查 在Mac10.15中已经不允许32位的软件运行了,弹出如上错误。 在官网nmap.org上重新下载安装。 $ which nmap /usr/local/bin/nmap $ nmap –version zsh: bad CPU type in executable: nmap 因此,我们需要把nmap删除掉,方法如下: cd /usr/local sudo rm -f bin/nmap bin/nmap-update bin/xnmap sudo rm -rf share/nmap

  • Git的7个神仙技巧,让你功力大增

    1、Git 中的自动更正 我们有时都会打错字,但如果启用了 Git 的自动更正功能,就可以让 Git 自动修正打错的子命令。假设你想用 git status 检查状态,却不小心输入了 git stats。正常情况下,Git 会告诉你 stats 不是一条有效的命令:$ git statsgit: ‘stats’ is not a git command. See ‘git –help’.The most similar command isstatus为了避免类似的情况发生,请在 Git 配置中启用 Git 自动更正功能:$ git config –global help.autocorrect 1如果你希望这个命令只适用于你当前的版本库,请省略 –global 选项。这条命令启用了自动更正功能。更深入的教程可以在 Git Docs 中找到,但尝试一下和上面一样的错误命令,就能很好地了解这个配置的作用:$ git statsgit: ‘stats’ is not a git command. See ‘git –help’.On…

  • linux中习惯用ip命令代替ifconfig

    ip命令工作在OSI 网络栈的两个层上:第二层(数据链路层)和第三层(网络 或 IP)层。它做了之前net-tools包的所有工作。 安装 ip ip命令包含在iproute2util包中,一般都会有,自己想办法安装。 ifconfig 和 ip 使用对比: 查看网口和 IP 地址 如果你想查看主机的 IP 地址或网络接口信息,ifconfig(不带任何参数)命令提供了一个很好的总结: $ ifconfig $ ip address show,或者简写为ip a: $ ip a 添加 IP 地址 使用 ifconfig命令添加 IP 地址命令为: $ ifconfig eth0 add 192.9.203.21 ip类似: $ ip address add 192.9.203.21 dev eth0 ip中的子命令可以缩短,所以下面这个命令同样有效: $ ip addr add 192.9.203.21 dev eth0…

  • Kafka消息系统教程(一文读懂kafka)

    Kafka消息系统教程(一文读懂kafka)

    消息系统的作用,应该大部分小伙伴都清楚,用机油装箱举个例子。 所以消息系统就是如上图我们所说的仓库,能在中间过程作为缓存,并且实现解耦合的作用。 引入一个场景,我们知道中国移动,中国联通,中国电信的日志处理,是交给外包去做大数据分析的,假设现在它们的日志都交给了你做的系统去做用户画像分析。 按照刚刚前面提到的消息系统的作用,我们知道了消息系统其实就是一个模拟缓存,且仅仅是起到了缓存的作用而并不是真正的缓存,数据仍然是存储在磁盘上面而不是内存。 Topic主题 Kafka学习了数据库里面的设计,在里面设计了topic(主题),这个东西类似于关系型数据库的表。 此时我需要获取中国移动的数据,那就直接监听TopicA即可。 Partition分区 kafka还有一个概念叫Partition(分区),分区具体在服务器上面表现起初就是一个目录,一个主题下面有多个分区,这些分区会存储到不同的服务器上面,或者说,其实就是在不同的主机上建了不同的目录。这些分区主要的信息就存在了.log文件里面。跟数据库里面的分区差不多,是为了提高性能。 至于为什么提高了性能,很简单,多个分区多个线程,多个线程并行处理肯定会比单线程好得多。 Topic和partition像是HBASE里的table和region的概念,table只是一个逻辑上的概念,真正存储数据的是region,这些region会分布式地存储在各个服务器上面,对应于Kafka,也是一样,Topic也是逻辑概念,而partition就是分布式存储单元。这个设计是保证了海量数据处理的基础。我们可以对比一下,如果HDFS没有block的设计,一个100T的文件也只能单独放在一个服务器上面,那就直接占满整个服务器了,引入block后,大文件可以分散存储在不同的服务器上。 注意: 分区会有单点故障问题,所以我们会为每个分区设置副本数; 分区的编号是从0开始的。 Producer – 生产者 往消息系统里面发送数据的就是生产者。 Consumer – 消费者 从Kafka里读取数据的就是消费者。 Message – 消息 Kafka里面的我们处理的数据叫做消息。 Kafka的集群架构 创建一个TopicA的主题,3个分区分别存储在不同的服务器,也就是broker下面。Topic是一个逻辑上的概念,并不能直接在图中把Topic的相关单元画出。 需要注意:Kafka在0.8版本以前是没有副本机制的,所以在面对服务器宕机的突发情况时会丢失数据,所以尽量避免使用这个版本之前的Kafka。 Replica – 副本 Kafka中的partition为了保证数据安全,所以每个partition可以设置多个副本。 此时我们对分区0,1,2分别设置3个副本(其实设置两个副本是比较合适的)。 而且其实每个副本都是有角色之分的,它们会选取一个副本作为leader,而其余的作为follower,我们的生产者在发送数据的时候,是直接发送到leader partition里面,然后follower partition会去leader那里自行同步数据,消费者消费数据的时候,也是从leader那去消费数据的。 Consumer Group – 消费者组 我们在消费数据时会在代码里面指定一个group.id,这个id代表的是消费组的名字,而且这个group.id就算不设置,系统也会默认设置。 conf.setProperty(“group.id”,”tellYourDream”) 我们所熟知的一些消息系统一般来说会这样设计,就是只要有一个消费者去消费了消息系统里面的数据,那么其余所有的消费者都不能再去消费这个数据。可是Kafka并不是这样,比如现在consumerA去消费了一个topicA里面的数据。 consumerA: group.id = a consumerB: group.id = a consumerC: group.id = b consumerD: group.id = b 再让consumerB也去消费TopicA的数据,它是消费不到了,但是我们在consumerC中重新指定一个另外的group.id,consumerC是可以消费到topicA的数据的。而consumerD也是消费不到的,所以在Kafka中,不同组可有唯一的一个消费者去消费同一主题的数据。 所以消费者组就是让多个消费者并行消费信息而存在的,而且它们不会消费到同一个消息,如下,consumerA,B,C是不会互相干扰的。 consumer group:a…

  • Docker设置配置的三种方式

    一、利用Linux的http_proxy等环境变量的dockerd代理 在执行docker pull时,是由守护进程dockerd来执行。 因此,代理需要配在dockerd的环境中。 而这个环境,则是受systemd所管控,因此实际是systemd的配置。 sudo mkdir -p /etc/systemd/system/docker.service.d sudo touch /etc/systemd/system/docker.service.d/proxy.conf 在这个proxy.conf文件中,添加以下内容: [Service] Environment=”HTTP_PROXY=http://proxy.money.com:8080/” Environment=”HTTPS_PROXY=http://proxy.money.com:8080/” Environment=”NO_PROXY=localhost,127.0.0.1,.money.com” 二、Container代理:在容器运行阶段,如果需要代理上网,则需要配置~/.docker/config.json。 以下配置,只在Docker 17.07及以上版本生效。 { “proxies”: { “default”: { “httpProxy”: “http://proxy.money.com:8080”, “httpsProxy”: “http://proxy.money.com:8080”, “noProxy”: “localhost,127.0.0.1,.money.com” } } } 这个是用户级的配置,除了proxies,docker login等相关信息也会在其中。 而且还可以配置信息展示的格式、插件参数等。此外,容器的网络代理,也可以直接在其运行时通过-e注入http_proxy等环境变量。 这两种方法分别适合不同场景。 config.json非常方便,默认在所有配置修改后启动的容器生效,适合个人开发环境。 在CI/CD的自动构建环境、或者实际上线运行的环境中,这种方法就不太合适,用-e注入这种显式配置会更好,减轻对构建、部署环境的依赖。 当然,在这些环境中,最好用良好的设计避免配置代理上网。 三、docker build代理:虽然docker build的本质,也是启动一个容器,但是环境会略有不同,用户级配置无效。 在构建时,需要注入http_proxy等参数。 docker build . \ –build-arg “HTTP_PROXY=http://proxy.money.com:8080/” \ –build-arg “HTTPS_PROXY=http://proxy.money.com:8080/” \…

  • Ubuntu18.04下安装docker compose 最新版

    从github安装最新版docker compose,命令如下: sudo apt-get update sudo apt-get upgrade sudo apt install curl sudo curl -L “https://github.com/docker/compose/releases/download/1.24.0/docker-compose-$(uname -s)-$(uname -m)” -o /usr/local/bin/docker-compose sudo chmod +x /usr/local/bin/docker-compose 直接安装ubuntu的官方版本的方法: apt-get install docker-compose. 建议从 Docker的官方 GitHub 仓库安装最新版本。 验证版本:docker–compose –version 删除docker compose就比较简单了: sudo rm /usr/local/bin/docker-compose apt-get remove docker-compose apt-get autoremove 运行例子: vi docker-compose.yml 内容如下: version: ‘2’ services: hello-world: image: hello-world:latest 先敲一个命令查看镜像列表:…

  • X-Frame-Options(点击劫持)漏洞分析及web配置修复
  • Multilogin浏览器是什么,入门必知的几个问题,为什么要使用它?

    Multilogin浏览器是什么,入门必知的几个问题,为什么要使用它?

    1、一台电脑模拟多个真实的设备:Multilogin可以帮助您运行多个拥有唯一性设置的浏览器配置文件,在网站看来,这些浏览器配置文件就是多个不同的真实设备。软件有价值之处在于,您不再需要投入设置虚拟机的时间和物质成本,只需在您的电脑设备中运行软件,即可模拟多个虚拟浏览器。2、需要同时在不同的社交媒体和热门网站上运行多个帐户。如果没有Multilogin,对方会认为你一台电脑登录多个账号,如果有了Multilogin,你可以模拟多个地方的多个账号。3、如何免费测试?2019年11月5日: 测试版本已经关闭了4、不推荐在若干设备上使用同一个浏览器配置文件。5、可以在虚拟机中使用Multilogin。6、哪里找代理ip?其实Multilogin是有推荐的(住宅代理:LUMINATI,GEOSURF,OXYLABS;手机ip:AIRSOCKS,LUMINATI;数据中心ip:LUMINATI,SLL PRIVATE ),在这里找https://multilogin.com/zh-hans/proxy/7、不想让网站发现你使用了Multilogin,有几点注意:a) 在设置相同的虚拟机(VM)或虚拟专用服务器(VPS)上运行Multilogin。b) 在有着相同硬件、驱动程序、操作系统的同一型号的机器中运行Multiloginc) 在同样的Mac电脑上运行Multilogin8、可以模仿手机用户,文档:https://docs.multilogin.com/l/zh/article/plho1ameey-9、网站可能看到你的Mac地址,因为Google可以通过Chrome内一些隐藏的内置操作来获取MAC地址10、购买方式有哪些?PayPal、Bitcoin、信用卡11、PayPal错误: 10417 ,被Paypal拒绝了,需要看看https://www.paypal.com/uk/smarthelp/article/why-did-i-get-api-error-code-10417-ts137512、一次可以运行多少个浏览器配置文件?100 扩展阅读:

  • ipv6 dns推荐:公共IPv6的DNS服务器ping6速度排名,阿里最快,百度挂了

    ipv6 dns推荐:公共IPv6的DNS服务器ping6速度排名,阿里最快,百度挂了

    IPv6 dns推荐,包含中国大公司和运营商,国际互联网公司及机构

  • Nginx代理网站替换内容的字符编码和节省流量问题解决办法

    Nginx代理网站替换内容的字符编码和节省流量问题解决办法

    1、代理一个网站: location / { proxy_pass http://www.moneyslow.com/; } 2 替换一些内容 location / { # 必须设置,不然www.moneyslow.com返回的是gzip压缩过的内容 proxy_set_header Accept-Encoding “”; proxy_pass http://www.moneyslow.com/; # 使用sub模块 sub_filter_once off; # 可用替换多次 sub_filter “海阔中文网” “慢慢赚钱新闻”; # 把 海阔中文网 替换成 慢慢赚钱新闻 sub_filter “NBA” “NBC”; # 把 NBA 替换成 NBC } 注意事项:如果只有“NBA”替换成“NBC”成功了,“海阔中文网”替换成“慢慢赚钱新闻”失败了,这个问题要处理字符编码问题,打开Chrome浏览器的调试窗口,服务器返回的内容经过了gzip压缩,内容编码为GB2312,gzip压缩的问题我们用 proxy_set_header Accept-Encoding “”; 指令解决了。对于编码问题,由于配置文件的编码为UTF-8,网页内容编码为GB2312,所以对于中文,编码不一样,无法用“慢慢赚钱新闻”替换“海阔中文网”。把配置文件夹保存为GBK(兼容GB2312)试下。 3 通过两次proxy_pass节省流量 在上一步中,我们需要用 proxy_set_header Accept-Encoding “”;配置指令,以便让www.moneyslow.com返回解压缩后的内容,以方便内容替换。这种做法会增加网络流量,更好的方法:用两次proxy_pass,第一次是向远程服务器,获取到的是gzip压缩的内容,第二次是内部proxy_pass,获取到解压后的内容。 location /…

  • 为啥要用RPC代替HTTP

    为啥要用RPC代替HTTP

    先复习以下基础网络知识: 一、七层网络结构模型回顾: 我们先来了解一下OSI的七层网络结构模型(虽然实际应用中基本上都是五层),它可以分为以下几层:(从上到下) 第一层:应用层。定义了用于在网络中进行通信和传输数据的接口; 第二层:表示层。定义不同的系统中数据的传输格式,编码和解码规范等; 第三层:会话层。管理用户的会话,控制用户间逻辑连接的建立和中断; 第四层:传输层。管理着网络中的端到端的数据传输; 第五层:网络层。定义网络设备间如何传输数据; 第六层:链路层。将上面的网络层的数据包封装成数据帧,便于物理层传输; 第七层:物理层。这一层主要就是传输这些二进制数据。 实际应用过程中,五层协议结构里面是没有表示层和会话层的。应该说它们和应用层合并了。我们应该将重点放在应用层和传输层这两个层面。因为HTTP是应用层协议,而TCP是传输层协议。好,知道了网络的分层模型以后我们可以更好地理解为什么RPC服务相比HTTP服务要Nice一些! 二、HTTP 服务特点: 其实在很久以前,我对于企业开发的模式一直定性为HTTP接口开发,也就是我们常说的RESTful风格的服务接口。的确,对于在接口不多、系统与系统交互较少的情况下,解决信息孤岛初期常使用的一种通信手段;优点就是简单、直接、开发方便。利用现成的http协议进行传输。我们记得之前实习在公司做后台开发的时候,主要就是进行接口的开发,还要写一大份接口文档,严格地标明输入输出是什么?说清楚每一个接口的请求方法,以及请求参数需要注意的事项等。比如下面这个例子: POST http://www.moneyslow.com/restful/user/info 接口可能返回一个JSON字符串或者是XML文档。然后客户端再去处理这个返回的信息,从而可以比较快速地进行开发。但是对于大型企业来说,内部子系统较多、接口非常多的情况下,RPC框架的好处就显示出来了,首先就是长链接,不必每次通信都要像http一样去3次握手什么的,减少了网络开销;其次就是RPC框架一般都有注册中心,有丰富的监控管理;发布、下线接口、动态扩展等,对调用方来说是无感知、统一化的操作。 三、RPC 架构特点: 一个完整的RPC架构里面包含了四个核心的组件,分别是Client ,Server,Client Stub以及Server Stub,这个Stub大家可以理解为存根。分别说说这几个组件: 客户端(Client),服务的调用方。 服务端(Server),真正的服务提供者。 客户端存根,存放服务端的地址消息,再将客户端的请求参数打包成网络消息,然后通过网络远程发送给服务方。 服务端存根,接收客户端发送过来的消息,将消息解包,并调用本地的方法。 四、 什么时候需要PRC: 先来看一下,没有RPC的时候,会怎么样: 在过去是这样的,包括现在很多对企业服务可能也是这样,只有一个包部署在web服务器里。那个时候,没什么需要用到RPC的场景。然后当用户量大的时候呢?渐渐出现了负载均衡。“海阔中文网”为您分析,大概是这个样子: 负载均衡能解决的问题很多,但是还是不够好,比如说,只是某一个功能模块(假设是用户中心)被访问的次数特别频繁,我可不可以把这部分内容单独拿出去?用户中心的机器独立,给它单独的带宽,给他单独的服务器,给他单独的数据库? 不这么干其他的功能模块都干不下去了啊。 以学校餐厅举例: 学校餐厅,可以容纳500人同时就餐,但是有一家面馆,生意特别好,每到饭点来吃饭的人都有2000人,占满了餐桌,排队好几百米,餐厅的其他摊位肯定不乐意了吧?比如那个卖水饺的,虽然每天几十个人来吃饭。那也是钱啊。你人这么多,想来我这吃饭的人都挤不进来了,大概情景是这样的: 这样能看懂吧?遇到这种场景怎么办?不可能不让面馆开门营业啊,那最好的方式就是:“你可不可以搬出去?” 你不搬我们搬也行!(哭泣脸,反正我们是再也不要和你家面馆开在一起了,必须给我们一个说法) 那么,搬家之后的样子可能是这样的。 嗯啊。分是分开了,然后餐卡什么的还是在一起,还是和其他窗口一样,给大家提供就餐的功能。这就是分而治之,哪怕你面馆关门了,也不影响我,这又叫分布式。(“分布式”划重点) 说到分布式,就问题就来了。 可不可以互相调用?其实细分下去,买菜,切菜,结账这些都是独立的流程,我们能不能都把它们独立出来? 当然是可以的,但是带来的问题就是,如何通信?大家都不在一个进程里。 这种通信的方式,就叫做RPC,在今天,RPC已经不仅仅是远程,这个远程,确切来说,就是指不在一个进程内,只能通过其他协议来完成,通常都是TCP或者是Http。 好了,RPC讲清楚了,再看RPC的重点是什么。 不能太慢,对不对?如果太慢了,怎么办? 这种性能的要求,要做到什么程度?希望是和在同一个进程里,一致的体验。 Http能做到这种程度么? 不行。Http(TCP)本身的三次握手协议,就会带来大概1MS的延迟(emmm,这个数据其实我有点不确定了,也可能是几微秒,很早之前做过测试)。 每发送一次请求,都会有一次建立连接的过程,加上Http报文本身的庞大,以及Json的庞大,都需要作一些优化。 一般的场景下,没什么问题,但是对于Google这种级别的公司,他们接受不了。 几MS的延迟可能就导致多出来几万台服务器,所以他们想尽办法去优化,优化从哪方面入手? 1.减少传输量。 2.简化协议。 3.用长连接,不再每一个请求都重新走三次握手流程 Http的协议就注定了,在高性能要求的下,不适合用做线上分布式服务之间互相使用的通信协议。…

  • 全屋装修电路回路插座电线空开布线图参考

    全屋装修电路回路插座电线空开布线图参考

    以下为全屋装修中电线、回路以及空开选安装位置图。 一、电线选择 左边软芯(BVR),右边硬芯(BV),外边白色护套线除灯线外一般不用。 普通家装硬芯偏多,因为软芯接头处不方便固定。 电线常用色:火线红色、蓝色零线、双色地线(不是一定的,如零线也有绿色,地线也有黄色) 二、回路选择 常用回路 特别需要注意的一点就是冰箱单独回路,这样可以离开家断掉其他回路时保留冰箱供电。 可增回路 三、空开选择: 左边空气开关、右边漏电保护开关。漏电保护增加了保护漏电及触电时的触发,空气开关只会在过载时跳闸。 家用空气开关分为1P、2P,漏电保护开关分为1P+N、2P。一般总路的选2P,分路选1P就可以。 P=极,N=零线 家用电线因穿管且室内温度较高,所以建议安全载流会比理论降低。 四、插座种类 除了基础的五孔插座以外,还有其他几种常用的插座也在这张图上有所体现。 唯一需要注意的事情就是洗手间可以加防溅盒。 五、插座布置 1、玄关插座 预留2-3个插座,插座高度如图,可以布置在鞋柜底部和中间。用于烘鞋器、氛围灯等。 2、客厅插座 客厅背面一般预留5-7个插座,沙发旁可选择USB插座。 客厅正面一般预留4-8个插座,电视机下可预留两个四孔插座。 3、卧室插座 整个卧室可以预留6-14个插座,床头、梳妆台插座如果想隐藏可以降低高度。 4、厨房插座 厨房是插座最多的地方,推荐使用带开关插座。 除了以上12个插座以外,还可以为洗碗机等增加2到3个,如果拥有中岛至少增加4到6个插座。 烤箱插座一般16A,同时不可留在烤箱后边。 5、餐厅插座 餐厅插座一般布置3-6个,主要用于小电器及餐桌火锅使用。 6、卫生间插座 卫生间插座一般预留4-6个,如果洗衣机烘干机在阳台就把插座挪到阳台,同时插座高于进水口。 7、智能设备插座 智能电器的位置会随着时代的进步而改变,今天我就把常见的几种罗列出来,供大家参考! 我自己全屋的插座数量以供参考 总结: 插座是家中最容易忽略但又是比较重要的环节,如果插座前期没有设计好那后期家里就变成盘丝洞了。 而插座的设计不单单是数量上,更重要的是位置、种类及线路、回路布置。  

  • sort命令排序文本文件内容的多种方式:按月,按数值,随机,按ASCII

    sort命令排序文本文件内容的多种方式:按月,按数值,随机,按ASCII

    去除重复行sort file |uniq 查找非重复行sort file |uniq -u 查找重复行sort file |uniq -d 统计sort file | uniq -c Linux sort命令可以以比你可能意识到的更多的方式来排列命令输出或文件内容-按字母,数字,按月和随机方式只是更有趣的选择之一。在本文中,我们将介绍一些更有用的排序选项,并说明它们之间的区别。 默认值默认排序似乎很简单。首先是数字,然后是字母,对于每个字母,小写字母都在大写字母之前。您可以期望看到这种排序:012345aAbBcCdDeE ASCII顺序查看这些字母中每个字母的数字字节值,您可能会注意到,就ASCII而言,上面看到的不是“自然顺序”。 # echo 012345aAbBcCdDeE | od -bc0000000 060 061 062 063 064 065 141 101 142 102 143 103 144 104 145 1050 1 2 3 4 5 a A b B c C d D…

  • Linux中可以通过propos命令通过语义来模糊查找相关命令

    Linux中可以通过propos命令通过语义来模糊查找相关命令

    如果想找排序相关的命令,就apropos sort, 想找计算相关的命令,就apropos compute,该命令使用用户提供的关键字来搜索man手册的名字和描述。以下是它的语法: apropos [OPTION…] KEYWORD.. 有很多选项:(本文来自海阔中文网 moneyslow.com) -d, –debug:获取调试信息。-v, –verbose:获取详细的警告信息。-r, — regex:以正则匹配的方式搜索关键字。-w, –wildcard:关键字包含通配符。-e, –exact:精确匹配关键字。-a, –and:要求匹配所有关键字。默认匹配任一关键字。-l, –long:完整输出,不将结果截取到终端的宽度。-s section, –section section:只查找指定的手册section。-m system[,…], –systems=system[,…]:用于查找其它操作系统的手册页。-M path, –manpath=path:设置man手册的路径。-L locale, –locale=locale:本地化。-C file, –config-file=FILE:使用这个参数指定的配置文件。-h, –help:输出帮助信息。 –usage : 输出一个简短的用法-V, –version:打印版本信息并退出。 man手册描述摘要: 当你使用 -r(正则匹配) ,或 -w(通配符),或 -e(精确匹配关键词) ,那么这个关键字通常被认为一个正则表达式。当你使用这些选项的时候,要把关键字放到双引号中,每一个特殊字符都要用反斜杠(\)进行转义。 这匹配规则可以匹配man手册页面的名字,和描述中的单词。  

  • 大文件排序的sort命令优化

    大文件排序的sort命令优化

    大文件sort命令排序速度优化

  • mysql数据类型timestamp存储的时间戳上限到2038年的解决方案

    方案1: 直接将字段数据类型(timestamp)修改成数据类型(datetime) alter table moneyslow modify intime datetime #海阔中文网# 方案2: 新建一个数据类型(datetime)的字段,修改程序代码,讨论自身业务定时启用新字段。  

  • HTTP和HTTPS的性能对比

    有人已经帮你想到了,访问https://www.httpvshttps.com

  • 利用多种方式优化Nginx的HTTPS性能延迟

    利用多种方式优化Nginx的HTTPS性能延迟

    开启http2 首先从优化TLS 握手和延迟入手,在Nginx 中的 TLS 设置中开启 HTTP/2,HTTP/2 标准是从 Google 的 SPDY 上进行的改进技术,比 HTTP 1.1 提升更多的性能,在需要并行多个请求的时候可以减少延迟。一般情况下一个网页需要请求很多次,而在 HTTP 1.1 时代浏览器能做的就是开多个连接进行并行请求,而HTTP2可以在一个连接中进行并行请求。HTTP2原生支持多个并行请求减少了顺序执行的请求的往返过程。 如果你想自己看一下 HTTP 1.1 和 HTTP 2.0 的速度差异,可以试一下:https://www.httpvshttps.com/。 访问海阔中文网,网络测试下来 HTTP/2 比 HTTP 1.1 快了89%,如下图所示: HTTP 1.1 与 HTTP 2.0 速度对比 在 Nginx 中开启 HTTP 2.0 非常简单,只需要增加一个 http2 标志即可: listen 443 ssl; # 更改为 listen 443 ssl http2; 注意:如果客户端不支持…

  • 全球ipv4/ipv6地址块列表

    全球ipv4/ipv6地址块列表

    地址 http://ipverse.net/