单机游戏下载单机游戏下载基地
最新游戏|热门游戏|游戏大全|游戏专题

VPS建站教程:可行做法与顺序

2026/11/6 18:13:35 来源:本站整理 编辑:飞翔小编

您的位置:首页 → 资讯教程 → 软件教程 → VPS建站教程:可行做法与顺序

【飞翔导读】建站不是装一个软件那么简单,选机器、域名解析、备案、Web 服务、数据库、缓存、上线验收,每一步都有先后依赖。本文用商品库真实报价算出每核、每 GB 内存、每 TB 流量的单位成本,再把内存怎么分、能撑多少并发、带宽何时成为瓶颈换算成数字,最后给出四种不该用 VPS 建站的场景与替代方案,以及按业务量该落到哪一档的明确结论。

一、先算账:建站的账该怎么算才不出错

建站之前先算账,不是为了省那几块钱,而是为了在付款那一刻就知道这台机器的极限在哪里。 成本分三笔:机器、域名、运维。域名是明码标价的小头(以注册局当日价格为准),机器是主体。决定「买哪一档」的三个指标是:每核成本、每 GB 内存成本、每 TB 流量成本。把不同币种、不同计费周期、不同规格的机型放到同一把尺子上比,这三个数字缺一不可。

先看人民币计价这条线。 云途的机型全部按月计费:

机型 CPU 月费 内存 流量 每 GB 内存 每 TB 流量
HK.DS.M E5-2630V2 350 元 32 GB 10000 GB 10.94 元 35.84 元
DS.ES.F 4114 399 元 32 GB 10000 GB 12.47 元 40.86 元
DS.ES.C 5120 700 元 64 GB 40000 GB 10.94 元 17.92 元
HK.DS.P 6248 750 元 64 GB 40000 GB 11.72 元 19.20 元
HK.DS.S 6248 800 元 128 GB 40000 GB 6.25 元 20.48 元
DS.ES.A 8163 800 元 32 GB 40000 GB 25.00 元 20.48 元
DS.ES.D 8163 900 元 128 GB 40000 GB 7.03 元 23.04 元
HK.DS.B 8259CL×2 1200 元 128 GB 40000 GB 9.38 元 30.72 元
DS.ES.B 6138×2 1500 元 256 GB 30000 GB 5.86 元 51.20 元

查看 iwebfusion 当前月价与库存

这九款里只有 HK.DS.B 和 DS.ES.B 是双核,其余都是单核;磁盘类型除 HK.DS.S 是 SAS HDD 外全部是 SSD,硬盘从 480 GB 到 6000 GB 不等。 带宽方面,10000 GB 流量档配 1000 Mbps,40000 GB 档配 2000 Mbps。

每核成本和每 GB 内存成本完全是两回事。 HK.DS.M 每核 350 元、每 GB 内存 10.94 元;DS.ES.B 是双核,每核 750 元看着更贵,但每 GB 内存只要 5.86 元——因为它同时给了 256 GB 内存。 所以吃内存的站点看「每 GB 内存成本」,吃 CPU 的站点看「每核成本」,两个指标指向不同的最优解。

第二条线是 RosCloud 月付系列,机房位置在商品库标签里标注为俄罗斯:

机型 月费 核 内存 硬盘 流量 每 GB 内存 每 TB 流量
RosCloud-01 19.99 美元 2 1 GB 20 GB 1024 GB 19.99 美元 19.99 美元
RosCloud-02 29.99 美元 3 2 GB 40 GB 2048 GB 14.99 美元 14.99 美元
RosCloud-03 39.99 美元 4 4 GB 80 GB 3072 GB 10.00 美元 13.33 美元
RosCloud-04 49.99 美元 5 8 GB 160 GB 4096 GB 6.25 美元 12.50 美元
RosCloud-05 59.99 美元 6 16 GB 240 GB 5120 GB 3.75 美元 12.00 美元
RosCloud-06 69.99 美元 7 24 GB 320 GB 6144 GB 2.92 美元 11.67 美元

这六款每核成本锁死在 10.00 美元,带宽一律 500 Mbps——这条线是纯粹按核数线性定价的。 你买多少核就付多少倍的钱,不存在「大配小」的折扣。而每 GB 内存单价从 19.99 美元降到 2.92 美元,降幅超过八成半。 结论很直接:预算在 30 美元档位就直接买 02 档而不是 01 档,同样的钱买到两倍内存,核数还多一个。

第三条线是 sixtynet 的年付机型,特点完全相反:

机型 年付 核 内存 流量 每 GB 内存 每 TB 流量
LAX-STARTER 200 美元 2 2 GB 5000 GB 8.33 美元 3.41 美元
Residential-STARTER 260 美元 2 2 GB 5000 GB 10.83 美元 4.44 美元
IRVINE-PRO-STARTER 350 美元 2 2 GB 5000 GB 14.58 美元 5.97 美元
LAX-MICRO 400 美元 4 4 GB 10000 GB 8.33 美元 3.41 美元
Residential-MICRO 460 美元 4 4 GB 10000 GB 9.58 美元 3.93 美元
IRVINE-PRO-MICRO 550 美元 4 4 GB 10000 GB 11.46 美元 4.69 美元
LAX-Storage-500G 400 美元 4 4 GB 10000 GB 8.33 美元 3.41 美元
LAX-Storage-1TB 700 美元 8 8 GB 15000 GB 7.29 美元 3.98 美元
LAX-MEDIUM 800 美元 8 8 GB 20000 GB 8.33 美元 3.41 美元
Residential-MEDIUM 860 美元 8 8 GB 20000 GB 8.96 美元 3.67 美元
LAX-LARGE 1600 美元 8 16 GB 40000 GB 8.33 美元 3.41 美元
Residential-LARGE 1660 美元 16 16 GB 40000 GB 8.65 美元 3.54 美元

