SEO 网站优化推广 SEO 网站优化推广

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

在介绍了如何安装 Ubuntu 24.04 LTS, Webmin, Nginx, MariaDB, PHP8.1-FPM,Perl-Fastcgi 到 DigitalOcean 的 VPS上后,有些补充内容。

比如 acme.sh 现在安装的 SSL 证书,默认已经是 ecc 证书了,就是 ecc-256 (prime256v1, "ECDSA P-256")。

然而还有一些需要说明的情况就放在了下面。

外传

网络防火墙

实际使用上,现在我已经很少再用 TCP Wrap 来作安全防护,而是使用了 nftables 防火墙,配合 fail2ban 来组合配合。

Ubuntu 24.04.1 已经默认安装了 nftables 了,如果没有的话,就是用下面的来安装。

sudo apt install nftables

而 Ubuntu 24.04 默认是安装使用了 UFW,作为 nftables 的前端。这里我不打算使用。就需要卸掉。

sudo systemctl disable --now ufw
sudo apt remove ufw

当然还需要启用 nftables。

sudo systemctl enable --now nftables

sudo apt install fail2ban

有几个常见命令

sudo systemctl enable fail2ban
sudo systemctl start fail2ban
sudo fail2ban-client version

返回 1.0.2,这是版本号。还有两个命令可以看 fail2ban 的状态,Ban了那些服务,哪些 IP 地址。

davidyin@walnut:~$ sudo fail2ban-client status
Status
|- Number of jail:      1
`- Jail list:   sshd
davidyin@walnut:~$ sudo fail2ban-client status sshd
Status for the jail: sshd
|- Filter
|  |- Currently failed: 1
|  |- Total failed:     10
|  `- File list:        /var/log/auth.log
`- Actions
   |- Currently banned: 1
   |- Total banned:     1
   `- Banned IP list:   183.81.169.238

fail2ban 的配置文件,最好是修改 /etc/fail2ban/jail.local 这个是本机文件,以后升级系统,升级 fail2ban 也不会改变该文件。

有些参数需要设置在 jail.local 里面。比如下面,在 ignoreip 这里填入自己的 ip 地址,这样就不会不小心把自己给关在外面了。

另外还有 收件地址等等。

[sshd]
enabled = true
filter = sshd
backend = polling
action = %(action_mwl)s
ignoreip    = 127.0.0.1 127.0.0.0/8 10.0.0.0/8 172.16.0.0/12 192.168.0.0/16
bantime = 24h
findtime = 10m
maxretry = 5
mta = sendmail
destemail = email@address
sendername = Fail2Ban

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

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

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

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

第五部分

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

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

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

配置 https 主机

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


davidyin@walnut:~/ssl$ nginx -v
nginx version: nginx/1.24.0 (Ubuntu)
davidyin@walnut:~/ssl$ openssl version
OpenSSL 3.0.13 30 Jan 2024 (Library: OpenSSL 3.0.13 30 Jan 2024)

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

walnut-ssl-mozilla.jpg

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

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

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

walnut-ssl-report.jpg

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

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

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

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

第四部分
安装 php8.3-fpm

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

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

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

davidyin@walnut:~$ php -v
PHP 8.3.6 (cli) (built: Sep 30 2024 15:17:17) (NTS)
Copyright (c) The PHP Group
Zend Engine v4.3.6, Copyright (c) Zend Technologies
    with Zend OPcache v8.3.6, Copyright (c), by Zend Technologies
davidyin@walnut:~$

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

walnut-php-fpm.jpg

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

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

在第一部分,DavidYin 介绍了如何在 DigitalOcean 创建新 VPS。并且完成基本的 Ubuntu 24.04 LTS的系统。
第二部分介绍如何安装 Webmin 主机控制面板,SSH 的安全设置,时区设置和添加新用户 。

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

第三部分

安装 Nginx Web 服务器

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

输入命令安装。

sudo apt install nginx

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

