web服务器怎么创建多个站点?

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

核心概念

web服务器怎么创建多个站点

无论使用哪种服务器,实现多个站点的核心原理都是一样的:

1、有多个域名(或端口/IP)指向你的服务器

2、在Web服务器配置中,为每个域名(或端口/IP)指定不同的网站内容目录

3、 当用户访问某个域名时,服务器会根据配置,从对应的目录中提供文件。

准备工作

1、拥有一个服务器:可以是云服务器(VPS)、本地服务器甚至树莓派。

web服务器怎么创建多个站点

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 创建多个站点

web服务器怎么创建多个站点

Apache 通过虚拟主机(VirtualHost) 来实现多站点。

步骤:

1、创建网站根目录

为每个站点创建一个单独的目录,用于存放网站文件,通常放在/var/www/ 下。

    sudo mkdir -p /var/www/site1.test/public_html
    sudo mkdir -p /var/www/site2.test/public_html

2、设置目录权限(可选,但建议)

    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 reload

6、测试访问

在浏览器中访问http://site1.testhttp://site2.test,你应该能看到之前创建的不同测试页面。

方法二:使用 Nginx 创建多个站点

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 successfulsyntax is ok,则继续)

重新加载 Nginx 使配置生效

        sudo systemctl reload nginx
        # 或 sudo service nginx reload

5、测试访问

在浏览器中访问http://site1.testhttp://site2.test 进行测试。

方法三:在 Windows 上使用 IIS 创建多个站点

1、 打开IIS 管理器

2、 在左侧的“连接”窗格中,右键单击“站点”,然后选择“添加网站...”。

3、 在弹出窗口中填写信息:

网站名称任意易记的名字(如My Site 1)。

物理路径选择该网站文件所在的文件夹(如C:\inetpub\wwwroot\site1)。

绑定

类型httphttps

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 apache2sudo systemctl reload nginx
测试配置sudo apache2ctl configtestsudo nginx -t

使用基于域名的虚拟主机是最常见和方便的方式。

始终在修改配置后测试语法,避免服务器因配置错误而崩溃。

为每个站点使用独立的配置文件,便于管理和维护。

如果面向公网,考虑为站点配置SSL证书(使用 Let‘s Encrypt 的 Certbot 工具可以非常简单地为Apache/Nginx自动配置HTTPS)。

希望这份详细的指南能帮助你成功创建多个Web站点!

文章摘自:https://idc.huochengrm.cn/fwq/14679.html

评论