下面我将以最主流的两个Web服务器——Apache 和Nginx——在Linux 系统上为例,详细讲解如何操作,同时也会简要介绍Windows IIS 的方法。

无论使用哪种服务器,实现多个站点的核心原理都是一样的:
1、有多个域名(或端口/IP)指向你的服务器。
2、在Web服务器配置中,为每个域名(或端口/IP)指定不同的网站内容目录。
3、 当用户访问某个域名时,服务器会根据配置,从对应的目录中提供文件。
1、拥有一个服务器:可以是云服务器(VPS)、本地服务器甚至树莓派。

2、安装Web服务器软件:如 Apache 或 Nginx。
3、拥有多个域名(或者使用本地Hosts文件模拟):
* 如果你有真实的域名(如site1.com,site2.com),将它们的A记录都解析到你的服务器IP。
如果只是在本地测试,可以修改你电脑上的hosts 文件(Windows在C:\Windows\System32\drivers\etc\hosts, Linux/Mac在/etc/hosts),添加如下内容来模拟域名解析
127.0.0.1 site1.test
127.0.0.1 site2.test(假设你的服务器就在本机)

Apache 通过虚拟主机(VirtualHost) 来实现多站点。
步骤:
1、创建网站根目录
为每个站点创建一个单独的目录,用于存放网站文件,通常放在/var/www/ 下。
sudo mkdir -p /var/www/site1.test/public_html
sudo mkdir -p /var/www/site2.test/public_html2、设置目录权限(可选,但建议)
sudo chown -R www-data:www-data /var/www/site1.test/public_html
sudo chown -R www-data:www-data /var/www/site2.test/public_html
sudo chmod -R 755 /var/www (www-data 是Apache默认的运行用户)
3、创建测试页面
在每个目录下创建一个index.html 文件以便测试。
/var/www/site1.test/public_html/index.html
<html>
<head><title>Site 1</title></head>
<body><h1>Welcome to Site 1!</h1></body>
</html>/var/www/site2.test/public_html/index.html
<html>
<head><title>Site 2</title></head>
<body><h1>Welcome to Site 2!</h1></body>
</html>4、创建虚拟主机配置文件
Apache 的站点配置文件通常在/etc/apache2/sites-available/ 目录下,最佳实践是为每个站点创建一个独立的配置文件。
创建site1.test.conf
sudo nano /etc/apache2/sites-available/site1.test.conf填入以下内容
<VirtualHost *:80>
ServerAdmin admin@site1.test
ServerName site1.test
ServerAlias www.site1.test
DocumentRoot /var/www/site1.test/public_html
ErrorLog ${APACHE_LOG_DIR}/site1_error.log
CustomLog ${APACHE_LOG_DIR}/site1_access.log combined
<Directory "/var/www/site1.test/public_html">
Options Indexes FollowSymLinks
AllowOverride All
Require all granted
</Directory>
</VirtualHost> * 同样地,为site2.test 创建配置文件site2.test.conf,并修改相应的ServerName,DocumentRoot, 和日志文件路径。
5、启用站点并重载配置
启用站点使用a2ensite 命令启用我们刚创建的配置。
sudo a2ensite site1.test.conf
sudo a2ensite site2.test.conf禁用默认站点(如果存在)
sudo a2dissite 000-default.conf测试配置是否有语法错误
sudo apache2ctl configtest (如果输出Syntax OK,则继续)
重新加载 Apache 使配置生效
sudo systemctl reload apache2
# 或 sudo service apache2 reload6、测试访问
在浏览器中访问http://site1.test 和http://site2.test,你应该能看到之前创建的不同测试页面。
Nginx 通过服务器块(Server Block) 来实现多站点,概念与 Apache 的 VirtualHost 类似。
步骤:
1、创建网站根目录(与Apache相同)
sudo mkdir -p /var/www/site1.test/html
sudo mkdir -p /var/www/site2.test/html
sudo chown -R www-data:www-data /var/www/site1.test/html
sudo chown -R www-data:www-data /var/www/site2.test/html
sudo chmod -R 755 /var/www (Nginx 默认用户也可能是nginx,请根据你的系统确认)
2、创建测试页面(与Apache相同,放入刚创建的html 目录)
3、创建服务器块(Server Block)配置文件
Nginx 的站点配置文件通常在/etc/nginx/sites-available/ 目录下,同样,为每个站点创建独立文件。
创建site1.test
sudo nano /etc/nginx/sites-available/site1.test填入以下内容
server {
listen 80;
listen [::]:80;
root /var/www/site1.test/html;
index index.html index.htm index.nginx-debian.html;
server_name site1.test www.site1.test;
location / {
try_files $uri $uri/ =404;
}
} * 同样地,为site2.test 创建配置文件。
4、启用站点并重载配置
启用站点在 Nginx 中,需要通过创建符号链接,将sites-available 中的配置文件链接到sites-enabled 目录。
sudo ln -s /etc/nginx/sites-available/site1.test /etc/nginx/sites-enabled/
sudo ln -s /etc/nginx/sites-available/site2.test /etc/nginx/sites-enabled/测试配置是否有语法错误(非常重要!)
sudo nginx -t (如果输出test is successful 或syntax is ok,则继续)
重新加载 Nginx 使配置生效
sudo systemctl reload nginx
# 或 sudo service nginx reload5、测试访问
在浏览器中访问http://site1.test 和http://site2.test 进行测试。
方法三:在 Windows 上使用 IIS 创建多个站点
1、 打开IIS 管理器。
2、 在左侧的“连接”窗格中,右键单击“站点”,然后选择“添加网站...”。
3、 在弹出窗口中填写信息:
网站名称任意易记的名字(如My Site 1)。
物理路径选择该网站文件所在的文件夹(如C:\inetpub\wwwroot\site1)。
绑定
类型http 或https。
IP 地址 可以选择“全部未分配”或服务器上的特定IP。
端口 通常为80 (HTTP) 或443 (HTTPS),如果要用端口区分站点,可以设置不同的端口(如81, 82等)。
主机名 填写域名(如site1.test)。这是用域名区分站点的关键。
4、 点击“确定”,重复步骤2-4添加其他站点。
5、 同样,需要在DNS或本地hosts 文件(C:\Windows\System32\drivers\etc\hosts)中配置域名解析。
| 特性 | Apache | Nginx |
| 配置目录 | /etc/apache2/sites-available/ 和sites-enabled/ | /etc/nginx/sites-available/ 和sites-enabled/ |
| 配置命令 | a2ensite,a2dissite | 手动创建符号链接ln -s |
| 核心概念 | 虚拟主机 (VirtualHost) | 服务器块 (Server Block) |
| 重载配置 | sudo systemctl reload apache2 | sudo systemctl reload nginx |
| 测试配置 | sudo apache2ctl configtest | sudo nginx -t |
使用基于域名的虚拟主机是最常见和方便的方式。
始终在修改配置后测试语法,避免服务器因配置错误而崩溃。
为每个站点使用独立的配置文件,便于管理和维护。
如果面向公网,考虑为站点配置SSL证书(使用 Let‘s Encrypt 的 Certbot 工具可以非常简单地为Apache/Nginx自动配置HTTPS)。
希望这份详细的指南能帮助你成功创建多个Web站点!
文章摘自:https://idc.huochengrm.cn/fwq/14679.html
评论
学晨菲
回复通过配置虚拟主机,Web服务器可以创建并管理多个站点。
区悠婉
回复在Web服务器上创建多个站点通常需要配置虚拟主机或使用不同的端口。