一台服务器只能跑一个网站?那是给“土豪”准备的玩法。
对于咱们大多数运维和开发者来说,单机多站才是性价比的终极奥义。
简单说,就是把你的云服务器当成一栋摩天大楼。虽然地基(服务器硬件)只有一个,但你可以通过虚拟主机技术,把它隔成无数间独立的“公寓”(网站)。
无论是你的个人博客、公司的官网,还是正在开发的测试项目,都能在这栋楼里拥有独立的门牌号(域名)和独立的房间(目录)。
💰 钱包友好(省钱):
别再傻傻地买一堆低配VPS了。一台高配服务器跑十个站,成本直接打下来,省下的钱买排骨吃不香吗?
🛠️ 懒人福音(好管):
所有的站点都在一个屋檐下,系统更新、安全补丁、环境配置,一次操作,全部搞定。不用登完这台登那台,效率直接翻倍。
🎯 资源随心(灵活):
就像给公寓分房间一样,你可以给流量大的主站多分点资源,给测试站少分点。想怎么切分存储路径和权限,全由你说了算。
🚀 场景通吃(全能):
想做SEO站群?想搭建开发测试环境?还是想给朋友建个展示页?这一台服务器,统统都能装得下。
接下来,我就手把手教你,如何把这栋“大楼”盖起来,实现真正的数字空间多点开花!
方式1:按端口区分(无域名必用,测试党首选)
适用场景:没有域名、临时测试、本地调试,同个IP,不同端口对应不同网站,简单粗暴!
访问方式(记死!):
可直接复制的配置(替换路径就能用):
# 网站1:默认80端口(不用加端口,直接访问IP)
server {
listen 80;
server_name _; # 不用改,默认匹配所有
root /var/www/site80; # 替换成你的网站文件路径
index index.html index.php; # 默认首页
# 静态页面配置(必加,避免404)
location / {
try_files $uri$uri/ /index.html;
}
# 可选:需要解析PHP的加上(比如WordPress、ThinkPHP)
location ~ \.php$ {
fastcgi_pass 127.0.0.1:9000;
fastcgi_index index.php;
include fastcgi_params;
fastcgi_param SCRIPT_FILENAME $document_root$fastcgi_script_name;
}
}
# 网站2:81端口
server {
listen 81;
server_name _;
root /var/www/site81; # 替换成你的路径
index index.html index.php;
location / {
try_files $uri$uri/ /index.html;
}
}
# 网站3:82端口(可无限新增,改端口和路径即可)
server {
listen 82;
server_name _;
root /var/www/site82; # 替换成你的路径
index index.html index.php;
location / {
try_files $uri$uri/ /index.html;
}
}
方式2:按域名区分(正式网站首选,99%的人在用)
适用场景:正式上线网站、有多个域名,同个IP+同个端口(80/443),不同域名对应不同网站,和正常访问网站一样,用户体验拉满!
访问方式(和平时逛网站一样):
http://www.a.com → 网站1
http://www.b.com → 网站2
http://www.c.com → 网站3
可直接复制的配置(替换域名和路径):
# 网站1:www.a.com(主域名+二级域名都加上,避免访问失败)
server {
listen 80; # 固定80端口(http默认)
server_name www.a.com a.com; # 替换成你的域名
root /var/www/a.com; # 替换成网站1的文件路径
index index.html index.php;
location / {
try_files $uri$uri/ /index.html;
}
# PHP解析(需要就加,不需要可删除)
location ~ \.php$ {
fastcgi_pass 127.0.0.1:9000;
fastcgi_index index.php;
include fastcgi_params;
fastcgi_param SCRIPT_FILENAME $document_root$fastcgi_script_name;
}
}
# 网站2:www.b.com
server {
listen 80;
server_name www.b.com b.com; # 替换成你的域名
root /var/www/b.com; # 替换成网站2的路径
index index.html index.php;
location / {
try_files $uri$uri/ /index.html;
}
}
# 网站3:www.c.com(新增网站,复制这段改域名和路径即可)
server {
listen 80;
server_name www.c.com c.com; # 替换成你的域名
root /var/www/c.com; # 替换成网站3的路径
index index.html index.php;
location / {
try_files $uri$uri/ /index.html;
}
}
方式3:按多IP区分(高要求必用,隔离性拉满)
适用场景:服务器有多个公网IP、高安全性需求、需要独立SSL证书、业务隔离(比如政企网站、多品牌网站)
前提:服务器已绑定多个独立公网IP(示例:192.168.1.10、192.168.1.11、192.168.1.12)
访问方式:直接访问对应IP即可
http://192.168.1.10 → 网站1
http://192.168.1.11 → 网站2
http://192.168.1.12 → 网站3
可直接复制的配置(替换IP和路径):
# 网站1:绑定IP 192.168.1.10(替换成你的公网IP)
server {
listen 192.168.1.10:80; # IP+端口,固定80
server_name _;
root /var/www/site_ip10; # 替换成网站1的路径
index index.html; # 静态网站可只留index.html
location / {
try_files $uri$uri/ /index.html;
}
}
# 网站2:绑定IP 192.168.1.11
server {
listen 192.168.1.11:80; # 替换成你的第二个公网IP
server_name _;
root /var/www/site_ip11; # 替换成网站2的路径
index index.html;
location / {
try_files $uri$uri/ /index.html;
}
}
# 网站3:绑定IP 192.168.1.12
server {
listen 192.168.1.12:80; # 替换成你的第三个公网IP
server_name _;
root /var/www/site_ip12; # 替换成网站3的路径
index index.html;
location / {
try_files $uri$uri/ /index.html;
}
}
总结(必看!)
1. 测试/无域名 → 用【端口区分】(最简单,改端口就好)
2. 正式网站 → 用【域名区分】(首选,用户体验最好)
3. 高安全/多IP → 用【IP区分】(隔离性强,适合特殊需求)
关键提醒:所有配置里的【路径】(/var/www/xxx),替换成你自己服务器上的网站文件路径,保存后重启Nginx就生效!
新手必看:配置完重启命令(直接复制):systemctl restart nginx
最后说一句:这3套配置,覆盖99%的使用场景,收藏起来,下次配置直接抄,不用再熬夜查教程!
阅读原文:https://mp.weixin.qq.com/s/RQEk3eswBmyWVr8DUzWMyw
该文章在 2026/5/27 15:23:26 编辑过