全部是年付,折合月价就是年付价除以 12;带宽 STARTER 档 2000 Mbps、MICRO 档 4000 Mbps、更高档 10000 Mbps。 硬盘方面,标准型从 40 GB 到 320 GB,两个 Storage 型分别是 500 GB 和 1000 GB。这条线每 TB 流量只要 3.41 到 5.97 美元,比 RosCloud 低四到六倍。原因是年付摊薄了固定成本,加上带宽给得大。但便宜的代价写着「年付」两个字:一次性付清一年,钱一旦方向选错就是沉没成本。

算账的四个结论:

第一,内存单价随规模递减,「买最小档凑合」在建站场景是明确的浪费。 RosCloud 从 19.99 美元降到 2.92 美元;LAX-Storage-1TB 每 GB 硬盘只要 0.06 美元,是 LAX-MEDIUM 那个 0.42 美元的七分之一,而两者流量单价几乎一样。

第二,流量单价和站点类型强相关。 纯文本博客的流量配额对你是几倍过剩;图片站、视频站同样的月访问量下流量需求能差五到十倍。

第三,年付的流量单价优势是全表最大的。 LAX-STARTER 每年 200 美元、LAX-MICRO 400 美元、LAX-MEDIUM 800 美元、LAX-LARGE 1600 美元、LAX-Storage-1TB 700 美元、Residential-LARGE 1660 美元。能确定跑满一年,年付省下的钱远超任何配置调整。

第四,磁盘类型是建站时最容易忽略但影响很大的字段。 商品库对每个机型都记录了磁盘类型——sixtynet 大部分是 NVMe SSD,云途大部分是 SSD,但云途 HK.DS.S 明确标注为 SAS HDD。差别最直接地体现在数据库读写和图片加载的响应体感上。

最后给一个反直觉但实用的参考:服务器成本在网站总成本里通常是小数点后两位的事。 假设月访问 5 万次、单页 1.2 MB,流量需求 58.6 GB,用 RosCloud-03 是 39.99 美元——折合每次访问的服务器成本是 0.0008 美元,不到 0.1 美分。 而域名年费、备案、内容成本、推广成本,任何一项都远高于这个数字。所以选型时不要在「能不能再省十美元」上纠结,把钱花在选对机房、买够内存上,回报率是省十美元的几十倍。

二、建站的正确顺序:九步流程和每一步的验收点

建站失败的绝大多数情况,不是某一步做错了,而是顺序错了——域名没解析就配证书,备案没下来就急着上线,Web 服务没起来就调数据库。这一节给出完整顺序和每一步的验收命令。

第 1 步:确定三件事——访问者在哪、要不要备案、站点是静态还是动态。 这不是技术步骤,是决策步骤,但它决定了后面所有步骤。访问者主要在境内且需要备案,必须走境内机房并预留备案周期;访客在境外或不需要备案,境外机房开机即用。 静态站和动态站决定了后面装不装数据库、装不装 PHP。

第 2 步:买机器,交付后立刻做基础加固。 改 SSH 端口、改用密钥登录并关闭密码登录、装防火墙只放行必要端口:

vi /etc/ssh/ssh_config
Port 你的高位端口
PermitRootLogin prohibit-password
PasswordAuthentication no
ufw default deny incoming
ufw default allow outgoing
ufw allow 22/tcp
ufw allow 80/tcp
ufw allow 443/tcp
ufw enable

验收点:ssh -p 你的高位端口 root@IP 能登进去。改完配置务必另开一个新终端验证能登上了再关掉原窗口,否则配置写错会把自己锁在外面。

第 3 步:装 Web 服务并验证。 Nginx 是最不会出错的选择:

apt update && apt upgrade -y
apt install -y nginx
systemctl enable nginx
nginx -v

验收点:curl -sI http://127.0.0.1 返回 HTTP/1.1 200 OK。 不返回就查 tail -50 /var/log/nginx/error.log。

第 4 步:装运行环境(PHP 或 Node),按站点类型决定。 动态站需要装 PHP-FPM 或 Node,静态站跳过这步。

第 5 步:装数据库并设置账号密码。 关键在于密码不能用弱密码、数据库不能监听公网:

apt install -y mysql-server
mysql_secure_installation
ss -lntp

验收点:第三条命令的输出里看到 127.0.0.1:3306 才对。如果看到 0.0.0.0:3306,说明数据库暴露在公网,必须改 bind-address = 127.0.0.1 之后重启。 这一条比任何安全插件都重要。

第 6 步:域名解析。 把 A 记录指向服务器公网 IP,验证:

nslookup example.com
curl -sI http://example.com

注意 ping 不通不一定有问题,很多机房禁 ICMP。真正要验证的是 80 端口通不通。

第 7 步:配置 Nginx 站点虚拟主机:

server {
    listen 80;
    server_name example.com www.example.com;
    root /var/www/example;
    index index.html index.php;
    location / { try_files $uri $uri/ =404; }
    location ~ \.php$ {
        include snippets/fastcgi-php.conf;
        fastcgi_pass unix:/run/php/php8.2-fpm.sock;
    }
    client_max_body_size 32m;
}

验收点:nginx -t 通过后 systemctl reload nginx,然后 curl -s http://example.com 能看到页面内容。

第 8 步:签发 HTTPS 证书。 必须放在域名解析和 80 端口放行之后:

apt install -y certbot python3-certbot-nginx
certbot --nginx -d example.com -d www.example.com
certbot renew --dry-run

验收点:certbot certificates 显示有效期大于 30 天,且 certbot renew --dry-run 无报错。 第二条尤其重要——没验证过的自动续期等于没有续期,证书过期是建站之后最常见的事故。

第 9 步:部署内容、设权限、做上线前检查。 具体做法在第六、七节展开。

