一台轻量云服务器同时放几个站很常见:博客、产品落地页、内部工具都可能要上线。省钱的办法是在同一台机器上加虚拟主机,用域名区分站点。配置本身不复杂,但域名绑定和目录权限这两处最容易出错,下面按实际操作顺序讲。

虚拟主机靠什么区分站点
同一台服务器上的多个网站,靠的是域名。访问者输入不同域名时,请求头里会带上 Host 字段,Web 服务器据此决定返回哪个站点的内容,这就是基于域名的虚拟主机(name-based virtual host)。所有站点可以共用一个公网 IP,不必为每个站点单独购买地址,管理也集中在一处。
动手前先确认四件事
正式改配置之前,先过一遍下面几项,能省掉大半排查时间:
- Nginx 或 Apache 已安装,并且能正常打开默认页面。默认页面都打不开时,后面的问题很难分辨。
- 每个域名都已准备好。服务器位于中国大陆的,还需要完成域名备案。
- 防火墙或安全组放行 80 和 443 端口。很多人配完 Nginx 却访问不了,问题往往出在这里。
- 提前规划目录结构,例如 /var/www/站点名/。每个站一个目录,别把文件混放在一起。
第一步:配置域名解析
在域名服务商控制台,为每个域名添加 A 记录,记录值填轻量服务器的公网 IP。多个域名指向同一个 IP 是正常的,虚拟主机正是靠 Host 字段来分流。解析生效通常需要几分钟到几小时,生效前可以用 ping 或 nslookup 查看返回的 IP 是否正确。如果本机缓存了旧记录,换个网络或清一下 DNS 缓存再测。
第二步:创建站点目录并检查权限
为每个站点建立独立目录,放入一个测试页面,方便之后判断问题出在哪一层。权限这里最容易偷懒。直接设成 777 虽然能让页面跑起来,但等于任何人都能改写文件。更稳妥的做法是让目录归属运行 Nginx 的用户:Debian、Ubuntu 上通常是 www-data,CentOS 上通常是 nginx。目录一般设为 755,文件设为 644。用 ls -l 确认归属,不对就用 chown 调整。
第三步:编写 server 块
Nginx 用 server 块实现虚拟主机。每个站点对应一个配置文件,放在 /etc/nginx/conf.d/ 目录下;如果使用 sites-available,则需要再软链接到 sites-enabled。示例如下:
server {
listen 80;
server_name blog.example.com;
root /var/www/blog;
index index.html index.htm;
access_log /var/log/nginx/blog.access.log;
error_log /var/log/nginx/blog.error.log;
location / {
try_files $uri $uri/ =404;
}
}
另一个站点只需复制这份文件,改掉 server_name、root 和日志路径。改完之后先执行 nginx -t 检查语法,输出 syntax is ok 再执行 nginx -s reload 让配置生效。reload 失败时旧配置仍在运行,新配置不会生效,所以这一步别跳过。
第四步:启用 HTTPS
站点上线后,为每个域名申请 SSL 证书。Let’s Encrypt 提供免费证书,配合 certbot 可以完成申请和自动续期。证书可以按域名分别签发,也可以合并为一张多域名证书,取决于你希望怎样管理。无论哪种方式,都要确认续期任务真的在运行,证书过期后访客会直接看到浏览器的安全警告。
一个实际案例
某设计工作室买了一台 2 核 2GB 的轻量应用服务器,要同时上线作品集网站、客户案例展示页和内部项目文档站。预算只够一台机器,于是三个域名都解析到同一个公网 IP,Nginx 用三个 server 块分别指向各自的目录。
上线初期,三站合计日访问量约两千次,CPU 峰值不到 30%,内存稳定在 800MB 左右,余量还算充足。后来作品集网站因为一篇文章被大量转发,访问量在短时间内涨了好几倍。三个站的日志是分开记录的,运维很快看出问题在于图片未压缩,带宽吃紧。压缩图片、开启浏览器缓存之后,负载回落,另外两个站点也没有受到影响。
常见坑
- 域名访问不通:先查解析记录,再查本地 DNS 缓存,最后确认 server_name 的拼写和解析的域名完全一致。
- 请求进了错误站点:没有匹配任何 server_name 的请求,会落到第一个 server 块。建议单独设置一个 default_server,直接返回 404,避免陌生域名或 IP 访问时看到别人的站点。
- 资源互相挤占:多个站共用 CPU 和内存。流量大的站点要重点盯紧,真的涨上来就拆到独立实例,别等到全部站点一起变慢。
- 安全隔离:各站目录权限应相互独立。如果一个站点的运行用户能写入其他站点的路径,一旦被入侵,影响就会扩散,所以每个站的 root 路径要严格划分。
小结
在轻量云服务器上添加虚拟主机,要做的事情不多:解析域名、分好目录、写好 server 块、部署证书。每一步出错,症状通常都会体现在访问结果上,逐步验证比一次全部配完更省时间。等站点数量和流量真的涨上来,再考虑升级配置或拆分服务也不迟。