davidyin@walnut:~$ nginx -V
nginx version: nginx/1.24.0 (Ubuntu)
built with OpenSSL 3.0.13 30 Jan 2024
TLS SNI support enabled
configure arguments: --with-cc-opt='-g -O2 -fno-omit-frame-pointer -mno-omit-leaf-frame-pointer -ffile-prefix-map=/build/nginx-DlMnQR/nginx-1.24.0=. -flto=auto -ffat-lto-objects -fstack-protector-strong -fstack-clash-protection -Wformat -Werror=format-security -fcf-protection -fdebug-prefix-map=/build/nginx-DlMnQR/nginx-1.24.0=/usr/src/nginx-1.24.0-2ubuntu7.1 -fPIC -Wdate-time -D_FORTIFY_SOURCE=3' --with-ld-opt='-Wl,-Bsymbolic-functions -flto=auto -ffat-lto-objects -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=stderr --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 --with-http_addition_module --with-http_flv_module --with-http_gunzip_module --with-http_gzip_static_module --with-http_mp4_module --with-http_random_index_module --with-http_secure_link_module --with-http_sub_module --with-mail_ssl_module --with-stream_ssl_module --with-stream_ssl_preread_module --with-stream_realip_module --with-http_geoip_module=dynamic --with-http_image_filter_module=dynamic --with-http_perl_module=dynamic --with-http_xslt_module=dynamic --with-mail=dynamic --with-stream=dynamic --with-stream_geoip_module=dynamic

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

walnut-nginx-web.jpg

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

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

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

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

第二部分
最初的安全更新

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

登录到 VPS 之后,一登录,就可看到显示着有 164个更新需要马上进行,其中有50个事安全更新。

执行 apt update,查询软件库的更新信息。

root@walnut:~# apt update
Hit:1 http://mirrors.digitalocean.com/ubuntu noble InRelease
Hit:2 http://mirrors.digitalocean.com/ubuntu noble-updates InRelease
Hit:3 http://mirrors.digitalocean.com/ubuntu noble-backports InRelease
Hit:4 https://repos-droplet.digitalocean.com/apt/droplet-agent main InRelease
Hit:5 http://security.ubuntu.com/ubuntu noble-security InRelease
Reading package lists... Done
Building dependency tree... Done
Reading state information... Done
160 packages can be upgraded. Run 'apt list --upgradable' to see them.

看到还是 160 个软件包可更新,于是执行更新命令。

root@walnut:~# 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-6.8.0-45 linux-headers-6.8.0-45-generic linux-image-6.8.0-45-generic linux-modules-6.8.0-45-generic linux-tools-6.8.0-45 linux-tools-6.8.0-45-generic
The following upgrades have been deferred due to phasing:
  python3-distupgrade ubuntu-release-upgrader-core
The following packages will be upgraded:
  apparmor apport apport-core-dump-handler base-files bind9-dnsutils bind9-host bind9-libs bsdextrautils bsdutils busybox-initramfs busybox-static cloud-init cloud-initramfs-copymods cloud-initramfs-dyn-netconf cryptsetup
  cryptsetup-bin cryptsetup-initramfs curl dbus dbus-bin dbus-daemon dbus-session-bus-common dbus-system-bus-common dbus-user-session dmeventd dmsetup dpkg dracut-install e2fsprogs e2fsprogs-l10n eject fdisk fwupd initramfs-tools
  initramfs-tools-bin initramfs-tools-core krb5-locales landscape-common libapparmor1 libblkid1 libbz2-1.0 libc-bin libc-dev-bin libc-devtools libc6 libc6-dev libcom-err2 libcryptsetup12 libcurl3t64-gnutls libcurl4t64 libdbus-1-3
  libdeflate0 libdevmapper-event1.02.1 libdevmapper1.02.1 libexpat1 libext2fs2t64 libfdisk1 libfwupd2 libgnutls30t64 libgssapi-krb5-2 libhogweed6t64 libicu74 libk5crypto3 libkrb5-3 libkrb5support0 liblvm2cmd2.03 liblz4-1 liblzma5
  libmount1 libnetplan1 libnettle8t64 libnss-systemd libopeniscsiusr libp11-kit0 libpam-systemd libproc2-0 libpython3-stdlib libpython3.12-minimal libpython3.12-stdlib libpython3.12t64 libsasl2-2 libsasl2-modules libsasl2-modules-db
  libseccomp2 libsmartcols1 libss2 libssl3t64 libsystemd-shared libsystemd0 libtiff6 libudev1 libuuid1 libzstd1 linux-headers-generic linux-headers-virtual linux-image-virtual linux-libc-dev linux-tools-common linux-virtual locales
  logsave lvm2 lxd-agent-loader mdadm motd-news-config mount needrestart netplan-generator netplan.io open-iscsi open-vm-tools openssh-client openssh-server openssh-sftp-server openssl overlayroot procps python-apt-common python3
  python3-apport python3-apt python3-minimal python3-netplan python3-pkg-resources python3-problem-report python3-setuptools python3-twisted python3-update-manager python3.12 python3.12-minimal snapd systemd systemd-dev
  systemd-hwe-hwdb systemd-resolved systemd-sysv systemd-timesyncd thin-provisioning-tools tmux ubuntu-kernel-accessories ubuntu-minimal ubuntu-pro-client ubuntu-pro-client-l10n ubuntu-server ubuntu-standard udev update-manager-core
  util-linux uuid-runtime vim vim-common vim-runtime vim-tiny xkb-data xxd xz-utils zlib1g zstd
