找回密码
 立即注册
搜索
热搜: 活动 交友 discuz
查看: 14021|回复: 0

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

[复制链接]

1

主题

0

回帖

5

积分

新手上路

积分
5
发表于 2026-8-11 19:42:35 | 显示全部楼层 |阅读模式
在单一服务器上配置多域名指向不同站点(即多站点托管)通常涉及Web服务器(如Nginx或Apache)的虚拟主机配置。以下是基于Nginx和Apache的配置指南:




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

2. 配置步骤

  • 创建站点目录

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

  • 配置Nginx虚拟主机

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

   示例配置(site1.com.conf)
  
  1. server {
  2.        listen 80;
  3.        server_name site1.com www.site1.com;
  4.        root /var/www/site1.com/html;
  5.        index index.html;
  6.        location / {
  7.            try_files $uri $uri/ =404;
  8.        }
  9.    }
  10.    server {
  11.        listen 80;
  12.        server_name site2.com www.site2.com;
  13.        root /var/www/site2.com/html;
  14.        index index.html;
  15.        location / {
  16.            try_files $uri $uri/ =404;
  17.        }
  18.    }
复制代码

  • 启用配置并重启Nginx

  
  1. # 如果是独立配置文件,需创建符号链接到sites-enabled
  2.    ln -s /etc/nginx/sites-available/site1.com.conf /etc/nginx/sites-enabled/
  3.    ln -s /etc/nginx/sites-available/site2.com.conf /etc/nginx/sites-enabled/
  4.    # 测试配置并重启
  5.    nginx -t
  6.    systemctl restart nginx
复制代码

4. HTTPS配置(可选)

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

  1. certbot --nginx -d site1.com -d www.site1.com
  2.   certbot --nginx -d site2.com -d www.site2.com
复制代码

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





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

2. 配置步骤

  • 创建站点目录

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

  • 配置虚拟主机

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

   示例配置(site1.com.conf)
  
  1. <VirtualHost *:80>
  2.        ServerName site1.com
  3.        ServerAlias www.site1.com
  4.        DocumentRoot /var/www/site1.com/html
  5.        <Directory /var/www/site1.com/html>
  6.            Options -Indexes +FollowSymLinks
  7.            AllowOverride All
  8.        </Directory>
  9.    </VirtualHost>
复制代码

  • 启用配置并重启Apache

  
  1. a2ensite site1.com.conf  # 启用站点
  2.    a2ensite site2.com.conf  # 同理
  3.    systemctl reload apache2
复制代码

4. HTTPS配置(可选)

  • 使用Certbot申请证书:

  1. certbot --apache -d site1.com -d www.site1.com
复制代码




三、通用注意事项

  • DNS解析

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

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





四、高级配置

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





通过以上步骤,你可以在单一服务器上高效托管多个域名对应的站点。根据实际需求选择Nginx或Apache,并确保配置文件和权限正确无误。
您需要登录后才可以回帖 登录 | 立即注册

本版积分规则

Archiver|手机版|小黑屋|五云论坛 ( 黔ICP备2022001370号-1|贵公网安备52032102000798号 )

GMT+8, 2026-9-12 18:10 , Processed in 0.069659 second(s), 19 queries .

Powered by Discuz! X3.5

© 2001-2026 Discuz! Team.

快速回复 返回顶部 返回列表