一个云主机怎么挂两个网站速查手册:小白避坑指南 自己不会代码想做网站,最怕的就是搞懂服务器配置后,发现资源不够用或者怕配错了把站搞崩。很多人以为一台云主机只能跑一个站,其实只要会配置 Nginx,挂两个、三个甚至十个站都没问题。今天这篇【一个云主机怎么挂两个网站】的实操笔记,就是为了解决这个痛点。我不讲虚的理论,直接给你一份可落地的【速查手册】,哪怕你是设计师转前端,照着敲也能搞定。 项目背景与需求:为什么非要塞进一台机器 先说个真实场景。上个月帮一个做家居设计的客户做官网,他手头预算有限,不想为了测试环境多租一台服务器。他手头已经有一个线上正式站,现在想在这个云主机上再挂一个内部用的产品预览站,方便团队随时查看新版页面效果,但又不能影响正式站的访问速度。 这就引出了很多初学者的困惑:域名不同、端口相同(都是 80 或 443),怎么让服务器知道访问哪个 IP 应该返回哪个网站的内容? 这里有个核心概念要澄清:虚拟主机(Virtual Host)。在 Linux 环境下,Nginx 或 Apache 都支持通过“服务器名称”(Server Name)来区分不同的站点。简单说,就是告诉服务器:“当有人访问 A.com 时,给他看网站 A 的文件;当有人访问 B.com 时,给他看网站 B 的文件。” 在这个案例中,客户的需求很明确:隔离性:两个网站代码目录完全分开,互不干扰。 安全性:内部预览站最好加上简单的密码保护,防止外部人员随意访问。 性能:不能因为多了一个站,导致正式站变慢。很多小白朋友在这里容易踩坑,比如直接在 index.html 里改代码,结果改着改着把正式站也搞挂了。所以,建立清晰的目录结构是第一步。 技术选型:Nginx vs Apache,谁更适合你 既然要挂两个站,Web 服务器的选择至关重要。目前主流的就是 Nginx 和 Apache。 1. Nginx:高并发首选,配置简单 对于大多数中小型网站,尤其是静态资源较多的官网,Nginx 是绝对的首选。它的内存占用极低,处理并发连接的能力极强。更重要的是,Nginx 的配置逻辑非常直观,用“块”的方式组织,新手很容易理解。优点:速度快、资源占用少、配置简单。 缺点:动态内容(如 PHP、ASP.NET)需要额外配合 FastCGI 或应用服务器。2. Apache:老牌稳定,模块丰富 Apache 历史悠久,模块化做得非常好,几乎什么语言都能跑。如果你的网站涉及复杂的后端逻辑,且没有专职运维,Apache 的生态可能更友好。优点:兼容性好、模块多、文档多。 缺点:内存占用相对较高,配置文件较冗长,高并发下性能略逊于 Nginx。我的建议: 如果你是纯静态网站,或者使用 Node.js/Python 等现代框架作为后端,强烈推荐 Nginx。它的配置文件结构清晰,非常适合做“多站点挂载”。在这个案例中,我们选择了 Nginx,因为客户的两个站都是基于 Vue 构建的静态前端,后端接口调用的是第三方的云服务,本地只需要处理静态资源即可。 这里推荐一个 GitHub 上的开源仓库,里面整理了大量 Nginx 的最佳实践配置模板,特别是关于多域名、HTTPS 自动生成的部分,非常实用:nginx-best-practices。你可以去搜一下,里面有很多现成的 Server Block 示例,能帮你避开很多语法错误。 核心实现:手把手教你配置 Nginx 好,理论说完,上干货。假设你的云主机 IP 是 192.168.1.100,你买了两个域名:www.main-site.com(正式站)和 preview.design.com(预览站)。 第一步:准备目录结构 在服务器根目录下,创建两个文件夹,分别存放两个网站的静态文件: mkdir -p /var/www/html/main-site mkdir -p /var/www/html/preview-site把打包好的前端文件(通常是 dist 文件夹里的内容)分别拷贝进去。注意,权限要设对,通常建议设置为 755 或 644,属主为 www-data(Nginx 的默认运行用户)。 第二步:配置 Nginx 编辑 Nginx 配置文件,通常在 /etc/nginx/sites-available/ 或 /etc/nginx/conf.d/ 目录下。为了方便管理,建议为每个网站新建一个独立的配置文件,而不是全部堆在一个 default.conf 里。 1. 配置正式站 (main-site) 新建文件 /etc/nginx/sites-available/main-site,内容如下: server {listen 80;server_name www.main-site.com;root /var/www/html/main-site;index index.html;# 前端路由刷新 404 问题处理location / {try_files $uri $uri/ /index.html;}# 静态资源缓存优化location ~* \.(jpg|jpeg|png|gif|ico|css|js)$ {expires 30d;add_header Cache-Control public, immutable;} }2. 配置预览站 (preview-site) 新建文件 /etc/nginx/sites-available/preview-site,这里我们加一个简单的 Basic Auth 密码保护,确保只有内部人员能看: server {listen 80;server_name preview.design.com;root /var/www/html/preview-site;index index.html;# 开启基本认证auth_basic Restricted Access;auth_basic_user_file /etc/nginx/.htpasswd;# 前端路由刷新 404 问题处理location / {try_files $uri $uri/ /index.html;} }第三步:生成密码文件 上面的 auth_basic_user_file 指向一个密码文件。我们需要生成它:安装 htpasswd 工具(通常在 apache2-utils 包里): sudo apt-get install apache2-utils创建密码文件并添加用户(比如用户名为 admin): sudo htpasswd -c /etc/nginx/.htpasswd admin系统会提示你输入两次密码,输入完成后,访问预览站就会弹出登录框了。第四步:启用配置并重启 Nginx 通常有一个 sites-enabled 目录,里面存放的是软链接。你需要把刚才创建的文件链接过去: sudo ln -s /etc/nginx/sites-available/main-site /etc/nginx/sites-enabled/ sudo ln -s /etc/nginx/sites-available/preview-site /etc/nginx/sites-enabled/第五步:测试并重载 在重启之前,务必测试配置语法是否正确,避免改错导致服务崩溃: sudo nginx -t如果输出 syntax is ok 和 test is successful,就可以安全地重载配置了: sudo systemctl reload nginx第六步:域名解析 回到域名注册商后台,添加两条 A 记录:www.main-site.com 指向 192.168.1.100 preview.design.com 指向 192.168.1.100等待 DNS 生效后,访问两个域名,应该能看到不同的网站内容了。 上线与优化:别让两个站互相拖后腿 配置好只是第一步,真正的挑战在于“上线后的维护”。很多新手在这里容易忽视性能和安全细节。 1. HTTPS 证书配置 现在的搜索引擎(如百度、Google)都极度重视 HTTPS。如果两个站都要上 SSL,你有两个选择:单独申请证书:给每个域名申请一张免费或付费的证书。 通配符证书:如果你的两个域名是子域名关系(如 a.example.com 和 b.example.com),可以买一张通配符证书。但在本案例中,是两个不同主域名,所以建议单独申请。使用 Let's Encrypt 的 certbot 工具可以一键自动化申请和续期。配置好证书后,记得在 Nginx 配置里加上 listen 443 ssl; 以及对应的 ssl_certificate 路径,并强制 HTTP 跳转 HTTPS。 2. 资源监控 虽然一台云主机挂两个站压力不大,但还是要养成监控的习惯。推荐安装 htop 和 iftop。htop:查看 CPU 和内存使用情况。如果内存占用持续飙升,可能是某个站有内存泄漏。 iftop:查看网络流量。如果某个站的流量异常巨大,可能是被爬虫抓了,或者被 DDoS 攻击。3. 日志分析 Nginx 的访问日志(access.log)是宝贵的数据源。你可以用简单的命令统计哪个页面访问最多: awk '{print $7}' /var/log/nginx/access.log | sort | uniq -c | sort -nr | head -10这对于优化静态资源加载顺序、发现 404 错误都非常有帮助。 4. 备份策略 千万不要只备份代码!一定要定期备份 Nginx 的配置文件。一个简单的 crontab 任务就可以搞定: 0 2 * * * tar -czf /backup/nginx-config-$(date +\%Y\%m\%d).tar.gz /etc/nginx/每天凌晨 2 点打包一份配置,以防哪天手滑改坏了配置,还能快速恢复。 经验总结:给设计师转前端的几点忠告 做这个案例的过程中,我深刻体会到,“懂原理”比“会抄代码”更重要。 很多设计师转前端的朋友,习惯用拖拽工具建站,一旦涉及到服务器部署,就感到无从下手。其实,Nginx 的配置逻辑非常符合设计师的“图层”思维:Server Block 就像一个画板,每个画板对应一个域名。 Location 就像画板里的图层,决定特定路径下显示什么内容。 Root 就是素材库的路径,告诉浏览器去哪里找图片、HTML 文件。只要理解了这三层关系,你就掌握了多站点挂载的核心。 另外,不要害怕报错。Nginx 的报错信息通常很明确,比如 host not found in upstream,这就告诉你 DNS 解析有问题;permission denied,就是文件权限没给对。学会看日志,学会用 nginx -t 测试,你就已经超过了 80% 的新手。 最后,关于“一个云主机怎么挂两个网站”这个问题,答案其实很简单:用 Nginx 的虚拟主机功能,区分 Server Name,隔离 Root 目录。剩下的,就是细心和耐心。 技术没有捷径,但有一份清晰的【速查手册】能帮你少走很多弯路。希望这篇实战记录能对你有所帮助。如果你在配置过程中遇到了奇怪的报错,或者对某个参数不太理解,欢迎在评论区留言,我会挨个回复。 还有什么建站疑问?评论区留言挨个回