158 upgraded, 6 newly installed, 0 to remove and 2 not upgraded.
43 standard LTS security updates
Need to get 190 MB of archives.
After this operation, 187 MB of additional disk space will be used.
Do you want to continue? [Y/n]

选择 Y 继续,完成安装,中间会问你,SSHD配置文件是否要更改,我选择的是第二个选项,保持原来的版本。然后再次重启系统,对了重启命令是 shutdown now -r

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

为什么要安装 Webmin?

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

安装 Webmin

参考 webmin 官方的安装 Webmin的方法。

先下载源库的文件。

curl -o setup-repos.sh https://raw.githubusercontent.com/webmin/webmin/master/setup-repos.sh


然后执行下面命令来添加此库到系统:

sh setup-repos.sh

添加完成后会有提示你使用下面的命令来安装 Webmin 和其所需的其它软件。

apt-get install webmin --install-recommends

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

https://143.110.227.68:10000

然后会出现"Your connection is not private"的警告信息,点击 Advanced 按钮,点击 "Proceed to 143.110.227.68 (unsafe)",就可以继续载入登录页面了。

do-webmin.jpg看到登录页面,输入之前的 root 和对应的密码。

do-webmin-login.jpg

Webmin 默认安装的用户界面是响应式,之前我一直用的是经典样式,现在我也已经习惯使用响应式了。

登入之后,又看到有提示,两个软件包需要更新。一路点击更新之。

do-webmin-update.jpg

看看当前我所创建的这个 VPS 的参数:

  • Operating system     Ubuntu Linux 24.04.1
  • Webmin version     2.202
  • Kernel and CPU     Linux 6.8.0-45-generic on x86_64
  • Processor information     DO-Premium-AMD, 1 cores
  • Running processes     101
  • CPU load averages     0.06 (1 min) 0.11 (5 mins) 0.09 (15 mins)

SSH安全设置

为了 SSH 的安全,我会在 TCP wrappers 处添加两条规则,只允许来自指定的 IP 地址的电脑以 SSH 的方式连上服务器。

左侧,NetworkingTCP Wrappers

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

Ubuntu 24.04.1 LTS 在八月三十日已经发布了,一般到这个版本就想当的稳定了,所以今天就来介绍如何安装 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

在 2022年, 发布了 安装 Ubuntu 22.04 (LTS), Webmin, Nginx, MariaDB, PHP8.1-FPM,Perl-Fastcgi 到 DigitalOcean 的 VPS

本站曾经就是放在了 DigitalOcean ,所以 DavidYin 来介绍一下新的 VPS 服务器安装过程,包含的软件如下:

  • Ubuntu 24.04.1 LTS
  • Webmin 2.202
  • Mariadb 10.11.8
  • Nginx 1.24.0
  • php8.3-FPM
  • Perl Fastcgi
  • SSL
  • HTTP2
  • ZeroSSL

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

第一部分

DigitalOcean VPS 的选择与安装

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

do-droplets.jpg

审计你的网页的各项指标

此文就是整理过去几年至今,对网站做审计的方式和相关的内容。

所谓审计,就是 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 来完成这些语法检查,代码样式标准化,以及静态分析的工作。

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