九步和验收点整理成一张清单: 第 1 步定机房、备案、站点类型,三项写下来再买机器,常见坑是买了才发现不能备案;第 2 步 SSH 加固加防火墙,新终端能登入才算过,常见报错 Connection refused;第 3 步装 Nginx,curl 127.0.0.1 返回 200,常见报错 502 或 404;第 4 步装 PHP 或 Node,php -v 有版本号,常见报错 502(版本不匹配);第 5 步装数据库,监听地址必须是 127.0.0.1,常见坑是 0.0.0.0 暴露公网;第 6 步做域名解析,nslookup 正确加 80 端口通,常见报错是解析未生效;第 7 步配虚拟主机,nginx -t 通过加页面能访问,常见报错 403 或 404;第 8 步签 HTTPS 证书,certbot certificates 查有效期,常见报错 ACME 验证失败;第 9 步部署加权限加备份,要求上传目录可写、静态目录只读,常见报错 403 或 413。

查 racknerd 在售套餐与库存

这个顺序有一个隐含原则:每一步都在上一步验收通过之后才做。 特别是第 6 步和第 8 步——域名解析没生效就去签证书,ACME 验证必然失败;80 端口没放行就去签证书,同样必然失败。 这两个报错在教程里常被写成「Certbot 报错」,但根因都是顺序。

三、内存怎么分:一套能直接抄的规则和并发上限

建站过程中最需要算账是内存,因为 CPU 和带宽在中小站点上通常是过剩的。

内存分配规则(可以直接照抄):

总内存 = 操作系统 256 MB
       + MySQL 缓冲池(总内存的 25%)
       + PHP-FPM worker 数 × 每个 worker 40 MB
       + 总剩余的 10% 作为安全余量

按这套规则算出各档位能开的 worker 数,以及 100 并发时的带宽占用:

机型 总内存 MySQL worker 数 带宽 100 并发占用
RosCloud-01 1 GB 256 MB 11 500 Mbps 80%
RosCloud-02 2 GB 512 MB 28 500 Mbps 80%
RosCloud-03 4 GB 1024 MB 63 500 Mbps 80%
RosCloud-04 8 GB 2048 MB 132 500 Mbps 80%
LAX-STARTER 2 GB 512 MB 28 2000 Mbps 20%
LAX-MICRO 4 GB 1024 MB 63 4000 Mbps 10%
LAX-MEDIUM 8 GB 2048 MB 132 10000 Mbps 4%
LAX-LARGE 16 GB 4096 MB 270 10000 Mbps 4%
云途 HK.DS.M 32 GB 8192 MB 547 1000 Mbps 40%
云途 DS.ES.C 64 GB 16384 MB 1100 2000 Mbps 20%
云途 HK.DS.S 128 GB 32768 MB 2206 2000 Mbps 20%

查 cloudcone 在售套餐与库存

最后一列是全文最反直觉的发现。 按每个请求 0.5 MB 算,100 个并发同时下载需要 50 MB/s。RosCloud 全系列是 500 Mbps,也就是 62.5 MB/s,100 并发时占用率直接到 80%——带宽先于内存成为瓶颈。 而 LAX-MEDIUM 是 10000 Mbps(1250 MB/s),同样 100 并发只占 4%,内存反而先见底。

所以「带宽够不够」不是问峰值带宽数字,而是问:并发数乘以单次传输体积,除以带宽的八分之一(Mbps 转 MB/s 要除以 8),占标称值多少。 按这个算法,500 Mbps 在 100 并发时已经很紧张,2000 Mbps 只占 20%,10000 Mbps 几乎不可能成为瓶颈。顺带算一下占满带宽需要多少并发(每请求 0.5 MB):500 Mbps 要 125 个并发,1000 Mbps 要 250 个,2000 Mbps 要 500 个,4000 Mbps 要 1000 个,10000 Mbps 要 2500 个。

CPU 侧也要算一笔。 一个普通动态页面请求大约消耗 50 毫秒 CPU 时间,单核每秒能处理 20 个动态请求,2 核 40 个、3 核 60 个、4 核 80 个、5 核 100 个、6 核 120 个、7 核 140 个、8 核 160 个、16 核 320 个。折算成每小时,1 核是 7.2 万次动态请求,2 核 14.4 万次,4 核 28.8 万次,8 核 57.6 万次,16 核 115.2 万次。

对照着看,「每核 10.00 美元」的真实含义就出来了:在 RosCloud 线上,7 核的 RosCloud-06 每小时能处理 50 万次动态请求,折合每小时 5 美元多一点——每千次动态请求不到 0.1 美元。 这就是为什么服务器成本在建站场景几乎可以忽略:你的瓶颈永远是业务逻辑、数据库查询和内容质量,不是机器。

内存分配落到配置文件上是这样的。 PHP-FPM 的 worker 数按上表设置:

; /etc/php/8.2/fpm/pool.d/www.conf
pm = dynamic
pm.max_children = 28
pm.start_servers = 4
pm.min_spare_servers = 4
pm.max_spare_servers = 8
pm.max_requests = 500

MySQL 的缓冲池对应改这一行:

; /etc/mysql/mysql.conf.d/mysqld.cnf
innodb_buffer_pool_size = 512M

这两个数字必须配套改。 只改 PHP 不改 MySQL,内存会全被数据库吃掉,PHP-FPM 起不来(报 OOM);只改 MySQL 不改 PHP,PHP 进程会被系统杀掉。另外 pm.max_requests = 500 让每个 worker 处理 500 个请求后自动重启,用来回收 worker 内存里的内存泄漏。这是有 PHP 内存泄漏的站点必须设的参数。

最后是内存的验收标准:free 命令的 available 列,在网站稳定运行 24 小时后应当稳定在总内存的 15% 以上。 这个数字是判断配置是否刚刚好的硬标准。按上面的规则配好了,available 应该长期高于 15%;低于这个数,说明要么 worker 开多了,要么有内存泄漏,要么站点有没被发现的吃内存进程。观察谷值而不是当前值——白天高峰期的占用不重要,凌晨的占用才决定这台机器会不会在某天突然 OOM。

