Google 搜索 2020 五月核心算法更新,以及如何应对

在五四这个伟大的日子里,Google 搜索宣布,推出 2020年五月 核心算法更新。如果过去一样,直接称之为 May 2020 Core Update。

一般这种算法大更新,从宣布开始,到全球各地数据同步,并反映到普通用户的搜索结果上,大概总要一到两个星期。这样推算,大概到今天,也就是五月十八日,基本更新完成。

may2020-core-update.jpg

Google 核心算法更新

每一天,谷歌通常会发布一个或多个旨在改善我们的搜索结果的变化。大多数变化并不明显,但会帮助 Google 逐步地继续改进。有时,更新可能会更加明显。

每年都会针对搜索算法和系统进行几次重大的、广泛的改动。Google 把这些变化称为 "核心更新"。这些更新的目的是为了确保向搜索者提供相关的权威内容。

Google 所确认的 核心更新,对某些网站可能有很大的影响,站长会注意到流量的下降和手机的变化,而那些遇到下降的网站都会试图修复,但Google 希望确保站长们不会把对的改成错的,另外,可能根本从网站的角度没有什么好修复的。

升级到 MovableType 7.3 (r.4607)

看到新的通知,MovableType 7.3.0 发布了,是 release 4607版本。
我目前用的是 r4605,所以基于对安全性的考虑还有性能方面的改进,当然是尽快升级为好。

因为使用的是个人免费版,到这个网址提取下载链接。

通常这种小升级,就做好备份就可以升级了,不需要做升级测试的。

升级的方式也就是覆盖文件,然后登录后台,会提示升级,继续就可以了。

movabletype7.jpg

最重要的还是做了哪些改进,下面来看看。

新增或者改进的功能

  • [MTC-26528] Add Table in RichText Editor.
  • [MTC-27218] Enable selecting tasks via run-periodic-tasks
  • [MTC-27190] Improve not to insert unnecessary line-feed or space in "Convert to Linefeed".
  • [MTC-27130] Log to STDERR when MT::Util::Log is not set.
  • [MTC-27119] Add PurePerl Digest::SHA、Digest::MD5 modules for fallback.
  • [MTC-27063] Log removing a file at rebuilding.
  • [MTC-27039] Improve the UI of editing category fields in Content Data.
  • [MTC-27011] Support PHP 7.4
  • [MTC-27006] Enable DBHost with Oracle.
  • [MTC-26629] Enable "requiresslreuse=YES" in Content Sync.
  • [MTC-26558] Add ids of HTML elements in the admin menu.
  • [MTC-10962] Support Emoji, with utf8mb4 of MySQL / MariaDB.

我把自认为比较有用的功能做了标记。

更新了一下 CDN 服务比较表

早几年为了寻找合适自己的网站和 Blog 的 CDN 服务,做了不少的搜索研究和比较,后来,想着或许有人也会需要,就做了这个比较表。

我用 Amazon 的 Cloudfront CDN 服务有些年头了,一直也用的不错,没有什么问题或者故障。但是人总是会想着会有更好的,或者新奇感,想尝试一些其它的服务商。

所以这就找出去年做的比较表,查找了各个服务商官方网站,更新了一下信息,并且加上 Beluga CDN 替换下了 Verizon。

belugacdn-home.jpg

Beluga CDN 介绍

节点数量和布局

Beluga CDN 的覆盖在全球有 28个全球节点,和 9 个超级节点。

价格及收费

Beluga CDN 是全球统一费率,US$0.01/GB。

对于 Request 收费而言,只有在每 GB 的流量超过 5K requests 的情况下才会额外收取费用,根据说明是$0.0035 / 10,000 request,举例来说,就算是通过 CDN 服务的都是 20KB 大小的文件,算上额外的 request 的费用,每 GB 也不过是 $0.026,还是非常低廉的。

可以免费试用,无需长期合同,按需使用付费。

迁移到新 VPS 并重建系统

在尝试安装新的 Ubuntu 20.04 ,并且把原来 VPS 上的网站所需要的那些功能,或者必要的模块,都能正常使用,没有兼容性的问题之后,在前天,开始新建一台 VPS,仍然放在了 DigitalOcean

基本上都是按照,上周所写的步骤,按照这样的顺序来安装:

  • Ubuntu 20.04 LTS
  • Webmin
  • Nginx
  • MariaDB
  • php7.4-fpm
  • Perl-Fastcgi
  • SSL 证书签发

