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

准备工作
在开始配置前,需确保满足以下基础条件:
- 服务器环境:拥有一台已安装Linux操作系统(如Ubuntu 20.04+或CentOS 7+)的服务器,并具备sudo/root权限。
- 域名资源:需注册多个域名(如example.com、blog.example.com),并确保域名的DNS管理权限可控。
- Web服务器:本文以Nginx为例(Apache配置逻辑类似),需提前安装Nginx,Ubuntu可通过
sudo apt install nginx安装,CentOS通过sudo yum install nginx安装,安装后可通过systemctl start nginx启动服务并设置开机自启。 - 网站文件:为每个域名准备独立的网站根目录(如/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.conf和blog.example.com.conf。
编写配置内容
以example.com.conf为例,配置内容如下:

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_name和root路径:
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
申请证书
为单个域名申请证书(推荐通配符证书覆盖子域名):

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.com、http://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证书保障通信安全,整个过程需注意配置文件的语法正确性、路径匹配准确性,以及定期检查日志和证书状态,掌握这一流程,不仅能高效管理多个网站,也为后续扩展(如负载均衡、反向代理)奠定基础。











