SEO 网站优化推广 SEO 网站优化推广
第 1 页

“服务器” 的搜索结果

审计你的网页的各项指标 - 2023

2023年了,每年都想要做总结,也想要记录那些需要记住的更新。

此文就是为了记录 2023 年,对网站做审计的方式和相关的内容。

所谓审计,就是 Audit,我们有时候也称之为审定。简单的说,就是通过手工检查,或者使用工具来对网站以及网页做个体检,看看有哪些地方做的好的,哪些地方不够的,哪些地方做错了。当然主要的目标就是搜索引擎的排名优化,其次就是用户体验。

在一开始的时候,我们先来把我们认为重要的审计的点都列出来,然后介绍如何使用工具,以及一些比较好用的工具。

准备工作

  • Google Analytics GA4 追踪代码安装
  • Google Search Console 设置

基础审计项目

  • 检查网站是否是移动友好 Mobile-Friendly
  • 确定 Google 收录了你的网站
  • 提高网站的载入速度
  • 检查并修复那些收录有问题的页面
  • 查看来自搜索引擎的自然流量
  • 改善网页的关键词排名
  • 分析反向链接,外链的情况
  • 修复断链
  • 竞争对手网站的分析
  • 用户界面的优化
  • 网站结构的扁平化
  • Meta 以及结构数据的展示
    • Title 标签内容
    • Keywords 标签内容
    • Favicon 图标设置
    • OG 和社交媒体元数据
    • 结构化数据
  • Sitemap 提交

最近在学习研究的几个东西

书籍

最近其实看了好几本书,主要都是关于 CI/CD 的,因为我用的是 Gitlab CE 自建的服务器,这些 CI/CD 也是考虑如何在这个上面实现的。

《Automating DevOps with Gitlab CI/CD Pipelines》Automating DevOps with GitLab CI_CD Pipelines.jpeg

《Cleancode in PHP》

Clean code in PHP (Carsten Windler, Alexandre Daubois) (Z-Library).jpeg这是看了有关 PHP 开发的一些标准做法,也许可以让开发的过程更加简单一些,代码也能更标准化一些,书中也写了如何通过 CI 来完成这些语法检查,代码样式标准化,以及静态分析的工作。

网站被恶意访问

今天发现,网站挂了,显示404,于是登录到服务器上,重启服务,大概好了几秒钟,就又挂了。于是估计就是某个网站被恶意访问了,或者说被攻击了。查看了 CPU 使用率,达到了100%。

本站是放在 Vultr 上的一个 VPS上,同时还有几个网站都在上面,那么到底是哪个网站被攻击了呢?

我对每个网站都有单独的访问日志记录,大概的看了一下,有一个网站的访问超过平时太多。

Screenshot 2023-05-03 152617.png对就是 phpBB 简体中文网,phpBB的简体中文语言包是我一直在做的,为了方便他人使用,就建立了这个中文支持社区,用来发布新版本的语言包,以及完整安装包,回答一些问题。平时访问量很小的,大概一个月也就两三万的访问人次,然后网页访问量也就在二十万上下,而,就五月份这三四天,已经超过了一百七十万的页面访问量,太过分了。

具体看了一下日志文件,这些大量访问来源主要是从中国大陆,重庆,IP地址是 183.69.137.71这个网段的,有几十个 IP 地址吧,对我而言,一直很简单粗暴的,就是封掉了事,一般我是在 Nginx 的配置文件中封禁,但是因为 phpBBchinese 是用了 Cloudflare,就到 Cloudflare 的 Security 》 WAF 》 IP Access Rules 那边添加了一条规则。

Screenshot 2023-05-03 153425.png

服务器状态检测工具更新

本站提供了若干个免费的 SEO 工具,前两天,给其中的一个工具做了小修改,添加了一个新特性。

HTTP Status 检测

服务器状态检测,访问网址会返回一个状态码,告诉你服务器对该网址的反映。这个功能常常被用于跳转检测,比如从1个网址跳转到另一个网址,跳转又是何种跳转,这都可以用下面这个免费的工具在检测到。

有些网站,对于不同的 User Agent 会返回不同的页面。或者你作为站长,希望你的网站在不同的设备上做不同的跳转,这个时候,这个工具就可以给你选择 User Agent 的选项。

list-agents.jpg

这里预设了一系列的 User Agents,为了简化,目前没有允许自己定义,只能从里面选一个。

