加油
努力

如何在轻量应用服务器上搭建多个网站?

在轻量应用服务器(如腾讯云轻量应用服务器、阿里云轻量应用服务器等)上搭建多个网站,核心思路是:一台服务器 + 一个 Web 服务器(如 Nginx/Apache)+ 多个域名/端口/路径 + 反向X_X或虚拟主机配置。以下是清晰、安全、可落地的详细步骤(以 Nginx + Ubuntu 22.04(主流轻量系统) 为例):


✅ 前提条件

  1. 已购买并初始化轻量应用服务器(推荐选择带公网 IP 的实例);
  2. 已备案(中国大陆地区访问需完成ICP 备案,否则域名无法解析到国内服务器);
  3. 已将多个域名(如 site1.comsite2.netDNS 解析到服务器公网 IP(A 记录);
  4. 确保服务器安全组/防火墙放行 80(HTTP)、443(HTTPS)端口(及可选的 22)。

🌐 方式一:基于域名的多站点(推荐 ✅)

最常用、最标准的方式——通过 Nginx 的 server 块按 server_name 区分不同网站。

步骤 1:安装 Nginx(若未预装)

sudo apt update
sudo apt install nginx -y
sudo systemctl enable nginx
sudo systemctl start nginx

步骤 2:创建网站目录与示例页面

# 创建两个网站根目录
sudo mkdir -p /var/www/site1.com/html
sudo mkdir -p /var/www/site2.net/html

# 写入简单首页(测试用)
echo "<h1>Welcome to Site1!</h1>" | sudo tee /var/www/site1.com/html/index.html
echo "<h1>Welcome to Site2!</h1>" | sudo tee /var/www/site2.net/html/index.html

# 设置权限(确保 Nginx 可读)
sudo chown -R $USER:$USER /var/www/site1.com/html
sudo chown -R $USER:$USER /var/www/site2.net/html
sudo chmod -R 755 /var/www

步骤 3:配置 Nginx 虚拟主机(Server Blocks)

⚠️ 注意:轻量服务器默认配置通常在 /etc/nginx/sites-available/,使用符号链接启用。

# 创建 site1 配置
sudo nano /etc/nginx/sites-available/site1.com

内容如下:

server {
    listen 80;
    server_name site1.com www.site1.com;

    root /var/www/site1.com/html;
    index index.html;

    location / {
        try_files $uri $uri/ =404;
    }
}
# 创建 site2 配置
sudo nano /etc/nginx/sites-available/site2.net
server {
    listen 80;
    server_name site2.net www.site2.net;

    root /var/www/site2.net/html;
    index index.html;

    location / {
        try_files $uri $uri/ =404;
    }
}

步骤 4:启用站点 & 测试配置

# 创建软链接启用(相当于 Apache 的 a2ensite)
sudo ln -sf /etc/nginx/sites-available/site1.com /etc/nginx/sites-enabled/
sudo ln -sf /etc/nginx/sites-available/site2.net /etc/nginx/sites-enabled/

# 删除默认站点(可选,避免冲突)
sudo rm -f /etc/nginx/sites-enabled/default

# 检查语法 & 重启
sudo nginx -t
sudo systemctl reload nginx

✅ 此时访问 http://site1.comhttp://site2.net 即可看到不同页面。


🔒 进阶:为每个网站配置 HTTPS(强烈建议)

使用 Certbot + Let’s Encrypt 免费证书(需域名已解析且开放 80/443):

sudo apt install certbot python3-certbot-nginx -y

# 为 site1 申请证书(自动修改 Nginx 配置)
sudo certbot --nginx -d site1.com -d www.site1.com

# 为 site2 申请证书
sudo certbot --nginx -d site2.net -d www.site2.net

✅ Certbot 会自动:

  • 获取证书并存放在 /etc/letsencrypt/live/...
  • 修改 Nginx 配置添加 listen 443 ssl 和证书路径
  • 自动重定向 HTTP → HTTPS(可选)

💡 提示:证书 90 天过期,Certbot 已配置自动续期(systemctl list-timers | grep certbot 查看)。


🧩 其他实用方式(按需选用)

方式 适用场景 简要说明
端口区分 无域名/测试环境 http://IP:8080 → site1,http://IP:8081 → site2;Nginx listen 8080; 即可
子目录部署 单域名下多项目(如 example.com/blog, example.com/app 使用 location /blog { alias /var/www/blog/; }
反向X_X(Node.js/Python 等) 后端服务非静态网站 location /api { proxy_pass http://127.0.0.1:3000; }
Docker 容器化 隔离性强、环境复杂 为每个网站运行独立 Nginx 容器 + nginx-proxy(如 jwilder/nginx-proxy)

🛡️ 安全与运维建议

  • 定期更新系统sudo apt update && sudo apt upgrade -y
  • 禁用 root 密码登录:改用 SSH 密钥 + PermitRootLogin no
  • 设置 UFW 防火墙
    sudo ufw allow OpenSSH
    sudo ufw allow 'Nginx Full'  # 开放 80/443
    sudo ufw enable
  • 网站日志分离(便于排查):
    # 在每个 server 块中添加
    access_log /var/log/nginx/site1.access.log;
    error_log /var/log/nginx/site1.error.log;
  • 监控基础资源htopdf -hjournalctl -u nginx -n 50

❌ 常见问题速查

现象 可能原因 解决
访问域名显示 Nginx 默认页 sites-enabled 中存在 default,或 server_name 不匹配 sudo rm /etc/nginx/sites-enabled/default,检查 server_name 是否含空格/大小写错误
502 Bad Gateway 后端服务(如 Node)未启动,或 proxy_pass 地址错误 curl http://127.0.0.1:3000 测试后端,检查 Nginx 日志 tail -f /var/log/nginx/error.log
HTTPS 证书申请失败 DNS 未生效 / 防火墙拦截 80 端口 / 域名未备案(国内) dig A site1.com 检查解析;telnet site1.com 80 测试连通性;确认备案状态

需要我为你:

  • ✅ 生成完整的 Nginx 配置模板(含 HTTPS/HTTP 强制跳转)
  • ✅ 编写一键部署脚本(自动建站+证书)
  • ✅ 演示如何用 Docker 部署多个 WordPress 网站
  • ✅ 针对阿里云/腾讯云轻量控制台的备案指引

欢迎随时告诉我你的具体需求(比如你用的是哪家云?已有域名?想跑什么程序?),我可以为你定制方案 👇

云服务器