迁移网站的过程也比较简单,主要包括两个部分,备份和恢复。

  • 原 VPS 上,打包所有的网站目录和文件,用 mysqldump 把相关的数据库都做了备份。
  • 新 VPS 上,从原 VPS 转移打包的文件和备份的数据库,先恢复数据库,然后解压缩打包的网站文件。如果数据库的连接用户名和密码同原来不同,做相应的修改。
  • 新 VPS 上,配置 nginx 的网站配置文件,参考原 VPS 上的配置文件。临时修改本机的 hosts 文件,把网站指向新 VPS 的 IP 地址,然后再本机调试,没有问题后。修改 DNS 设置,更新 IP,大概十五分钟后,全球 DNS 的访问都已经指向新 VPS 了。
  • 待所有的网站都迁移完毕,把原 VPS 上的网站 access.log 文件也备份到本地。用来分析网站访问来源的。
  • 大概等待两天左右,观察原 VPS 上的网站已经没有访问者了,就可以关闭,摧毁它了。

安装 Ubuntu 20.04, Webmin, Nginx, MariaDB, PHP7.4-FPM,Perl-Fastcgi 到 DigitalOcean 的 VPS(5)

安装 Ubuntu 20.04 LTS, Webmin, Nginx, MariaDB, PHP7.4-FPM,Perl-Fastcgi 到 DigitalOcean 的 VPS上。

之前介绍了如何在 DigitalOcean 创建新 VPS。并且完成基本的 Ubuntu 20.04 LTS的系统。然后介绍如何安装 Webmin 主机控制面板,时区设置和 SSH 的安全设置。再之后说明一下如何用之前的新添加的用户来安装 Nginx Web 服务器和 MairaDB数据库服务器。以及安装完 php 语言和SSL 证书的申请。

现在要来介绍一下如何配置 nginx了。

第五部分

修改 Nginx 配置文件,以满足证书的使用之前,先执行一个命令,来生成一个4096位的 dhparam 文件。

cd ~/ssl
openssl dhparam -out dhparam.pem 4096

需要等待一段时间,这个命令会执行比较长时间。

配置 https 主机

先来确认各个部分的版本信息,下面要用到。

davidyin@oak:~/ssl$ nginx -v
nginx version: nginx/1.17.10 (Ubuntu)
davidyin@oak:~/ssl$ openssl version
OpenSSL 1.1.1f 31 Mar 2020

配置参数的来源根据 Mozilla SSL Configuration Generator 这个生成器来产生。

ssl-config-generator.jpg我会建议采取 Modern 方式的配置。

主机配置文件做相应的修改, http 网站重定向到 https。 采用 http2,还有就是 HSTS 与载入配置,最后完整的 u20.webexample.win 的配置文件,可以到 gist 查看,也可以本地下载查看,仅供参考。

到 SSL Labs 检测 SSL的配置,评分得到 A。

ssllab-a-rating.jpg

安装 Ubuntu 20.04, Webmin, Nginx, MariaDB, PHP7.4-FPM,Perl-Fastcgi 到 DigitalOcean 的 VPS(4)

安装 Ubuntu 20.04 LTS, Webmin, Nginx, MariaDB, PHP7.4-FPM,Perl-Fastcgi 到 DigitalOcean 的 VPS上。

DavidYin 介绍了如何在 DigitalOcean 创建新 VPS。并且完成基本的 Ubuntu 20.04 LTS的系统。然后介绍如何安装 Webmin 主机控制面板,时区设置和 SSH 的安全设置。再之后说明一下如何用之前的新添加的用户来安装 Nginx Web 服务器和 MairaDB数据库服务器。

现在就是很重要的语言支持部分了。因为我用的最多的就是 php 以及 perl 语言。所以这两部分就是重点了。

第四部分

安装 php7.4-fpm

Ubuntu 20.04 LTS 仓库所包含的是 php7.4,目前 php 官方支持的版本是 从7.2,7.3,7.4 这三个系列。所以直接使用Ubuntu的就已经是很新的版本了。

sudo apt install php7.4 php7.4-fpm php7.4-cli php7.4-common php7.4-mbstring php7.4-gd php7.4-intl php7.4-xml php7.4-mysql php7.4-zip php7.4-json php7.4-curl

安装完成后,执行 php -V 命令,可以看到版本信息。

davidyin@oak:~$ php -v
PHP 7.4.3 (cli) (built: Mar 26 2020 20:24:23) ( NTS )
Copyright (c) The PHP Group
Zend Engine v3.4.0, Copyright (c) Zend Technologies
    with Zend OPcache v7.4.3, Copyright (c), by Zend Technologies

