Normal view

There are new articles available, click to refresh the page.
Before yesterdayMain stream

Blog 迁移到 RackNert

By: Kaiyuan
26 June 2025 at 00:49

blog-migrated-to-racknert我 Blog 从 2018年11月开始就是部署在搬瓦工的一台1核512M内存的机器上,没错!就是在一台512M内存机器上部署了 PHP 和 MariaDB 数据库!直到今年 6 月我迁移到 RackNert 上的2核2G的机器。

迁移 Blog 的起因是我在小众软件上看到有篇文章提到 RackNert 的新一批平价机器上架,配置和价格很是吸引。但是我还是犹豫了两周的,这价格很吸引,看到有评论说速度一般(直连)。犹豫了很久,其实我直连的时候基本就是 SSH 和传文件时候用到,其他情况我都是通过 CloudFlare 访问的,所以基本就没问题就决定买了,开始是打算买最便宜的 1G 的机器,然后看到2核2G才$17.66/年,比我搬瓦工的便宜多了,然后就决定买 2G 的机器,也能多跑很多服务。

基础设置

买了机器第一件事当然就是做安全设置,除了标准的修改 SSH 端口和设置证书登录,禁用密码之外,还要装防火墙。我现在除了 SSH 端口,其他所有非必要端口都是禁止访问的,然后安装 ZeriTier,之后将内外 IP 添加白名单,所有连接都通过 ZeroTier 连接,然后网站用的 80 和 443 端口则仅允许 CloudFlare IP 访问。

部署 1Panel

因为这次机器有 2G 内存,这样我就能在机器上面安装 1Panel

curl -sSL https://resource.1panel.pro/quick_start.sh -o quick_start.sh && bash quick_start.sh

允许安装脚本一直下一步会生成面包的入口和设置账号密码,生成后一定要记得,要不然要重置了。

因为是 Docker 部署的,如果你使用 UFW 作为防火墙的话则需要先使用 UFW-DOCKER 自动配置好 UFW 对 Docker 的端口控制,要不然 Docker 的端口就直接暴露在外面了。

配置环境

1Panel 中部署网站都是通过 Docker 镜像的,在应用商店中有各种配置好的应用镜像。我不喜欢直接用镜像部署 WordPress,直接用文件好些。现在我们需要安装 OpenResty、MariaDB。只需要在应用商店找到对应应用安装即可。

设置数据库

先安装 MariaDB ,在应用商店找到应用,直接安装。选择好版本,填好管理密码就OK了。

因为我是迁移服务器的,所以安装后在数据库页面创建好 WordPress 对应的数据库。我是使用 DBeaver 将原来服务器上的数据导出,然后在 1Panel 数据库页面导入就可以了。

设置环境

部署好 OpenResty 后先在 CloudFlare 上下载对应域名的源证书,在网站页面下的证书页面上传证书。

还有需要在运行环境中创建运行环境,选最新版的 PHP,扩展源选择默认,然后扩展模板选择 WordPress 就会自动选择所需要的扩展,很方便。

设置网站

部署好环境就在网站页面创建网站。

证书和运行环境都配置好就在网站页面创建网站,选择「运行环境」,默认就选好 PHP 了,填好域名,勾选「启用HTTPS」,Acme账户选择手动创建,然后按「确认」就完成基本配置。

点击对应网站的配置,下面的「资源」页面中切换数据库选择对应的数据库,保存。

设置后在网站目录中可以直接打开网站目录,进去后将网站的文件上传到这个目录。

我使用 ZeroTier 然后服务器之间组网了,然后我用 rsync 直接将文件传到新服务器上,很是方便。

rsync -avz 本地目录 root@RackNert:新服务器网站目录

上传好目录后需要对 wp-config.php 修改数据库主机。在 1Panel 容器页面找到数据库的容器,我的是 1Panel-mariadb-fxso,然后 wp-config.php 中数据库主机一项不再是 127.0.0.1,要将其改为容器中找到的 1Panel-mariadb-fxso 容器名。

最后就是在 CloudFlare 上将域名指向新服务器就完成了。

插曲

在部署网站的时候出现好多次访问 1Panel 无响应的情况,排查之后发现是跨国 ZeroTier 组网不是很流畅,经常被阻断,然后我就用其他办法了,直接在服务器部署 EasyTier