修复 DigitalOcean 的 监控部件更新问题

在之前使用 DigitalOcean 的 VPS 的时候,有遇到这个问题。

davidyin@fig:~$ sudo apt update
[sudo] password for davidyin:
Hit:1 https://repos.insights.digitalocean.com/apt/do-agent main InRelease
Hit:2 https://repos-droplet.digitalocean.com/apt/droplet-agent main InRelease
Get:3 http://mirrors.digitalocean.com/ubuntu jammy InRelease [270 kB]
Get:4 http://security.ubuntu.com/ubuntu jammy-security InRelease [110 kB]
Ign:5 https://download.webmin.com/download/repository sarge InRelease
Hit:6 https://download.webmin.com/download/repository sarge Release
Hit:8 http://mirrors.digitalocean.com/ubuntu jammy-updates InRelease
Hit:9 http://mirrors.digitalocean.com/ubuntu jammy-backports InRelease
Fetched 380 kB in 7s (51.8 kB/s)
Reading package lists... Done
Building dependency tree... Done
Reading state information... Done
All packages are up to date.
W: https://repos.insights.digitalocean.com/apt/do-agent/dists/main/InRelease: Key is stored in legacy trusted.gpg keyring (/etc/apt/trusted.gpg), see the DEPRECATION section in apt-key(8) for details.

SSH 登录到服务器后,查看目录 /etc/apt/sources.list.d/ 里面的文件。

davidyin@fig:/etc/apt/sources.list.d$ ls -lah
total 20K
drwxr-xr-x 2 root root 4.0K May 14 16:09 .
drwxr-xr-x 8 root root 4.0K May 14 14:52 ..
-rw-r--r-- 1 root root   67 May 14 14:52 digitalocean-agent.list
-rw-r--r-- 1 root root  129 May 14 14:52 droplet-agent.list
-rw-r--r-- 1 root root  116 May 14 16:09 webmin.list
davidyin@fig:/etc/apt/sources.list.d$

有三个, Webmin.list 是我自己安装的,而 digitalocean 的 agent 有两个,觉得一定有什么误会在里面。看看里面的内容。

droplet-agent.list
deb [signed-by=/usr/share/keyrings/droplet-agent-keyring.gpg] https://repos-droplet.digitalocean.com/apt/droplet-agent main main

digitalocean-agent.list
deb https://repos.insights.digitalocean.com/apt/do-agent main main

安装 Ubuntu 22.04 (LTS), Webmin, Nginx, MariaDB, PHP8.1-FPM,Perl-Fastcgi 到 DigitalOcean 的 VPS(5)

安装 Ubuntu 22.04 LTS, Webmin, Nginx, MariaDB, PHP8.1-FPM,Perl-Fastcgi 到 DigitalOcean 的 VPS上。

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

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

第五部分

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

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

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

配置 https 主机

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

davidyin@fig:~/ssl$ nginx -v
nginx version: nginx/1.18.0 (Ubuntu)
davidyin@fig:~/ssl$ openssl version
OpenSSL 3.0.2 15 Mar 2022 (Library: OpenSSL 3.0.2 15 Mar 2022)
davidyin@fig:~/ssl$

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

mozilla-ssl-config-nginx-2204.jpg

我会建议采取 Modern 方式的配置。

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

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

ssllab-rating-a-2204.jpg

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

安装 Ubuntu 22.04 LTS, Webmin, Nginx, MariaDB, PHP8.1-FPM,Perl-Fastcgi 到 DigitalOcean 的 VPS上。

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

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

第四部分

安装 php8.1-fpm

Ubuntu 22.04 LTS 仓库所包含的是 php8.1.2,目前 php 官方支持的版本是 8.1,8.0,7.4 这三个系列。所以直接使用 Ubuntu 的就已经是很新的版本了。

sudo apt install php8.1 php8.1-fpm php8.1-cli php8.1-common php8.1-mbstring php8.1-gd php8.1-intl php8.1-xml php8.1-mysql php8.1-zip php8.1-curl

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

davidyin@fig:~$ php -v
PHP 8.1.2 (cli) (built: Apr  7 2022 17:46:26) (NTS)
Copyright (c) The PHP Group
Zend Engine v4.1.2, Copyright (c) Zend Technologies
    with Zend OPcache v8.1.2, Copyright (c), by Zend Technologies