四、WordPress 建站:一步都不能省的完整配置

WordPress 是建站场景最常见的选择,问题在于默认配置对低配机器非常不友好。

装数据库和 PHP:

apt install -y nginx mysql-server php8.2-fpm php8.2-mysql php8.2-curl php8.2-gd php8.2-mbstring php8.2-xml php8.2-zip unzip

php8.2-gd 是必须的,没有它 WordPress 无法生成缩略图;php8.2-mbstring 和 php8.2-xml 也是必须的,缺一个会导致后台白屏或安装向导卡住。

下载并配置:

cd /var/www
wget https://wordpress.org/latest.tar.gz
tar -xzf latest.tar.gz
mv wordpress example
chown -R www-data:www-data example
cp example/wp-config-sample.php example/wp-config.php

建库建用户并授权:

CREATE DATABASE example CHARACTER SET utf8mb4 COLLATE utf8mb4_unicode_ci;
CREATE USER 'wpuser'@'localhost' IDENTIFIED BY '这里填你自己的强密码';
GRANT ALL PRIVILEGES ON example.* TO 'wpuser'@'localhost';
FLUSH PRIVILEGES;

在 wp-config.php 里填入数据库名、用户名和密码,然后立刻去后台把默认管理员密码改掉、把管理员邮箱改成真实邮箱。

但这只是把 WordPress 装上了,还没让它适合低配机器。 下面四个配置才是真正影响性能的部分。

第一,关闭不需要的后台功能,每一项后台小工具都在吃内存和 CPU:

define( 'WP_MEMORY_LIMIT', '256M' );
define( 'DISALLOW_FILE_EDIT', true );
define( 'DISALLOW_FILE_MODS', true );

DISALLOW_FILE_MODS 尤其重要——它禁止后台直接改主题和插件文件,能挡掉一大类入侵路径,因为很多入侵正是通过后台主题编辑器直接写 webshell 的。

第二,配置对象缓存。 WordPress 默认每次访问都要从数据库查一遍所有文章和选项,页面越多查询越慢。装 Redis 做对象缓存能把这部分查询降到接近零:

apt install -y redis-server php-redis
systemctl enable --now redis-server

在 wp-config.php 里加 define( 'WP_CACHE', true );,然后装对应的缓存插件。 Redis 本身只占几十 MB 内存,但省下来的数据库查询是实打实的。

第三,控制 PHP-FPM 的 worker 数。 按第三节那张表,2 GB 机器设 28,1 GB 机器设 11。很多人在低配机器上直接用默认配置,而默认值是按 4 GB 机器算的——这就是为什么 1 GB 机器装完 WordPress 后后台经常直接白屏或报 500。

第四,配置定时任务。 WordPress 靠 cron 做定时发布、清理过期评论、更新检查,这些任务在低配机器上堆积会让后台越来越慢:

*/15 * * * * cd /var/www/example && php wp-cron.php > /dev/null 2>&1

这能把 WordPress 的伪 cron 换成真正的系统 cron,避免每次访问都挂载一堆待执行任务。

验收标准要具体到数字: 首页加载时间 3 秒内(curl -w "%{time_total}"),后台打开时间 5 秒内(浏览器实测加 top 看进程数),内存谷值 available 不低于总内存 15%(free -m 观察 24 小时),数据库连接数峰值不超过 worker 数(SHOW STATUS LIKE 'Threads_connected'),慢查询每小时低于 10 条,PHP 错误日志无 fatal error(tail -50 /var/log/php8.2-fpm.log)。

最后一条容易被跳过,但它最有价值。 PHP-FPM 的错误日志会直接告诉你哪个文件哪一行出的问题,而 WordPress 的白屏十有八九能在日志里找到线索:

tail -f /var/log/php8.2-fpm.log

另外补一条 WordPress 特有的安全配置:限制登录尝试次数。 在 Nginx 里加一段限流:

limit_req_zone $binary_remote_addr zone=wp_login:10m rate=5r/m;
location = /wp-login.php {
    limit_req zone=wp_login burst=10 nodelay;
    include snippets/fastcgi-php.conf;
    fastcgi_pass unix:/run/php/php8.2-fpm.sock;
}

digitalocean 官网机型与实时报价

这段配置把每个 IP 每分钟访问登录页的次数限制在 5 次以内,突发 10 次不排队直接处理。 暴力破解 WordPress 后台的自动化脚本基本都过不了这一关。

五、静态站、Node 站和面板站:三条不同的技术路线

不是所有网站都需要 WordPress。 三条路线的资源消耗和部署方式差别很大。

路线一是静态站。 用 Hugo、Hexo、VitePress 在本地构建,产出纯 HTML 扔到 Nginx 上。这种站点资源消耗极低——Nginx 空载只占几十 MB 内存,1 GB 机器能扛住相当可观的访问量。 部署就是同步构建产物:

rsync -avz --delete ./public/ root@你的公网IP:/var/www/example/

静态站的三个优势: 内存占用可以忽略,二是单页体积小(纯 HTML 通常 0.3 MB 以内),流量消耗低,三是没有后端就没有 SQL 注入、没有后台爆破、没有插件漏洞这一整类攻击面。 代价是没法有动态功能——评论、登录、搜索都得靠第三方服务。

路线二是 Node 站点。 Next.js、Nuxt、Strapi 这类应用需要 Node 运行时,内存消耗明显高于 PHP:

curl -fsSL https://deb.nodesource.com/setup_22.x | bash -
apt install -y nodejs
npm install -g pm2
pm2 start app.js --name mysite --max-memory-restart 512M
pm2 save
pm2 startup