再看一下 php7.4-fpm 是否已经运行。

sudo service php7.4-fpm status

php74-fpm-status.jpg

安装 Ubuntu 20.04, Webmin, Nginx, MariaDB, PHP7.4-FPM,Perl-Fastcgi 到 DigitalOcean 的 VPS(3)

安装 Ubuntu 20.04 LTS, Webmin, Nginx, MariaDB, PHP7.4-FPM,Perl-Fastcgi 到 DigitalOcean 的 VPS上。

在第一部分,DavidYin 介绍了如何在 DigitalOcean 创建新 VPS。并且完成基本的 Ubuntu 20.04 LTS的系统。

第二部分介绍如何安装 Webmin 主机控制面板,时区设置和 SSH 的安全设置。

下面 DavidYin 要说明一下如何用之前的新添加的用户来安装 Nginx Web 服务器和 MairaDB数据库服务器。

第三部分

安装 Nginx Web 服务器

Ubuntu 20.04 LTS server版已经有了 Nginx 的 mainline 版本,所以可以直接安装,当前的最新版本是 1.17.10。

输入命令安装。

sudo apt install nginx

安装完成后,可以看一下安装后的版本以及编译信息

davidyin@oak:~$ nginx -V
nginx version: nginx/1.17.10 (Ubuntu)
built with OpenSSL 1.1.1f  31 Mar 2020
TLS SNI support enabled
configure arguments: --with-cc-opt='-g -O2 -fdebug-prefix-map=/build/nginx-Pmk9_C/nginx-1.17.10=. -fstack-protector-strong -Wformat -Werror=format-security -fPIC -Wdate-time -D_FORTIFY_SOURCE=2' --with-ld-opt='-Wl,-Bsymbolic-functions -Wl,-z,relro -Wl,-z,now -fPIC' --prefix=/usr/share/nginx --conf-path=/etc/nginx/nginx.conf --http-log-path=/var/log/nginx/access.log --error-log-path=/var/log/nginx/error.log --lock-path=/var/lock/nginx.lock --pid-path=/run/nginx.pid --modules-path=/usr/lib/nginx/modules --http-client-body-temp-path=/var/lib/nginx/body --http-fastcgi-temp-path=/var/lib/nginx/fastcgi --http-proxy-temp-path=/var/lib/nginx/proxy --http-scgi-temp-path=/var/lib/nginx/scgi --http-uwsgi-temp-path=/var/lib/nginx/uwsgi --with-debug --with-compat --with-pcre-jit --with-http_ssl_module --with-http_stub_status_module --with-http_realip_module --with-http_auth_request_module --with-http_v2_module --with-http_dav_module --with-http_slice_module --with-threads --with-http_addition_module --with-http_gunzip_module --with-http_gzip_static_module --with-http_image_filter_module=dynamic --with-http_sub_module --with-http_xslt_module=dynamic --with-stream=dynamic --with-stream_ssl_module --with-mail=dynamic --with-mail_ssl_module

在浏览器中输入 IP 地址,就可以看到默认 Nginx 网页了。

安装 MariaDB 数据库服务器

它其实就是一个 MySQL 服务器,目前 Ubuntu 20.04 LTS 软件仓库中包含的默认 MariaDB 版本是 10.3.22,此版本是 MariaDB 官方所维护的多个稳定版本之一,从5.5, 10.1, 10.2, 10.3, 10.4,这些个都是稳定版本。

所以也是直接安装就可以了。

安装 Ubuntu 20.04, Webmin, Nginx, MariaDB, PHP7.4-FPM,Perl-Fastcgi 到 DigitalOcean 的 VPS(2)

安装 Ubuntu 20.04 LTS, Webmin, Nginx, MariaDB, PHP7.4-FPM,Perl-Fastcgi 到 DigitalOcean 的 VPS上。

在第一部分,DavidYin 介绍了如何在 DigitalOcean 创建新 VPS。并且完成基本的 Ubuntu 20.04 LTS的系统。

下面是介绍如何安装 Webmin 这个主机控制面板和 SSH 的安全设置。这非常重要,安全性的事情,如何小心都不为过。

第二部分

最初的安全更新

首先,我使用的是 Putty,这是一个 SSH 工具,先用 putty 登录 VPS,IP 地址可以登录到 DigitalOcean 后台看到,用户名就是 root,密码是在第一部分修改之后的那个密码。