直接在容器页面的「编排」页面创建编排就是编辑 docker-compose。

自建 EasyTier 网页管理界面

version: '3.8'
services:
  easytier:
    restart: always
    labels:
      com.centurylinklabs.watchtower.enable: 'true'
    privileged: true
    mem_limit: 0m
    container_name: easytier-ui
    hostname: rack
    network_mode: host
    cap_add:
      - NET_ADMIN
      - NET_RAW
    devices:
      - /dev/net/tun:/dev/net/tun
    volumes:
      - /files/docker/easytier/data:/app    #数据目录
      - /etc/machine-id:/etc/machine-id:ro
    environment:
      - TZ=Asia/Shanghai
    image: easytier/easytier:latest
    command: --api-host https://管理界面域名/ -d /app/et.db --file-log-dir /app/eztui.log
    entrypoint: easytier-web-embed # 管理界面程序

运行后就在网站创建一个反向代理,默认端口是 11211

还要开启服务器对应的端口,Web界面默认是 22020 端口的 UDP,防火墙开启一下。

访问 WebUI 后注册一下账户,后面客户端连接需要指定账户的。

启动 EasyTier 连接 WebUI

version: '3.8'
services:
  easytier:
    restart: always
    labels:
      com.centurylinklabs.watchtower.enable: 'true'
    privileged: true
    mem_limit: 0m
    container_name: easytier
    hostname: kyvps #服务器名称
    network_mode: host
    cap_add:
      - NET_ADMIN
      - NET_RAW
    devices:
      - /dev/net/tun:/dev/net/tun
    volumes:
      - /files/docker/easytier/data:/app
      - /etc/machine-id:/etc/machine-id:ro
    environment:
      - TZ=Asia/Shanghai
    image: easytier/easytier:latest
    command: --config-server udp://服务器IP:22020/kaiyuan

运行后就可以在 WebUI 看到客户端了。在 WebUI Device 可以看到服务器,点击齿轮然后选择 Crater 创建一个配置文件。

取消 DHCP,填写自己的 IP,网络名称和网络密码填自己的,然后网络方式选择独立就可以作为服务器了。

高级设置中填写监听地址,最好就是只使用 wss:0.0.0.0:11012,wss 可以通过 CloudFlare 代理,如果你需要 iOS 连接的话就加上 wg:0.0.0.0:11011

EasyTier 默认端口是 11010-11012,建议改为其他端口。

结语

我之前一直都是直接配置运行环境,第一次使用 1Panel 部署网站,第一次在外网用 Docker 部署服务才知道 UFW 默认没法管理 Docker 端口,还是我发现数据库怎么会被人攻击才知道这回事。还有就是 1Panel 连接数据库的方式也不一样。都是遇到了搜索才知道。但是解决了这些之后就简单了,1Panle 图形化管理是方便很多。

微软 Azure 免费试用云服务器评测

By: 胡中元
2 August 2018 at 08:43

国外微软的 Azure、亚马逊的 AWS 和谷歌的 GCP 三大云平台提供商之间的战争就如同腾讯云与阿里云,之间的战争硝烟弥漫,而受益最大的则是我们消费者,AWS 提供免费试用 12 个月,GCP 直接给新用户 $200 的余额随便用,而 Azure 则是两者之和,提供了免费试用 12 月外加信用额度 $200,都相当的壕气(均需要国际信用卡)

Azure 的免费政策:https://azure.microsoft.com/zh-cn/free/
正好我有一张 visa 卡,就申请了他们家的免费试用,下面是评测报告。

价格:免费
机型:B1S(1CPU + 1G RAM)
机房位置:香港(东亚机房)
虚拟:Hyper-V

查看更多主机跑分测评来进行横向对比,请点击:https://hzy.pw/p/tag/vps-test

测试结果仅能代表当时的服务器水平,受网络、机房的影响可能会与实际情况有差别。

综合评测

----------------------------------------------------------------------
 CPU Model            : Intel(R) Xeon(R) CPU E5-2673 v3 @ 2.40GHz
 CPU Cores            : 1 Cores @ 2394.403 MHz x86_64
 CPU Cache            : 30720 KB
 OS                   : Debian GNU/Linux 9 (64 Bit) Hyper-V
 Kernel               : 4.9.0-6-amd64
 Total Space          : 66.9 GB (3.0 GB Used)
 Total RAM            : 913 MB (228 MB Used 544 MB Buff)
 Total SWAP           : 0 MB (0 MB Used)
 Uptime               : 0 days 18 hour 43 min
 Load average         : 0.06, 1.59, 1.48
 ASN & ISP            : AS8075, Microsoft Corp
 Organization         : Microsoft Azure
 Location             : Hong Kong, China / HK
 Region               : Hong Kong