--max-memory-restart 512M 的意思是:进程内存超过 512 MB 就自动重启。 一个 Node 进程处理大量请求时,V8 的垃圾回收会不断扩张老生代,内存占用会慢慢爬升。2 GB 机器上设 512 MB 或 768 MB 合理,4 GB 机器可以设 1 GB。 Next.js 的服务端渲染比纯静态导出的内存占用高得多,这个参数要按应用类型调。

三条路线的资源对比: 纯静态(Nginx 加 HTML)占 50 到 100 MB,1 GB 机器就够用,只关注流量;静态加 PHP 加轻量 CMS 占 300 到 500 MB,1 GB 勉强、2 GB 合适,WordPress 属于这类;WordPress 加 MySQL 加缓存占 600 到 900 MB,1 GB 紧张、2 GB 合适,需按第三节配 worker;Node SSR 单进程占 400 到 800 MB,2 GB 合适,需设 max-memory-restart;Node 加数据库加 Redis 占 900 到 1500 MB,4 GB 起步;面板站(宝塔等)占 800 到 1500 MB,1 GB 不够、4 GB 合适。

路线三是面板站,比如常见的宝塔面板。 好处是一站式——装环境、建站点、申请证书全在图形界面点。但它的成本要说清楚:

第一,面板本身要吃 800 MB 到 1500 MB 内存,因为它跑着 Python 后端、数据库、任务调度一堆常驻服务。1 GB 机器装面板非常吃力,2 GB 机器能跑但余量很小。

第二,面板会开放一个管理端口(常见是 8888),一旦被扫描到,暴力破解尝试就会持续不断。 装完第一件事是改端口、改入口路径、开面板 SSL。

第三,面板默认会装一堆你用不到的服务,每个都在占内存。 装完要检查服务列表,把停用的关掉。

第四,面板的便利性是有代价的,它把本该透明的事情变得不透明了。 出问题时你得先搞懂面板自己的逻辑,而不是直接看配置文件。如果你已经熟悉命令行,直接用 Nginx 加配置文件;如果完全新手、想把精力放在内容而不是运维上,面板是合理的效率选择,但至少要知道它在你机器上装了什么。

无论走哪条路线,装完之后把实际占用测出来,而不是靠猜:

ps aux --sort=-%mem | head -15
ss -lntp

查 hostwinds 在售套餐与库存

第二条命令在建站场景特别有用,它会列出所有正在监听的端口。 如果你只装了 Nginx 和 PHP-FPM,却看到 8888、33060、6379、8080 这一堆端口,那就是面板或某个软件给你装的东西。多一个暴露在公网的端口就多一份风险。

六、上线前必须跑的验收清单

网站能打开只是及格线。 这一节给出六个必须在上线前测、且必须留下数字的检查项。

检查项一:首字节时间(TTFB),标准是 300 毫秒以内。从你所在网络发起测试,在服务器本机测没有意义:

for i in 1 2 3 4 5; do curl -o /dev/null -s -w "%{time_starttransfer}\n" https://example.com; done

连测五次取中位数,单次值会被网络抖动带偏。如果中位数超过 300 毫秒,先确认是不是物理距离的问题——商品库里 LAX 和 IRVINE-PRO 在美国加州、HK.DS 在香港、DS.ES 在欧洲方向、RosCloud 的标签是俄罗斯,从中国大陆到美国西海岸的光纤往返延迟下限在 140 毫秒左右,这个数字改配置改不动,只能换机房。

检查项二:1 MB 文件下载耗时,标准是 2 秒以内。

curl -o /dev/null -s -w "size: %{size_download} speed: %{speed_download}\n" https://example.com/test.zip

换算成带宽需求:速度至少 500 KB/s,也就是实际可用带宽不低于 4 Mbps。 注意这远低于标称的 500 Mbps 或 10000 Mbps——因为标称值是端口速率,跨洲链路上单台机器通常只能跑到标称的一小部分。

检查项三:内存谷值,标准是 15% 以上。 free -m 看 available 列,观察满 24 小时,白天高峰期的数字不作数,凌晨低谷才是真值。

检查项四:磁盘使用率,标准是 70% 以下。 df -h 看。留三成余量的原因不是「磁盘会满」,而是「磁盘接近满的时候写入会明显变慢」,而且日志文件突然暴涨可能在几分钟内把磁盘写满导致整机挂掉。 同时确认日志有轮转配置:cat /etc/logrotate.d/nginx。

检查项五:5xx 错误率,标准是 0.1% 以下。

awk '{print $9}' /var/log/nginx/access.log | sort | uniq -c | sort -rn

总数里的 5xx 除以总请求数,超过千分之一就要查日志。

检查项六:CPU 30 分钟平均占用,标准是 60% 以下。 top -bn1 | head -5 看。单核跑满意味着 CPU 不够用,因为上面所有低延迟指标都建立在「有富余算力」这个前提上。

把六项整理成验收表: 首字节时间中位数低于 300 毫秒(curl -w "%{time_starttransfer"),1 MB 下载低于 2 秒(curl -w "%{speed_download"),内存谷值 available 不低于总内存 15%(free -m 观察 24 小时),磁盘使用率低于 70%(df -h),5xx 错误率低于 0.1%(awk 统计 access.log),CPU 30 分钟均值低于 60%(top -bn1),证书有效期大于 30 天(certbot certificates),备份能完整还原(真做一次还原)。

查看 interserver 当前月价与库存

这八项里有两项是「不做就等于没做」的:自动续期验证和备份还原验证。 前者决定你的网站会不会在某个月突然全站警告,后者决定你出事故时有没有退路。

七、备份、监控和日常维护:一套能长期跑的做法

网站上线不是终点,是维护的开始。 三件必须做、而且必须做成自动的事。

第一件是备份,要覆盖三样东西:数据库、站点文件、配置文件。 只备份文件不备份数据库是最常见的错误——网站代码可以重新写,文章和用户数据丢了就没了。