登录到 VPS 之后,执行 apt update,会显示有四个软件包需要更新,然后输入 apt upgrade 完成升级更新,包括下面这四个软件包。

  • distro-info-data
  • libnetplan0
  • netplan.io
  • python3-requests

安装 Webmin 控制面板,SSH 安全设置

为什么要安装 Webmin?

主要就是我习惯使用,用了很多年了。一在 Webmin 管理面板,可以很方便的更新系统,安装 perl 包,添加 MySQL 数据库;第二,在出现错误的时候,查看 log 日志,还有很多很多其它功能。

安装 Webmin

参考 webmin 官方的安装 Webmin 到 Debian 系统的做法。

首先安装一些必要的软件包。因为系统本身还缺少必要的 unzip 工具,也一并加上。

apt-get install perl libnet-ssleay-perl openssl libauthen-pam-perl libpam-runtime libio-pty-perl apt-show-versions python unzip

接着下载目前最新的 webmin v1.941,并安装。

wget http://prdownloads.sourceforge.net/webadmin/webmin_1.941_all.deb
dpkg --install webmin_1.941_all.deb

安装完成之后,在桌面浏览器(比如chrome)中输入下面的网址来访问安装好的 Webmin 控制面板。

https://45.33.52.122:10000

这个IP地址只是用于举例,并没有实际使用,请不要尝试。 然后会出现"Your connection is not private"的警告信息,点击 Advanced。 private-connection.jpg

安装 Ubuntu 20.04, Webmin, Nginx, MariaDB, PHP7.4-FPM,Perl-Fastcgi 到 DigitalOcean 的 VPS(1)

现在是介绍如何安装 Ubuntu 20.04, Webmin, Nginx, MariaDB, PHP7.4-FPM,Perl-Fastcgi 到 DigitalOcean 的 VPS的时候了。本站目前就放置在 DigitalOcean 的 VPS上。

在2015年,我发布了 安装Nginx, MySQL, PHP-FPM, Perl-Fastcgi到Ubuntu 14.04 LTS

在2017年,我发布了 安装 Ubuntu 16.04, Webmin, Nginx, MariaDB, PHP7.1-FPM,Perl-Fastcgi 到 Vultr.com 的 VPS

在 2018年, 则是发布了 安装 Ubuntu 18.04, Webmin, Nginx, MariaDB, PHP7.2-FPM,Perl-Fastcgi 到 Linode 的 VPS

现在主机放在了 DigitalOcean,而新的 Ubuntu 20.04 也发布了有三天了,所以 DavidYin 来介绍一下新的 VPS 服务器安装过程,包含的软件如下:

  • Ubuntu 20.04 LTS
  • Webmin 1.941
  • Mariadb 10.3
  • Nginx 1.17.0
  • php7.4-FPM
  • Perl Fastcgi
  • SSL
  • HTTP2
  • Let's Encrypt

免责:整个安装过程,只是个人经验,不含任何保证,采用者自己对服务器的安全以及数据负责。

第一部分

DigitalOcean VPS 的选择与安装


登录 DigitalOcean 的后台,点击右上角的 Create,打开下拉菜单,选择 Droplets。Droplets就是 DigitalOcean 的 VPS 的昵称。这家服务商名称叫做数字海洋,那么每个 VPS 就像是海洋中的一滴水珠。就是这么个意思。然后就出现新 VPS 的选项了。

select-droplet.jpg首先在镜像选择部分,打开 Ubuntu的版本选择下拉菜单,选择 Ubuntu 20.04 LTS (X64)。然后 Plan,就选择标准计划, Standard。之后就是在不同配置中选择最小的那个,暂时就可以了,包括了 1CPU, 1GB RAM, 25GB 储存,和 1000GB 的流量。如果以后需要扩容,可以直接升级计划,无需重装的。

choose-2004.jpg

Ubuntu 20.04 的新特性

也算是最早使用 Ubuntu 的用户之一了,还记得当年要求邮寄光盘的年代。大概是2005年的样子,当时 Canonical 提供安装光盘的免费邮寄,以及 live 光盘。

这就是当时收到的5.10的CD光盘。
ubuntu5.10.cd_.jpg

现在都是在线下载了。宽带的下载速度已经完全解决了这个问题。

Ubuntu 20.04 LTS 已经于 2020年四月二十三日正式发布了。作为一个提供长期支持的发布版,它带来了哪些特性呢?在介绍之前,先说一下长期支持的时间范围,从发布之日开始,将一直持续提供更新支持直到 2025年的 4月,长达五年的维护支持。