----------------------------------------------------------------------
 I/O Speed( 1.0GB )   : 11.4 MB/s
 I/O Speed( 1.0GB )   : 11.4 MB/s
 I/O Speed( 1.0GB )   : 11.4 MB/s
 Average I/O Speed    : 11.4 MB/s
----------------------------------------------------------------------
 Node Name        Upload Speed      Download Speed      Latency
 Speedtest.net    0.00 Mbit/s       11.96 Mbit/s        39.799 ms
 Fast.com         0.00 Mbit/s       149.7 Mbit/s        0.000 ms
 Shanghai  CT     224.96 Mbit/s     133.47 Mbit/s       134.445 ms
 Hangzhou  CT     282.51 Mbit/s     366.95 Mbit/s       350.036 ms
 Chengdu   CT     297.80 Mbit/s     261.22 Mbit/s       46.351 ms
 Shanghai  CU     205.90 Mbit/s     491.24 Mbit/s       74.781 ms
 Xi'an     CU     241.29 Mbit/s     354.87 Mbit/s       54.176 ms
 Chongqing CU     204.42 Mbit/s     146.99 Mbit/s       303.21 ms
 Xi'an     CM     362.86 Mbit/s     466.86 Mbit/s       429.041 ms
 Kunming   CM     61.42 Mbit/s      118.98 Mbit/s       182.589 ms
 Guangzhou CM     10.72 Mbit/s      26.50 Mbit/s        816.646 ms
----------------------------------------------------------------------
 Finished in  : 8 min 9 sec
 Timestamp    : 2018-08-01 12:39:54 GMT+8

或许你注意到了 11.4 MB/s 的极低 IO 速度,这大概是其他 KVM、OpenVZ 主机的 1/30 ~ 1/10,真的很糟糕。

我使用了免费计划中赠送的 64G SSD 并挂载到 /,如果使用 VM 自带的 4G 存储,则速度有 31MB/S,但是仍然很慢。

网速属于第一梯队水平,无可挑剔。

硬件跑分

Dhrystone 2 using register variables       29081926.5 lps   (10.0 s, 7 samples)
Double-Precision Whetstone                     3860.5 MWIPS (9.8 s, 7 samples)
Execl Throughput                               4012.2 lps   (29.8 s, 2 samples)
File Copy 1024 bufsize 2000 maxblocks        727708.6 KBps  (30.0 s, 2 samples)
File Copy 256 bufsize 500 maxblocks          190667.9 KBps  (30.0 s, 2 samples)
File Copy 4096 bufsize 8000 maxblocks       2270825.6 KBps  (30.0 s, 2 samples)
Pipe Throughput                             1089342.0 lps   (10.0 s, 7 samples)
Pipe-based Context Switching                 138476.7 lps   (10.0 s, 7 samples)
Process Creation                               9571.9 lps   (30.0 s, 2 samples)
Shell Scripts (1 concurrent)                   6999.9 lpm   (60.0 s, 2 samples)
Shell Scripts (8 concurrent)                    912.0 lpm   (60.0 s, 2 samples)
System Call Overhead                         746993.4 lps   (10.0 s, 7 samples)

System Benchmarks Index Values               BASELINE       RESULT    INDEX
Dhrystone 2 using register variables         116700.0   29081926.5   2492.0
Double-Precision Whetstone                       55.0       3860.5    701.9
Execl Throughput                                 43.0       4012.2    933.1
File Copy 1024 bufsize 2000 maxblocks          3960.0     727708.6   1837.6
File Copy 256 bufsize 500 maxblocks            1655.0     190667.9   1152.1
File Copy 4096 bufsize 8000 maxblocks          5800.0    2270825.6   3915.2
Pipe Throughput                               12440.0    1089342.0    875.7
Pipe-based Context Switching                   4000.0     138476.7    346.2
Process Creation                                126.0       9571.9    759.7
Shell Scripts (1 concurrent)                     42.4       6999.9   1650.9
Shell Scripts (8 concurrent)                      6.0        912.0   1520.0
System Call Overhead                          15000.0     746993.4    498.0
                                                                   ========