再看一下 php8.1-fpm 是否已经运行。

sudo service php8.1-fpm status

phpfpm-2204.jpg

安装 Ubuntu 22.04 (LTS), Webmin, Nginx, MariaDB, PHP8.1-FPM,Perl-Fastcgi 到 DigitalOcean 的 VPS(3)

安装 Ubuntu 22.04 LTS, Webmin, Nginx, MariaDB, PHP-FPM,Perl-Fastcgi 到 DigitalOcean 的 VPS上。

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

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

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

第三部分

安装 Nginx Web 服务器

Ubuntu 22.04 LTS server 版目前的 Nginx 还是 Legacy 版本,可以直接安装,当前的最新版本是 1.18.0。

输入命令安装。

sudo apt install nginx

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

davidyin@fig:~$ nginx -V
nginx version: nginx/1.18.0 (Ubuntu)
built with OpenSSL 3.0.2 15 Mar 2022
TLS SNI support enabled
configure arguments: --with-cc-opt='-g -O2 -ffile-prefix-map=/build/nginx-9P0wNJ/nginx-1.18.0=. -flto=auto -ffat-lto-objects -flto=auto -ffat-lto-objects -fstack-protector-strong -Wformat -Werror=format-security -fPIC -Wdate-time -D_FORTIFY_SOURCE=2' --with-ld-opt='-Wl,-Bsymbolic-functions -flto=auto -ffat-lto-objects -flto=auto -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-compat --with-debug --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 --add-dynamic-module=/build/nginx-9P0wNJ/nginx-1.18.0/debian/modules/http-geoip2 --with-http_addition_module --with-http_gunzip_module --with-http_gzip_static_module --with-http_sub_module

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

安装 MariaDB 数据库服务器

它其实就是一个 MySQL 服务器,目前 Ubuntu 22.04 LTS 软件仓库中包含的默认 MariaDB 版本是 10.6.7,此版本是 MariaDB 官方所维护的多个稳定版本之一,在我粗浅的看来,10.4以上的这些个都是稳定版本。

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

输入安装命令。

sudo apt install mariadb-server

安装完成后,就需要修改 MySQL 默认的 root 用户的密码。默认是空密码。

sudo mysql_secure_installation

安装 Ubuntu 22.04 (LTS), Webmin, Nginx, MariaDB, PHP8.1-FPM,Perl-Fastcgi 到 DigitalOcean 的 VPS(2)

安装 Ubuntu 22.04 (LTS), Webmin, Nginx, MariaDB, PHP8.1-FPM,Perl-Fastcgi 到 DigitalOcean 的 VPS

在第一部分,DavidYin 介绍了如何在 DigitalOcean 创建新 VPS,选择基本的 Ubuntu 22.04 LTS的系统。

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

第二部分

最初的安全更新

首先,我使用的是 Putty,这是一个 SSH 工具,先用 putty 登录 VPS,IP 地址可以登录到 DigitalOcean 后台看到,用户名就是 root,密码是自己设置的那个密码。

登录到 VPS 之后,执行 apt update,查询软件库的信息。

root@fig:~# apt update
Hit:1 https://repos.insights.digitalocean.com/apt/do-agent main InRelease
Hit:2 https://repos-droplet.digitalocean.com/apt/droplet-agent main InRelease
Get:3 http://mirrors.digitalocean.com/ubuntu jammy InRelease [270 kB]
Get:4 http://security.ubuntu.com/ubuntu jammy-security InRelease [110 kB]
Hit:5 http://mirrors.digitalocean.com/ubuntu jammy-updates InRelease
Hit:6 http://mirrors.digitalocean.com/ubuntu jammy-backports InRelease
Fetched 380 kB in 8s (50.5 kB/s)
Reading package lists... Done
Building dependency tree... Done
Reading state information... Done
28 packages can be upgraded. Run 'apt list --upgradable' to see them.
W: https://repos.insights.digitalocean.com/apt/do-agent/dists/main/InRelease: Key is stored in legacy trusted.gpg keyring (/etc/apt/trusted.gpg), see the DEPRECATION section in apt-key(8) for details.
root@fig:~#

这里有一条警告信息,是关于 DigitalOcean 自己的那个 Monitoring 软件库的信息的,暂时先忽略它。后面会有一个解决办法

这里可以看到有28个软件包有更新,那么就执行 apt upgrade 来完成更新。