#!/bin/bash
STAMP=$(date +%Y%m%d-%H%M%S)
DIR=/var/backups/mysql
mkdir -p $DIR
mysqldump -u root -p'你的密码' --single-transaction --quick example | gzip > $DIR/db-$STAMP.sql.gz
ls -t $DIR/db-*.sql.gz | tail -n +8 | xargs -r rm --
chmod +x /usr/local/bin/backup-db.sh
17 3 * * * root /usr/local/bin/backup-db.sh

--single-transaction 对 InnoDB 表很关键——它不锁表就能拿到一致性快照,备份的时候网站照常能用。 不加这个参数,备份期间你的网站会短暂卡住。

文件备份用 rsync,--delete 让备份目录精确镜像源目录,避免旧文件堆积(源目录路径一定要确认对,写错会删掉备份):

rsync -a --delete /var/www/example/ /var/backups/site/$STAMP/

备份必须异地存一份。 同一机房、同一线路、同一存储池上的备份,机房级故障时会一起消失。最低成本的做法是 rsync 推到另一台机器或对象存储。

第二件是监控。最基础的三项:网站可访问性、证书有效期、磁盘使用率。

#!/bin/bash
CODE=$(curl -s -o /dev/null -w "%{http_code}" --max-time 10 https://example.com)
[ "$CODE" != "200" ] && echo "[ALERT] 网站返回 $CODE" >> /var/log/site-monitor.log
USE=$(df / | awk 'NR==2 {gsub("%","",$5); print $5}')
[ "$USE" -gt 80 ] && echo "[ALERT] 磁盘 $USE%" >> /var/log/site-monitor.log
echo | openssl s_client -servername example.com -connect example.com:443 2>/dev/null \
  | openssl x509 -noout -enddate >> /var/log/site-monitor.log
chmod +x /usr/local/bin/monitor.sh
*/10 * * * * root /usr/local/bin/monitor.sh

这三项里证书那项最值钱。 因为证书过期是那种「一晚上之间全站变白」的事故,而它完全是可以提前避免的。

第三件是日常维护节奏:每天看监控日志和错误日志,每周更新一次安全补丁(apt update && apt upgrade -y,更新后重启 PHP-FPM 和 Nginx),每月检查一次备份能不能还原,每季度复核流量用量和账单,每年复核机器配置是否还合适。

顺便说流量用量的监控方法,因为流量超额最容易在账单上给惊喜:

apt install -y vnstat
systemctl enable --now vnstat
vnstat -m

vnstat 需要先跑一段时间才能积累数据,装上之后它会自动开始记录。 建议装完立刻启动服务并设成开机自启,这样你随时能看到当前月份已经用了多少流量。

查看 itldc 当前月价与库存

最后提醒一件容易被忽略的事:监控和备份本身也要占资源,但很便宜。 上面这几个脚本加起来大概只占几十 MB 内存和每天几 MB 磁盘,对 1 GB 机器完全可以承受。

八、Cloudflare、CDN 和回源:该在哪一层做加速

建站教程里最常被跳过的一节是「加速」,但它对用户体验的影响可能超过换一台更贵的机器。

先说结论:CDN 加速的是静态资源,不是动态渲染。 如果你的站点是 WordPress 这类动态站,CDN 能把 CSS、JS、图片、字体分发到边缘节点,但每个页面请求依然要回源到你的 VPS 上执行 PHP、查数据库。所以 CDN 帮不了动态部分的首字节时间。

用 Cloudflare 做 CDN 的配置流程:

第一步,把域名托管到 Cloudflare。 添加站点、改 NS 记录,等生效,通常几分钟到几小时。

第二步,确认源站能被 Cloudflare 访问到。 在 DNS 页面把 A 记录指向服务器 IP,代理开关打开(橙色云朵)。

第三步,配置 SSL/TLS 模式,这是最容易配错的地方。 推荐用「Full (strict)」模式——Cloudflare 到源站之间也走加密,并且会校验你的源站证书。不要用 Flexible 模式,那个模式下 Cloudflare 到源站是明文 HTTP。

第四步,设置缓存规则,这是 CDN 效果好坏的分水岭:

默认规则:只缓存静态扩展名,不缓存 HTML
静态资源目录 /wp-content/uploads/ :缓存 30 天
CSS/JS 文件:缓存 30 天,带版本号
HTML 页面:不缓存,或缓存 2 分钟并启用「清除缓存」触发器

「HTML 不缓存 + 静态资源长缓存」是 WordPress 站的标准做法。 原因很直接:HTML 是内容本身,改了必须马上生效;CSS/JS/图片内容不变,用文件名带版本号解决更新问题。同时打开「清除缓存」触发器,这样在后台改完文章,Cloudflare 会自动清掉对应页面的缓存。

加速效果可以量化。 假设首页有 20 个静态资源、总计 1.2 MB。不开 CDN 时这 1.2 MB 全部从你的 VPS 出去;开了 CDN 之后只有 HTML 骨架回源(约 30 KB 到 50 KB),其余 1.15 MB 由边缘节点就近分发。

项目 不开 CDN 开 CDN(静态资源命中缓存)
回源流量 1.2 MB/次访问 约 0.04 MB/次访问
回源比例 100% 约 3%
月回源流量(5 万次访问) 58.6 GB 约 1.96 GB
用户侧延迟 受机房位置影响,全程 静态资源走边缘,显著降低

查 spinservers 在售套餐与库存

这个数字很关键:开了 CDN 之后,月流量消耗从 58.6 GB 降到大约 2 GB。 按第一节那张表,流量单价在 3.41 到 51.20 美元(或元)每 TB 之间,流量省下来的钱直接体现在账单上。

但 CDN 不是没有代价的,要点有三个:

第一,动态请求的时间没有改善。 如果首字节时间主要耗在 PHP 和数据库上,CDN 对这一部分毫无作用。要改善动态部分,得从代码和数据库查询入手——加 Redis 对象缓存、给数据库加索引、把慢查询优化掉。

第二,源站 IP 会暴露。 攻击者可以通过历史 DNS 记录找到源站 IP,然后绕过 CDN 直接打源站。解决办法是在源站防火墙里只允许 Cloudflare 的 IP 段访问 80 和 443,这个 IP 段列表是公开的。

第三,回源那 3% 仍然要真实地跑你的应用。 所以源站的 CPU 和内存配置不能因为上了 CDN 就降下来。

如果你的站点是纯静态的,CDN 的价值更大——回源比例可以做到接近零,而且静态托管加 CDN 根本不需要 VPS。 但如果是动态站,CDN 和 VPS 是配合关系,不是替代关系。

顺便说一个常被问的问题:CDN 能不能替代选个好机房? 不能。CDN 优化的是静态资源从边缘节点到用户的距离;机房位置决定的是动态请求回源的距离和服务器到访客的链路质量。 一个访客在华南、你的源站在美西,那么每个动态请求都要走完整的美西往返,CDN 帮不上忙。真要解决这个,只能把源站放近,或者把动态部分做成无状态的可以就近扩展的服务。

九、四种不该用 VPS 建站的情况,以及替代方案

这一节讲四种按公开事实判断、你应该换方案的情况。 判断依据是机房位置、线路类型、计费方式、IP 资源这些可查的事实,不涉及对任何商家的评价,每种都配一个可执行的替代。

第一种:网站是单页落地页或活动页,没有后端、没有数据库、没有后台。 判断依据是功能需求。这种情况自建 VPS 属于用大炮打蚊子——你为 1 GB 内存、20 GB 硬盘和一台 7×24 运行的机器付费,换来一个纯静态页面,还要自己扛安全更新。替代方案:静态托管服务加 CDN,成本按流量计、无固定月费、无运维。 但反过来的边界也要明确:如果你需要后台管理、需要定时任务、需要用户登录,静态托管完全帮不上忙,VPS 是唯一合理的选择。

第二种:访问者绝大多数在中国大陆且对打开速度敏感,但你的业务又不涉及需要境外机房的能力(爬虫、绕过地域限制、海外支付等)。 判断依据是机房位置这一物理事实。商品库里 LAX 和 IRVINE-PRO 在美国加州,HK.DS 系列在香港,DS.ES 系列在欧洲方向,RosCloud 系列的标签是俄罗斯。从中国大陆到美国西海岸,光纤往返的物理延迟下限约 140 毫秒。如果你的业务是内容、电商、需要用户停留的页面,这个延迟会实打实影响跳出率,而且这个数字是物理规律,改任何配置都改不动。 替代方案:一是看商品库里的 HK.DS 系列(香港),物理距离近得多;配合云途的机房分布,境内机房在单位成本上也常常有优势——按第一节的表,云途每 GB 内存在 5.86 到 25.00 元区间;二是静态部分挂 CDN,动态部分把源站放近。 反过来说,如果你的访客本来就以海外为主,或者业务本身需要境外 IP 资源,那这条就不成立,选境外机房反而是对的。

第三种:你的站点需要 ICP 备案才能面向境内提供服务,但你看中的那台机器在境外。 判断依据是接入商的合规要求——备案对象是域名和服务内容,托管在境外的服务器无法完成境内备案流程。 替代方案是换用境内机房或境内云主机。注意这条的边界:如果你的站点根本不需要备案(个人项目、测试站、面向海外用户),那就不构成障碍,直接选境外机房更省事。

第四种:流量波动极大,无法预测峰值,而你看的机型流量配额小且超额成本高。 判断依据是计费方式。商品库里云途的机型在配额外有明确的重置价:10000 GB 流量的档位是 200 元每 TB,40000 GB 的档位是 500 元每 TB,30000 GB 的档位是 450 元每 TB。 折算下来分别是 20.48 元、12.80 元、15.36 元每 TB。这意味着超额单价和你正常配额的单位成本是同一量级——不是隐形罚款,但也绝不是零成本。 另外,商品库里所有机型的 traffic_unlimited 字段都是 false,目前这条产品线没有真正不限流量的选项。 替代方案:要么按峰值一次性买够大配额(40000 GB 档位的重置单价明显更低,是 12.80 元对 20.48 元),要么把静态资源拆到对象存储,让 VPS 只承担动态部分。

查 justg 在售套餐与库存

最后补一条边界:需要住宅 IP 的场景。 商品库的 IP 字段记录得很明确——RosCloud 全系列 ipv4_count 为 1(独立 IPv4),云途的机型标注普通 IPv4,sixtynet 的 Residential 系列在渠道说明里明确主打住宅 IP。 如果你的业务涉及爬虫、需要绕过地理限制、或者需要避免被识别为机房 IP,那普通 IPv4 机型在 IP 属性上就不满足要求,这时候看配置和价格都没有意义。 替代方案是走 Residential 系列,这一系列同样有 STARTER 到 LARGE 的完整档位:Residential-STARTER 每年 260 美元、2 GB 内存、40 GB 硬盘、5000 GB 流量;Residential-MICRO 每年 460 美元、4 GB 内存、80 GB 硬盘、10000 GB 流量;Residential-MEDIUM 每年 860 美元、8 GB 内存、160 GB 硬盘、20000 GB 流量;Residential-LARGE 每年 1660 美元、16 GB 内存、320 GB 硬盘、40000 GB 流量,差别主要在 IP 属性上。

按你的情况,下一步该看哪家

上面讲的是判断标准,但多数人最后还是想问一句「那我该买谁」。按你的实际情况对照下面几条,直接去看对应的机型页比继续比价更快:

价格与库存以商家页面当日显示为准,下单前建议先确认退款窗口与是否支持按月付费。

十、结论:按你的规模该落到哪一档

前面九节是方法和标准,这一节给结论,分四类人,每一类都给出具体该买什么、为什么,以及验收时重点盯哪几个数字。

第一类:个人项目、学习练手、或者刚起步的小站,月访问量在一万次以内,站点是静态的或者只有一个轻量动态页面。 选最低档,按月付,不要年付。 按商品库报价,RosCloud-01 是每月 19.99 美元、2 核、1 GB 内存、20 GB 硬盘、1024 GB 流量、500 Mbps 带宽;云途 HK.DS.M 是每月 350 元、1 核、32 GB 内存、480 GB 硬盘、10000 GB 流量、1000 Mbps 带宽(该档位当前库存为 0,要选同规格的在售机型)。这一类人买年付是最容易犯的错——省下的差价换不来任何东西,而机房位置恰恰是你唯一无法后期修改的变量。验收重点只有两个:内存谷值(available 保持 15% 以上)和磁盘使用率(低于 70%)。

第二类:有真实业务的中小站点,动态渲染加数据库加后台,月访问量在五万到二十万次,访问者主要在境内。 选境内机房,配置从 2 GB 内存起步,按第三节的规则配 worker 数。 按商品库报价,云途 DS.ES.C 是每月 700 元、1 核 5120、64 GB 内存、800 GB 硬盘、40000 GB 流量、2000 Mbps 带宽,每 GB 内存 10.94 元、每 TB 流量 17.92 元,当前库存 1 台;硬盘不够用、需要放大量素材的话,HK.DS.S 是每月 800 元、128 GB 内存、6000 GB 硬盘、40000 GB 流量,每 GB 内存只有 6.25 元、每 GB 硬盘只有 0.13 元,是全表内存单价最低的机型,但它的磁盘类型在商品库标注为 SAS HDD,动态渲染密集的站点要留意读写响应;它当前库存 13 台,是这条线里货源最充足的。如果需要独立 IPv4,商品库里 RosCloud 全系列的 ipv4_count 标注为 1,这是明确的字段事实。 验收重点是首字节时间(低于 300 毫秒)和 5xx 错误率(低于 0.1%),因为有真实业务,流量和错误率的波动直接影响收入。

第三类:面向海外用户、或者需要住宅 IP 的业务,要跑爬虫或者需要绕过地理限制。 走 Residential 系列,按并发量选档。 Residential-STARTER 每年 260 美元(折合每月 21.67 美元)、2 核、2 GB 内存、40 GB 硬盘、5000 GB 流量、2000 Mbps 带宽,每 GB 内存 10.83 美元、每 TB 流量 4.44 美元;并发量大就往上走 Residential-MICRO(每年 460 美元,4 核、4 GB 内存、80 GB 硬盘、10000 GB 流量)、Residential-MEDIUM(每年 860 美元,8 核、8 GB 内存、160 GB 硬盘、20000 GB 流量)或者 Residential-LARGE(每年 1660 美元,16 核、16 GB 内存、320 GB 硬盘、40000 GB 流量)。这一类人买的是 IP 属性而不是配置,不要拿别家的配置价格来比。 验收重点除了常规六项,还要加一条:真实抓取任务的成功率——IP 属性是否达标,只能靠真实业务跑出来才看得见。

第四类:站点已经验证过、流量稳定在百万级以上,或者是素材下载、图片站这类单页体积大的场景。 直接上大流量、高带宽的年付档位,素材站优先看存储型。 LAX-LARGE 是每年 1600 美元、8 核 16 GB 内存、320 GB 硬盘、40000 GB 流量、10000 Mbps 带宽,折合每月 133.33 美元,每 TB 流量 3.41 美元;素材站看 LAX-Storage-1TB,是每年 700 美元、8 核 8 GB 内存、1000 GB 硬盘、15000 GB 流量、10000 Mbps 带宽,硬盘单价只有 0.06 美元,是全表最低。这一类人年付是划算的,流量单价只有月付方案的零头。 验收重点是 5xx 错误率和 CPU 均值必须压住。

zenlayer 官网机型与实时报价

最后提醒一句:本文所有单价来自商品库 2026-11-06 16:30 的快照,下单前请以商家页面当日显示为准。 库存字段尤其要留意——云途 HK.DS.M、DS.ES.F、DS.ES.A、HK.DS.B、DS.ES.B 当前库存都是 0,DS.ES.C 和 DS.ES.D 都是 1 台,HK.DS.P 是 5 台,HK.DS.S 是 13 台。 下单前一定确认现货。选定档位之后,把第六节那八项验收标准先存下来,机器到手当天跑一遍——问题在第一天暴露,换机只需要一小时;问题在第三个月暴露,你得回溯日志、比对数据、迁移内容,那是几天的工作量。

飞翔声明:飞翔网登载此文出于传递更多信息之目的,并不意味着赞同其观点或证实其描述。

评论:0 次

阅读本文后您有什么感想? 已有 人给出评价!

  • 0 喜欢
  • 0 高兴
  • 0 鬼脸
  • 0 呵呵
  • 0 无聊
  • 0 伤心

相关新闻

网友评论

评分
★
★
★
★
★
力荐
选择头像:
10
999+人评分
★★★★★
★★★★
★★★
★★
★
查看更多 >

魔兽世界Dota式击杀音效插件PVPSound

点击进入 立即下载

关于飞翔 | 联系我们 | 大事记 | 下载帮助(?) | 广告联系 | 版权声明 | 网站地图 | 友情链接

Copyright 2010-2025 单机游戏下载 (R) 版权所有 飞翔下载所有游戏及软件下载资源来源互联网,并由网友上传分享。如有侵权,请来电来函告之。
飞翔忠告:抵制不良色情、反动、暴力游戏 合理安排游戏时间 享受健康生活 鄂公网安备:42011102003115号 【鄂ICP备17000818号-1】