1. 项目概述
在Web服务部署中,Nginx作为高性能的反向代理服务器,经常需要处理多个域名、多个SSL证书以及多个后端服务的复杂配置场景。这种需求在实际业务中非常普遍,比如:
- 同一台服务器托管多个独立网站
- 为不同子域名配置独立证书
- 将不同域名的请求路由到不同的后端服务集群
我管理过数十台Nginx服务器,处理过各种复杂的多域名配置场景。今天要分享的这套配置方案,已经在我们生产环境稳定运行3年多,支持日均百万级请求量。不同于基础教程,我会重点讲解企业级实践中的关键细节和避坑经验。
需要模型API调用? 免费领10W Token,多模型网关一键接入 Claude、DeepSeek 等主流模型。
2. 核心配置方案设计
2.1 架构设计原则
多域名配置的核心在于:
- 模块化分离:每个域名配置独立文件,便于维护
- 证书自动加载:避免每次新增证书都要reload主配置
- 流量隔离:确保各服务间的请求不会互相干扰
推荐的文件结构:
code复制/etc/nginx/
├── conf.d/
│ ├── domain1.conf
│ └── domain2.conf
├── ssl/
│ ├── domain1/
│ │ ├── fullchain.pem
│ │ └── privkey.pem
│ └── domain2/
│ ├── fullchain.pem
│ └── privkey.pem
└── nginx.conf
2.2 主配置文件优化
在nginx.conf中需要做以下关键配置:
nginx复制# 加载各域名配置
include /etc/nginx/conf.d/*.conf;
# 共享SSL优化参数
ssl_session_cache shared:SSL:10m;
ssl_session_timeout 1h;
ssl_buffer_size 4k;
重要提示:不要在每个server块重复设置ssl参数,统一在主配置设置可提升TLS握手性能约30%
3. 多域名配置实战
3.1 基础域名配置模板
以domain1.com为例的完整配置:
nginx复制server {
listen 443 ssl http2;
server_name domain1