System Benchmarks Index Score                                        1119.9

性能属于中等水平。

结论

Azure、AWS、GCP 作为世界最大的云平台提供商,功能非常全面,但同时收费也相当复杂,不要设想一价全包。举个例子,除存储空间外,IO 请求是按次数收费的,IP 地址的占用是按时间收费的,另外每个月宽带有 20GB 上限,超过就需要额外付费等等。这些额外款项都有包括在免费计划中,但要有每个月超限一点点的心理准备。

如上面的评测结果可见,IO 性能极差,已经是因为 IO 严重影响整机服务水平了。另外免费计划赠送的数据库只能使用 SQL Server, 综上,我认为这台免费主机不适合用作建站。

但如果用作梯子,那则是极好的,因为香港机房网速非常给力,而且还是免费 12 个月,过期后再在 AWS、GCP 各来一年,还要啥飞机场~~

流量每个月免费 20G,我实测一个月使用了 17G,超限价格也还好,所以单人使用是足够的。

>> 更多更新关于网络的测试见下一页

PageSpeed:来自谷歌的服务器终极加速神器

By: 胡中元
23 March 2017 at 23:40

今晚给服务器装上了一个神器:PageSpeed,事实上这是一个 Nginx 的模块,使用它需要重新编译 Nginx,于是我顺便也将 Nginx 更新到了最新稳定版。最终效果相当给力,网站加速效果很好。心里非常的激动。

网站加速

给网站加速,请问有多少种方法?

压缩 JS、CSS,雪碧图,前端静态资源缓存,gzip,合并请求。。。

这些方法要多少有多少,作为一名合格的 web 开发人员,能在我服务器上运用的技术我都给运用上了。在开发前端页面时,各种强大的插件来保障资源的有效压缩。

不过,这始终还得让开发者来进行这样的工作,不开心~ :(

而 PageSpeed 就是这么的一个工具: 在服务器端安装之后,自动对用户请求的 HTML 页面进行语义化分析,智能的为其进行加速,加速途径涵盖了我能想到的一切~

图片所示的功能仅为部分

使用原因

WebP 是 Google 在 2010 年发布的一种新型图片格式,支持无损和有损压缩。在无损压缩方面,同质量的 WebP 图片比 PNG 的体积小 26%,而在有损压缩方面,同质量的 WebP 图片比 JPEG 小 25-34%。WebP 在不降低图片质量的同时,减少了约三分之一的体积。详细可参考谷歌官方

哎呀,又是谷歌?!是的,我现在越来越喜欢这家公司了,非常酷。

我对 webp 是挺有兴趣的,因为图片一直都是流量的大头,降低了图片体积直接能影响到页面的加载速度。于是最开始,我是在寻找 WordPress 中别人开发的相关插件,可惜并没能找到合适的。

寻找中,我变找到了 PageSpeed,我勒个去,太强大了!作为一个 Nginx 模块,可以通过分析请求头,对支持 webp 的现代浏览器返回转换后的 webp 图片,而其他浏览器则依旧使用 jpg 等旧格式,太符合我的要求了~!

重新编译安装

跟随着教程 https://modpagespeed.com/doc/build_ngx_pagespeed_from_source 将 Nginx 重新编译了一遍,顺便将服务器中的旧版 Nginx 给更新到了 v1.10.3。

要说麻烦的话,那就是由于服务器运行在阿里云机房中,不能运行翻墙软件,谷歌的某个依赖库下载不下来。

另外在配置的时候,对于 HTTPS 也需要进行额外的适配,因为就算作为 Nginx 的模块,也是不能直接读取 HTTPS 协议下的内容的。

效果展示

PageSpeed 这个可爱的模块已经完全担当了服务器 Nginx 端的缓存控制角色,对于 jpg 转 webp 这样的耗时操作会在后台自动执行,下一次相同的请求过来时才会命中缓存,相当的给力!

顺便值得一说的是我的网站使用的是 HTTP/2 协议,速度当然比 20 年前的 HTTP/1.1 要更快啦!

上面的图可以看到,网页中原本的 jpg 资源已经被自动转换为 webp,而这一切都是自动的。

超开心!

❌
❌