轻量应用服务器(Lighthouse/Simple Application Server)完全支持多站点配置。事实上,这是它最核心的使用场景之一,尤其是对于个人开发者、初创团队或者需要部署多个博客、企业官网的用户来说,性价比极高。
很多人误以为轻量服务器只能跑一个网站,那是把“镜像”和“服务器资源”搞混了。镜像只是预装好的环境包,一旦实例启动,它就是一台标准的 Linux 或 Windows 云服务器,拥有独立的 IP、内存、CPU 和磁盘空间。只要资源没耗尽,理论上你可以在这台服务器上搭建无数个 Web 服务。
实现多站点配置,核心思路只有一个:基于域名或端口的虚拟主机(Virtual Host)技术。
下面我以目前主流的 Nginx + PHP (LNMP) 环境为例,详细拆解如何在轻量服务器上配置两个不同的站点(假设域名为 a.com 和 b.com)。
第一步:前置准备
- 域名解析:确保你的两个域名
a.com和b.com都 A 记录解析到了这台轻量服务器的公网 IP。 - 安全组放行:登录云厂商控制台,检查安全组规则,确保 TCP 80 (HTTP) 和 443 (HTTPS) 端口已对 0.0.0.0/0 开放。
- 环境安装:
- 如果你买的是官方提供的 LNMP 镜像,通常已经装好了 Nginx、MySQL 和 PHP。
- 如果是纯净 CentOS/Ubuntu 镜像,你需要手动安装。推荐使用宝塔面板(BT Panel)或者 Oneinstack 等集成脚本,这对新手最友好,能极大降低配置门槛。注:以下命令行操作假设你使用的是原生 Nginx 配置,不依赖面板。
第二步:创建站点目录结构
在服务器上为每个站点创建独立的目录,保持逻辑清晰。
# 创建 a.com 的根目录
sudo mkdir -p /var/www/a.com/public_html
# 创建 b.com 的根目录
sudo mkdir -p /var/www/b.com/public_html
# 设置权限(以 www-data 用户为例,具体看你的系统用户)
sudo chown -R www-data:www-data /var/www/a.com
sudo chown -R www-data:www-data /var/www/b.com
第三步:编写 Nginx 配置文件
Nginx 通过 server_name 指令来区分不同域名的请求。我们需要在 /etc/nginx/conf.d/ 或 /etc/nginx/sites-available/ 目录下为每个站点创建一个独立的配置文件。
1. 配置 a.com (/etc/nginx/conf.d/a.com.conf)
server {
listen 80;
server_name a.com www.a.com;
root /var/www/a.com/public_html;
index index.php index.html index.htm;
location / {
try_files $uri $uri/ =404;
}
# PHP 处理部分(根据实际 PHP-FPM 监听地址调整)
location ~ .php$ {
fastcgi_pass unix:/run/php/php7.4-fpm.sock;
fastcgi_index index.php;
fastcgi_param SCRIPT_FILENAME $document_root$fastcgi_script_name;
include fastcgi_params;
}
}
2. 配置 b.com (/etc/nginx/conf.d/b.com.conf)
server {
listen 80;
server_name b.com www.b.com;
root /var/www/b.com/public_html;
index index.php index.html index.htm;
location / {
try_files $uri $uri/ =404;
}
location ~ .php$ {
fastcgi_pass unix:/run/php/php7.4-fpm.sock;
fastcgi_index index.php;
fastcgi_param SCRIPT_FILENAME $document_root$fastcgi_script_name;
include fastcgi_params;
}
}
关键点说明:
listen 80:监听 HTTP 默认端口。如果后续要上 HTTPS,需增加listen 443 ssl;并配置证书路径。server_name:这是路由的核心,匹配访问的域名。root:指向该站点具体的物理文件路径。
第四步:重载 Nginx 并测试
修改配置后,必须重载 Nginx 才能生效。
# 检查配置文件语法是否正确(非常重要,防止配错导致全站挂掉)
sudo nginx -t
# 如果显示 syntax is ok,则重载
sudo systemctl reload nginx
现在,你在浏览器输入 a.com 应该看到 a.com 的内容,输入 b.com 看到 b.com 的内容。它们在同一台机器、同一个 IP 上运行,互不干扰。
进阶与注意事项
-
关于 SSL 证书(HTTPS):
轻量服务器通常自带免费 SSL 证书功能(如阿里云的 Let’s Encrypt 自动续期插件),或者你可以使用 Certbot 自动化申请。配置 HTTPS 时,只需在每个server块中添加ssl_certificate和ssl_certificate_key路径即可。Nginx 完美支持 SNI(Server Name Indication),允许单个 IP 绑定多个不同的 SSL 证书。 -
资源隔离与性能:
虽然逻辑上隔离了,但物理资源是共享的。如果a.com突然流量暴涨吃满 CPU,b.com也会变慢。因此,建议给每个站点设置合理的worker_connections限制,或者使用 Docker 容器化部署,以便更精细地控制内存和 CPU 配额。 -
数据库管理:
多站点意味着多个数据库。建议在 MySQL/MariaDB 中为每个站点创建独立的用户和数据库,赋予最小权限原则。例如:CREATE DATABASE db_a; CREATE USER 'user_a'@'localhost' IDENTIFIED BY 'password'; GRANT ALL PRIVILEGES ON db_a.* TO 'user_a'@'localhost'; FLUSH PRIVILEGES;这样即使一个站点被攻破,另一个站点的数据库也是安全的。
-
备份策略:
轻量服务器没有像 ECS 那样完善的快照联动机制(部分厂商提供基础快照服务)。务必定期备份/var/www目录下的代码文件和 MySQL 数据库。可以使用mysqldump结合定时任务(Crontab)实现自动备份,并上传到对象存储 OSS/COS 中。 -
为什么不用 Apache?
Apache 也可以做多站点(VirtualHost),但在高并发场景下,Nginx 的处理效率更高,且配置更简洁。对于轻量服务器这种小资源配置,Nginx 更能发挥硬件性能。
总结来说,轻量服务器做多站点没有任何技术障碍,本质就是标准 Web 服务器的常规操作。关键在于做好目录规划、权限管理和资源监控,避免单点故障影响所有业务。
云技术博客