admin 发表于 2026-8-11 19:42:35

多域名同一服务器多站点搭建配置

在单一服务器上配置多域名指向不同站点(即多站点托管)通常涉及Web服务器(如Nginx或Apache)的虚拟主机配置。以下是基于Nginx和Apache的配置指南:



一、Nginx 多域名配置
1. 基本原理
Nginx通过server块区分不同域名,每个server块监听特定域名并指向对应的站点目录。

2. 配置步骤

[*]创建站点目录

   为每个域名创建独立的目录,例如:
   mkdir -p /var/www/site1.com/html
   mkdir -p /var/www/site2.com/html

[*]配置Nginx虚拟主机

   编辑Nginx配置文件(通常位于/etc/nginx/sites-available/),为每个域名创建单独的配置文件(如site1.com.conf和site2.com.conf),或统一在nginx.conf中配置。

   示例配置(site1.com.conf):
   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;
       }
   }

   server {
       listen 80;
       server_name site2.com www.site2.com;
       root /var/www/site2.com/html;
       index index.html;

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

[*]启用配置并重启Nginx

   # 如果是独立配置文件,需创建符号链接到sites-enabled
   ln -s /etc/nginx/sites-available/site1.com.conf /etc/nginx/sites-enabled/
   ln -s /etc/nginx/sites-available/site2.com.conf /etc/nginx/sites-enabled/

   # 测试配置并重启
   nginx -t
   systemctl restart nginx

4. HTTPS配置(可选)

[*]使用Let's Encrypt的Certbot为每个域名申请SSL证书:

certbot --nginx -d site1.com -d www.site1.com
certbot --nginx -d site2.com -d www.site2.com

[*]Certbot会自动修改Nginx配置,添加SSL相关指令。




二、Apache 多域名配置
1. 基本原理
Apache通过VirtualHost指令区分不同域名,每个<VirtualHost>块定义一个站点的配置。

2. 配置步骤

[*]创建站点目录

   与Nginx类似,为每个域名创建独立目录。

[*]配置虚拟主机

   编辑Apache配置文件(通常位于/etc/apache2/sites-available/),为每个域名创建配置文件(如site1.com.conf)。

   示例配置(site1.com.conf):
   <VirtualHost *:80>
       ServerName site1.com
       ServerAlias www.site1.com
       DocumentRoot /var/www/site1.com/html

       <Directory /var/www/site1.com/html>
         Options -Indexes +FollowSymLinks
         AllowOverride All
       </Directory>
   </VirtualHost>

[*]启用配置并重启Apache

   a2ensite site1.com.conf# 启用站点
   a2ensite site2.com.conf# 同理
   systemctl reload apache2

4. HTTPS配置(可选)

[*]使用Certbot申请证书:

certbot --apache -d site1.com -d www.site1.com



三、通用注意事项

[*]DNS解析

   确保所有域名的DNS记录(A记录或CNAME)指向服务器的IP地址。

[*]防火墙与端口
[*]确保服务器防火墙(如ufw或firewalld)允许HTTP(80)和HTTPS(443)端口。
[*]如果是云服务器,还需检查安全组规则。
[*]权限问题
[*]确保Web目录(如/var/www/site1.com/html)的权限允许Web服务器用户(如www-data或apache)读写。
[*]示例:chown -R www-data:www-data /var/www/site1.com
[*]测试配置
[*]访问域名验证站点是否正常加载。
[*]使用curl -I http://site1.com检查HTTP头是否正确。




四、高级配置

[*]通配符域名:若需支持子域名(如*.example.com),在server_name中使用通配符(Nginx/Apache均支持)。
[*]负载均衡:结合反向代理(如Nginx)实现多服务器负载均衡。
[*]容器化部署:使用Docker或Kubernetes管理多站点,每个站点运行在独立容器中。




通过以上步骤,你可以在单一服务器上高效托管多个域名对应的站点。根据实际需求选择Nginx或Apache,并确保配置文件和权限正确无误。
页: [1]
查看完整版本: 多域名同一服务器多站点搭建配置