root@fig:~# apt upgrade
Reading package lists... Done
Building dependency tree... Done
Reading state information... Done
Calculating upgrade... Done
The following NEW packages will be installed:
  linux-headers-5.15.0-30 linux-headers-5.15.0-30-generic linux-image-5.15.0-30-generic
  linux-modules-5.15.0-30-generic
The following packages will be upgraded:
  base-files distro-info-data git git-man libcurl3-gnutls libfribidi0 libnss-systemd libpam-systemd libssl3
  libsystemd0 libudev1 linux-headers-generic linux-headers-virtual linux-image-virtual linux-virtual
  motd-news-config networkd-dispatcher openssl python3-software-properties python3-twisted rsyslog snapd
  software-properties-common systemd systemd-sysv systemd-timesyncd ubuntu-advantage-tools udev
28 upgraded, 4 newly installed, 0 to remove and 0 not upgraded.
10 standard security updates
Need to get 87.3 MB of archives.
After this operation, 224 MB of additional disk space will be used.
Do you want to continue? [Y/n]

选择 Y 继续,完成安装,因为有个 Linux 核心的更新,升级完成后会询问是否重启,按回车 OK,还会问有哪些服务要重启,这里就不用管它了,因为整个系统都要重启了,再按一次回车就可以了。对了重启命令是 shutdown now -r

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

为什么要安装 Webmin?

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

安装 Webmin

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

使用添加 Webmin APT 源的方式来安装。新建一个文件 nano /etc/apt/sources.list.d/webmin.list

deb [signed-by=/usr/share/keyrings/jcameron-key.gpg] https://download.webmin.com/download/repository sarge contrib 

接着导入GPG 密钥如下。

cd /root
wget https://download.webmin.com/jcameron-key.asc
cat jcameron-key.asc | gpg --dearmor >/usr/share/keyrings/jcameron-key.gpg 

再之后就可以安装了。

apt-get install apt-transport-https
apt-get update
apt-get install webmin

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

https://147.182.232.40:10000

然后会出现"Your connection is not private"的警告信息,点击 Advanced。

ssl-warning-2204.jpg

安装 Ubuntu 22.04 (LTS), Webmin, Nginx, MariaDB, PHP8.1-FPM,Perl-Fastcgi 到 DigitalOcean 的 VPS(1)

现在是介绍如何安装 Ubuntu 22.04 (LTS), Webmin, Nginx, MariaDB, PHP-FPM,Perl-Fastcgi 到 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

在2020年,发布了 安装 Ubuntu 20.04, Webmin, Nginx, MariaDB, PHP7.4-FPM,Perl-Fastcgi 到 DigitalOcean 的 VPS

本站所在的主机就是放在了 DigitalOcean ,而新的 Ubuntu 22.04 也发布了快一个月了,所以 DavidYin 来介绍一下新的 VPS 服务器安装过程,包含的软件如下:

  • Ubuntu 22.04 LTS
  • Webmin 1.991
  • Mariadb 10.6.7
  • Nginx 1.18.0
  • php8.1-FPM
  • Perl Fastcgi
  • SSL
  • HTTP2
  • ZeroSSL

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

第一部分

DigitalOcean VPS 的选择与安装

登录 DigitalOcean 的后台,然后在 Projecs 选择一个,没有的话,就新建一个。Project 是用来组织资源的,比如多个 vps,还有各种其它的服务。点击右上角的 Create,打开下拉菜单,选择 Droplets。Droplets就是 DigitalOcean 的 VPS 的昵称。这家服务商名称叫做数字海洋,那么每个 VPS 就像是海洋中的一滴水珠。就是这么个意思。然后就出现新建 VPS 的选项了。

select-droplet-2204.jpg首先,镜像选择部分,点击 Ubuntu 的版本选择下拉菜单,选择 Ubuntu 22.04 (LTS) x64 版本,然后是 Plan,就选择基本计划, Basic, CPU 有三种不同的类型,我现在一般都是选择 Premium CPU(之前有比较过,Premium CPU性能更好),Intel 和 AMD 都可以,看你自己的喜好。之后就是在不同配置中选择最小的那个,暂时就可以了,包括了 1CPU, 1GB RAM, 25GB 的 NVMe SSD 储存,和 1000GB 的流量。如果以后需要扩容,可以直接升级计划,无需重装的。

choose-2204.jpg

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