服务器测评网
我们一直在努力

linux 配置多域名

在Linux服务器环境中配置多域名是常见需求,无论是托管多个独立网站、区分业务模块,还是实现子域名管理,都需要通过合理的配置实现,本文将从准备工作、DNS解析、Web服务器配置、SSL证书启用及测试优化等方面,系统介绍Linux环境下多域名的配置流程。

linux 配置多域名

准备工作

在开始配置前,需确保满足以下基础条件:

  1. 服务器环境:拥有一台已安装Linux操作系统(如Ubuntu 20.04+或CentOS 7+)的服务器,并具备sudo/root权限。
  2. 域名资源:需注册多个域名(如example.com、blog.example.com),并确保域名的DNS管理权限可控。
  3. Web服务器:本文以Nginx为例(Apache配置逻辑类似),需提前安装Nginx,Ubuntu可通过sudo apt install nginx安装,CentOS通过sudo yum install nginx安装,安装后可通过systemctl start nginx启动服务并设置开机自启。
  4. 网站文件:为每个域名准备独立的网站根目录(如/var/www/example.com、/var/www/blog.example.com),并上传默认测试文件(如index.html)。

DNS解析配置

多域名配置的第一步是将所有域名指向服务器IP地址,登录域名注册商的管理后台,为每个域名添加A记录(若服务器IP为IPv4)或AAAA记录(IPv6),记录值均为服务器的公网IP。

  • 域名example.com → A记录 → 服务器IP(如192.168.1.100)
  • 域名blog.example.com → A记录 → 服务器IP(192.168.1.100)

DNS解析生效通常需要几分钟到几小时(可通过nslookup example.com命令验证是否解析到目标IP)。

Nginx虚拟主机配置

Nginx通过“虚拟主机”(Virtual Host)实现多域名隔离,每个域名对应一个独立的server块配置,以下是具体步骤:

创建域名配置文件

在Nginx配置目录/etc/nginx/sites-available/下为每个域名创建独立的配置文件,如example.com.confblog.example.com.conf

编写配置内容

example.com.conf为例,配置内容如下:

linux 配置多域名

server {
    listen 80;
    server_name example.com www.example.com;  # 绑定主域名和www子域名
    root /var/www/example.com;  # 网站根目录
    index index.html index.htm;  # 默认首页文件
    location / {
        try_files $uri $uri/ =404;  # 优先匹配静态文件,不存在则返回404
    }
    # 可选:配置错误页面
    error_page 404 /404.html;
    error_page 500 502 503 504 /50x.html;
    location = /50x.html {
        root /var/www/html;
    }
}

blog.example.com.conf的配置类似,仅需修改server_nameroot路径:

server {
    listen 80;
    server_name blog.example.com www.blog.example.com;
    root /var/www/blog.example.com;
    index index.html;
    location / {
        try_files $uri $uri/ =404;
    }
}

启用配置文件

创建配置文件后,需通过软链接将其激活到/etc/nginx/sites-enabled/目录:

sudo ln -s /etc/nginx/sites-available/example.com.conf /etc/nginx/sites-enabled/
sudo ln -s /etc/nginx/sites-available/blog.example.com.conf /etc/nginx/sites-enabled/

测试并重载Nginx

执行sudo nginx -t检查配置语法是否正确,若无错误则重载Nginx使配置生效:

sudo systemctl reload nginx

SSL证书配置与HTTPS启用

现代网站需启用HTTPS以保障安全,可通过Let’s Encrypt免费证书实现,以certbot工具为例:

安装certbot

Ubuntu:sudo apt install certbot python3-certbot-nginx
CentOS:sudo yum install certbot python3-certbot-nginx

申请证书

为单个域名申请证书(推荐通配符证书覆盖子域名):

linux 配置多域名

sudo certbot --nginx -d example.com -d www.example.com

按提示输入邮箱、同意服务条款,certbot会自动完成证书申请并修改Nginx配置(添加443端口监听和SSL相关参数)。

验证自动续签

Let’s Encrypt证书有效期为90天,certbot会自动设置定时任务续签,可通过sudo certbot renew --dry-run测试续签是否正常。

测试与优化

访问验证

在浏览器中分别访问http://example.comhttp://blog.example.com,检查是否显示对应的网站内容;访问https://版本,确认证书有效(浏览器地址栏显示锁形图标)。

日志排查

若访问异常,可通过Nginx日志定位问题:

  • 访问日志:/var/log/nginx/access.log
  • 错误日志:/var/log/nginx/error.log
    检查404错误是否因root路径错误或文件不存在导致。

性能优化

  • 压缩配置:在Nginx主配置文件中启用gzip压缩,减少传输数据量:
    gzip on;
    gzip_types text/plain text/css application/json application/javascript text/xml;
  • 缓存设置:为静态资源(图片、CSS、JS)添加缓存头,提升访问速度:
    location ~* \.(jpg|jpeg|png|gif|ico|css|js)$ {
      expires 7d;
      add_header Cache-Control "public, no-transform";
    }

Linux环境下配置多域名,核心是通过DNS解析将域名指向服务器,再利用Nginx虚拟主机功能实现不同域名的独立配置,最后通过SSL证书保障通信安全,整个过程需注意配置文件的语法正确性、路径匹配准确性,以及定期检查日志和证书状态,掌握这一流程,不仅能高效管理多个网站,也为后续扩展(如负载均衡、反向代理)奠定基础。

赞(0)
未经允许不得转载:好主机测评网 » linux 配置多域名