免费服务器搭建网站教程网上一搜一大把,可难点不在技术,在于免费机器的资源通常是掐着给的。同一套教程,在 4 核 8G 的机器上顺风顺水,挪到 1 核 1G 的免费额度上就会在装数据库那一步卡死。这篇按“先轻后重”的顺序走一遍,每一步都告诉你低配机器上要改哪里。
一、先摸清楚手上这台机器给的是什么
别急着装环境,先花三分钟确认四件事:系统版本、是不是 root、内存和磁盘剩多少、有没有独立的公网地址。免费资源里最常见的坑是内存太小,默认配置的数据库一启动就 OOM,进程被系统杀掉,表现成“装完了但连不上”。
磁盘也一样,免费额度经常只给十几 G,网站文件和数据库日志一起涨,很快见底。先看清余量,再决定要不要装数据库。
# 查看系统与资源余量;内存小于 1G 时给系统补一块 swap 兜底
cat /etc/os-release | head -3
free -h
df -h /
nproc
# 内存不足 1G 时创建 1G 交换空间(先确认磁盘有空间)
sudo fallocate -l 1G /swapfile
sudo chmod 600 /swapfile
sudo mkswap /swapfile
sudo swapon /swapfile
free -h
这段命令干什么用:前四条把系统版本、内存、磁盘、CPU 核数打出来,作为后面选方案的依据;后半段给低配机器补一块 1G 的交换空间,防止数据库初始化时被系统杀进程。要改哪里:内存有 2G 以上就不用执行 swap 那几条;磁盘紧张的话把 1G 改成 512M。跑完看什么:free 输出里 Swap 那一行不再是 0,说明生效;磁盘使用率超过 80%,先清理再装东西。
二、装环境:静态站和动态站走两条路
静态站最省资源。装一个 Nginx,把文件丢进站点目录就完事,内存占用只有几十兆,免费额度完全扛得住。个人博客、文档站、落地页优先考虑这条路。
动态站要跑 PHP 或者后端程序,多出一个应用进程。低配机器上的取舍是:能用轻量数据库就别上完整版数据库,要用也把缓冲参数调小。数据库的连接数和缓存按内存的四分之一给,别照抄默认配置。
装完环境,Nginx 的站点配置至少要写对三件事:站点根目录、默认首页文件、以及把带 www 和不带 www 的请求统一到一个入口。三件事做到了,后面做收录才不会有重复内容的问题。
# Nginx 站点配置片段:/etc/nginx/conf.d/example.conf
server {
listen 80;
server_name example.com www.example.com;
root /var/www/example;
index index.html index.php;
# 带 www 的统一跳到不带 www 的主域名
if ($host = www.example.com) {
return 301 http://example.com$request_uri;
}
location / {
try_files $uri $uri/ =404;
}
}
这段配置干什么用:声明站点根目录和首页文件,并把 www 前缀的访问统一 301 到主域名,避免同一个页面出现两个地址。要改哪里:root 换成你实际放文件的位置,server_name 换成你自己的域名,如果你习惯用带 www 的主域名,把跳转方向反过来。跑完看什么:改完执行 nginx -t 确认语法通过,再重载服务;浏览器分别访问带 www 和不带 www 的地址,都应落到同一个页面。
三、绑域名、开 HTTPS
域名解析加一条 A 记录指向服务器地址,等解析生效(本机用 ping 或 nslookup 确认拿到的是新地址)。HTTPS 证书走免费签发渠道,注意现在主流的免费证书有效期只有几天到三个月不等,短期证书必须配好自动续期任务,否则到期当天站点会直接打不开。
证书装好后把 80 端口的请求全部跳到 443,让站点只有一个正式入口。这一步对后来的收录有直接影响:HTTP 和 HTTPS 都能打开、都返回 200 的站,等于把同一份内容放在了两个地址上。
四、上线后补上收录要用的三样东西
第一是 robots.txt,放在站点根目录,声明允许抓取的范围和站点地图位置。第二是 sitemap.xml,把主要页面列进去,页面更新后同步刷新。第三是确认所有页面的返回状态正常——这一步要用工具逐个查,靠肉眼点不出来。
下面这条命令批量检查一批地址的返回状态。
# 批量检查页面返回状态与响应时间(结果非 200 的要单独看)
for u in http://example.com/ http://example.com/about http://example.com/post-1; do
curl -s -o /dev/null -w "%{http_code} %{time_total}s $u\n" -m 10 "$u"
done
这段命令干什么用:逐个请求你列出的地址,只取状态码和总耗时,不下载页面内容。要改哪里:把循环里的三个地址换成你要检查的页面,可以从站点地图里挑重点页面。跑完看什么:出现 404 说明链接写错了或者页面被删了;出现 301、302 说明这个地址不是最终入口;状态码正常但耗时超过两三秒,回头查一下服务器的资源占用。
上线只是开始。免费服务器的资源会随着站点内容增长慢慢吃紧,做完上面这些,顺手记一份当前配置(系统版本、软件版本、站点目录、数据库账号),将来要搬家的时候,这份记录能省下大半时间。
相关阅读:《永久免费服务器安装部署步骤:从开通到网站上线》、《免费服务器安全吗?这几类风险得提前想清楚》、《想用免费服务器长期挂站?先算清这几笔隐性成本》
A5创业网 版权所有