Ubuntu 20.04 Focal Fossa

Focal Fossa 是其代号,大致的含义网上有的介绍都是这样的:

"Focal" 有"焦点"、"核心"之意。考虑到 Ubuntu 20.04 是 Ubuntu 的下一个长期支持版本,这是一个非常合适的名称,它将会在接下来成为 Canonical 软件产品组合的核心。"fossa" 则是一种生活在马达加斯加的"猫状、肉食性哺乳动物",也是当地最大的肉食性哺乳动物。

我主要用的是 Ubuntu Server 版本,没有使用它的桌面版以及其它版本。

Ubuntu 20.04 LTS Server 新特性

  • 基于 Linux release 5.4 这个核心本身就代表了很多新的功能,比如支持新款的CPU,支持 exFAT 文件系统,内置 WireGuard VPN,支持USB3.2,Type-C,启动时间的改进,等等。
  • 工具库的升级,包括了 glibc 2.31, OpenJDK 11, rustc 1.41, Python3.8.2, GCC 9.3, Perl 5.3, golang 1.13。
  • 默认使用 Python3.8, 旧的 Python 2.7 被放入 Universe库中,不被默认安装。
  • QEMU 也被升级到 4.2 版本,带来了一系列的新特性,可以去看看 QEMU 4.2 的 changelog
  • libvert 更新到 6.0 版本。
  • dpdk 19.11.1 被内置到发布版中。
  • 还有 Open vSwitch, Chrony,cloud-init 也都有新的更新。

关于新冠病毒

有差不多两个月多一点的时间没有发布新的内容,这不是我的做法,但是的确,这段时间,没有心思来写内容。

整个世界陷入了这样的境界,不知道是人类自己作孽,还是其它的。

一直认为全球化,不是一个好的方向。

比如说,越是全球化,那么世界各地的行业协作就更加的紧密,互相的依赖也越大,这是就更需要一个强有力的全球性的机构,或者地球管理者来做全局的管理。而这样的一个机构必然是垄断独裁的,这不是人类的幸事。

我更加希望的是一个多极的世界,各个地区,或者势力范围互相制约,互相有依赖,但是又没有到谁离不开谁的地步,那样的话,即使世界的局部发生巨大的灾难性事件,其它地方还能救助它,或者更差的情况是能留下人类的种子。

我不认为人类的智慧可以解决所有的问题,而且我们现在生活的环境,日常所依赖的生活必需品,其实都是这几十年里发展出来的,从基本需求上也算不得什么必需品。再回到医药方面,据说现代医学也不过从17世纪的科学革命后从欧洲开始的,实际上很多病症,疫苗等等也不超过一百年。

回到现在的对抗新冠病毒全球流行的问题上,加拿大BC省的主要策略就是待在家里,除了必要的出行,就安全的待在家里,开门营业的店铺都是那些必要的行业,比如超市,加油站,卖蔬菜的,酒类专卖店,大麻专卖店,药房,银行(保留部分分行开门)。学校都关门了,中小学从春假开始就宣布无限期不回学校,现在都是在上网课,各种不同的方式来解决。大学生是早就关闭,但是上网课。

加拿大同其它国家的旅行已经关闭了,只有很多特别的情况才允许,这同世界上大多数国家的做法相同,很有必要。各省之间的航班也减少了许多。

避免不必要的出行,但是BC省的各个城市还是保持了很多户外地方,允许大家出门活动,只要保持必要的社交距离,就是两米的距离。没有推荐戴口罩,这是同亚洲国家最大的不同了。

坦白说,我对于此次病毒流行,本国,本省的政府所作的应对,还是比较满意,并感到放心的。上午看看东部省份的新增病例,以及联邦政府的发布,每天下午三天准时看本省的卫生官员所作的通报,只要看到每天的病例在相对稳定的数值,没有很大的增长,那就还好。

搜索
关于
David Yin
研究(SEO)搜索引擎优化排名和(PPC)竞价排名技术,总结搜索营销学的各种方法和趋势。专业SEO优化研究,致力于搜索引擎优化技术的普及和推广。
David Yin
Email:seo[AT]g2soft.net
版权说明
如果想转载,而又不明白转载的条件,请看本站的详细版权说明
推荐
Dreamhost Hosting
使用优惠码“save252015”,节省更多,每月只要 $2.59。
归档
标签云
热门标签