Nginx多域名与多证书配置实战指南
1. 项目概述在Web服务部署实践中Nginx作为高性能的反向代理服务器经常需要处理多域名、多证书和多服务的复杂场景。这种配置需求在中小型企业的IT基础设施中尤为常见比如同一台服务器托管多个独立域名的网站不同服务需要独立的SSL证书业务系统需要根据域名进行路由分发我最近在帮一家电商公司部署他们的新系统时就遇到了典型场景主站(www.domain.com)、管理后台(admin.domain.com)和API接口(api.domain.com)需要共用服务器资源但保持完全隔离。通过Nginx的server_name指令和证书绑定机制我们完美实现了这个需求。2. 核心配置原理2.1 多域名处理机制Nginx通过server块中的server_name指令实现多域名识别。当请求到达时Nginx会检查请求头中的Host字段匹配server_name配置项执行对应server块的配置典型配置示例server { listen 80; server_name www.domain.com; # 主站配置 } server { listen 80; server_name admin.domain.com; # 后台配置 }2.2 多证书配置方案HTTPS场景下每个域名需要绑定独立的SSL证书。关键配置点包括每个server块指定自己的证书路径使用SNI(Server Name Indication)扩展协议证书文件建议按域名分类存储证书配置示例server { listen 443 ssl; server_name www.domain.com; ssl_certificate /etc/ssl/www_domain_com.crt; ssl_certificate_key /etc/ssl/www_domain_com.key; # 其他SSL参数... }2.3 多服务路由策略后端服务路由通常通过location指令实现静态资源直接由Nginx处理动态请求反向代理到应用服务器不同路径可路由到不同后端典型路由配置location /static/ { root /var/www/html; expires 30d; } location /api/ { proxy_pass http://backend_server; proxy_set_header Host $host; }3. 完整配置实战3.1 基础环境准备安装Nginx以Ubuntu为例sudo apt update sudo apt install nginx证书文件准备将各域名的证书文件(.crt)和私钥(.key)存放在/etc/ssl/目录建议命名规范域名_类型.key/crt设置正确的文件权限sudo chmod 600 /etc/ssl/*.key3.2 主配置文件结构建议采用模块化配置方式/etc/nginx/ ├── nginx.conf # 主配置文件 ├── conf.d/ │ ├── main-site.conf # 主站配置 │ ├── admin.conf # 后台配置 │ └── api.conf # API配置 └── ssl/ # 证书目录nginx.conf基础内容user www-data; worker_processes auto; events { worker_connections 1024; } http { include /etc/nginx/mime.types; include /etc/nginx/conf.d/*.conf; }3.3 多域名配置示例主站配置(conf.d/main-site.conf)server { listen 80; server_name www.domain.com; return 301 https://$host$request_uri; } server { listen 443 ssl http2; server_name www.domain.com; ssl_certificate /etc/ssl/www_domain_com.crt; ssl_certificate_key /etc/ssl/www_domain_com.key; root /var/www/main-site; index index.html; location / { try_files $uri $uri/ 404; } }后台系统配置(conf.d/admin.conf)server { listen 80; server_name admin.domain.com; return 301 https://$host$request_uri; } server { listen 443 ssl; server_name admin.domain.com; ssl_certificate /etc/ssl/admin_domain_com.crt; ssl_certificate_key /etc/ssl/admin_domain_com.key; location / { proxy_pass http://localhost:3000; proxy_set_header X-Real-IP $remote_addr; } }3.4 高级配置技巧证书自动续期# 使用certbot设置自动续期 sudo certbot renew --dry-runHTTP/2优化listen 443 ssl http2; ssl_prefer_server_ciphers on; ssl_ciphers EECDHCHACHA20:EECDHAES128:RSAAES128:EECDHAES256:RSAAES256:EECDH3DES:RSA3DES:!MD5;日志分离access_log /var/log/nginx/main-site.access.log main; error_log /var/log/nginx/main-site.error.log warn;4. 常见问题排查4.1 证书不生效问题症状浏览器提示证书错误 排查步骤检查证书链是否完整验证证书与域名匹配检查Nginx错误日志使用openssl测试openssl s_client -connect domain.com:443 -servername domain.com4.2 域名路由错误症状访问A域名却显示B域名内容 解决方案检查server_name配置确保没有重复的server块设置默认serverserver { listen 80 default_server; return 444; }4.3 性能优化建议启用SSL会话缓存ssl_session_cache shared:SSL:10m; ssl_session_timeout 10m;OCSP装订配置ssl_stapling on; ssl_stapling_verify on; resolver 8.8.8.8 valid300s;调整worker连接数events { worker_connections 4096; multi_accept on; }5. 安全加固措施5.1 基础安全配置禁用不安全的协议和加密套件ssl_protocols TLSv1.2 TLSv1.3; ssl_ciphers TLS_AES_128_GCM_SHA256:TLS_AES_256_GCM_SHA384:ECDHE-ECDSA-AES128-GCM-SHA256;添加安全头信息add_header X-Frame-Options DENY; add_header X-Content-Type-Options nosniff; add_header X-XSS-Protection 1; modeblock;5.2 访问控制策略后台系统IP白名单location /admin/ { allow 192.168.1.0/24; deny all; # 其他配置... }基础认证保护location /private/ { auth_basic Restricted Area; auth_basic_user_file /etc/nginx/.htpasswd; }5.3 监控与维护日志分析设置log_format main $remote_addr - $remote_user [$time_local] $request $status $body_bytes_sent $http_referer $http_user_agent;状态监控页面location /nginx_status { stub_status on; access_log off; allow 127.0.0.1; deny all; }在实际部署中我发现最关键的三个经验是证书文件权限必须严格限制每个server块应该明确default_server长连接超时时间需要根据业务特点调整对于需要处理数十个域名的场景建议使用通配符证书或者自动化证书管理工具如Certbot。当配置复杂时可以使用nginx -t命令测试配置语法避免直接重启导致服务中断。

相关新闻

C++图形编程实战:从零构建Painted Deck项目完整指南

C++图形编程实战:从零构建Painted Deck项目完整指南

这次我们来看一个名为“Cant wait for this Madness to be over (C, Painted Deck)”的项目。从标题直译来看,它可能是一个用C实现的、与“Painted Deck”(彩绘甲板/卡牌)相关的程序,或许是一个图形化的小游戏、模拟器或某种视觉演…

2026/8/6 16:50:07 阅读更多 →
深入解析vSphere网络架构:从标准交换机到分布式交换机的核心原理与实战部署

深入解析vSphere网络架构:从标准交换机到分布式交换机的核心原理与实战部署

1. 从一张图开始:为什么我们需要理解vSphere网络架构?如果你刚接触VMware vSphere,面对管理界面里那一堆“标准交换机”、“分布式交换机”、“端口组”、“上行链路”之类的术语,是不是感觉有点头大?很多朋友可能觉得…

2026/8/6 16:50:07 阅读更多 →
mpv方向键快进快退失灵?关键帧定位与精确搜索配置详解

mpv方向键快进快退失灵?关键帧定位与精确搜索配置详解

1. 问题场景:当方向键快进快退“失灵”时作为一名重度视频消费者和折腾爱好者,我几乎在所有设备上都用mpv作为主力播放器。它的轻量、高效和无限的可定制性,让我可以打造出完全符合个人习惯的观影环境。然而,就在最近一次更新配置…

2026/8/6 16:50:07 阅读更多 →

最新新闻

温州网站建设公司如何选择靠谱服务?揭秘低成本高质量建站背后的真相与避坑指南

温州网站建设公司如何选择靠谱服务?揭秘低成本高质量建站背后的真相与避坑指南

在温州这片充满商业活力的土地上,每一家想要在互联网浪潮中立足的企业,都不得不面对一个至关重要的问题:如何搭建一个既美观又实用的官方网站?很多老板一提到建站,脑子里蹦出来的第一个词往往是“价格”。他们问:“建个网站要多少钱?”、“能不能便宜点?”、“隔壁某某…

2026/8/6 17:36:33 阅读更多 →
PyTorch 深度学习实战应用指南:从原型搭建到工业落地的十大核心能力

PyTorch 深度学习实战应用指南:从原型搭建到工业落地的十大核心能力

本专栏为 CSDN 付费深度连载内容,系统覆盖深度学习项目从算法选型、模型训练、性能调优到生产部署的全链路工程能力,每讲均配套原理拆解、逐行代码解析与工业级避坑指南。 专栏开篇:从 Demo 到工业落地,深度学习工程师的能力跃迁 …

2026/8/6 17:36:33 阅读更多 →
成本陷阱(上):开源模型的蜜糖,Token工厂的砒霜!

成本陷阱(上):开源模型的蜜糖,Token工厂的砒霜!

文章目录一、开源的是“图纸”,不是“工厂”二、钱到底花在了哪里?三、四笔账:云厂商的钱亏在哪损失一:显存压缩的红利大打折扣损失二:稀疏计算的通信开销吃掉性能红利损失三:GPU资源利用率天然偏低损失四&…

2026/8/6 17:36:33 阅读更多 →
终极AI角色扮演神器:SillyTavern新手完全指南

终极AI角色扮演神器:SillyTavern新手完全指南

终极AI角色扮演神器:SillyTavern新手完全指南 【免费下载链接】SillyTavern LLM Frontend for Power Users. 项目地址: https://gitcode.com/GitHub_Trending/si/SillyTavern 你是否曾梦想创造属于自己的虚拟角色,与AI进行深度互动对话&#xff1…

2026/8/6 17:36:33 阅读更多 →
STM32智能快递柜外卖存取柜GSM短信设计190-21(设计源文件+万字报告+讲解)(支持资料、图片参考_相关定制)_

STM32智能快递柜外卖存取柜GSM短信设计190-21(设计源文件+万字报告+讲解)(支持资料、图片参考_相关定制)_

STM32智能快递柜外卖存取柜GSM短信设计190-21(设计源文件万字报告讲解)(支持资料、图片参考_相关定制)_ 产品功能描述: 本系统由STM32F103C8T6单片机核心板、GSM短信通信模块、TFT1.44寸彩屏液晶显示电路、JR6004语音播报电路、四路舵机驱动电…

2026/8/6 17:36:33 阅读更多 →
Mermaid Live Editor:3分钟创建专业图表的免费在线编辑器

Mermaid Live Editor:3分钟创建专业图表的免费在线编辑器

Mermaid Live Editor:3分钟创建专业图表的免费在线编辑器 【免费下载链接】mermaid-live-editor Edit, preview and share mermaid charts/diagrams. New implementation of the live editor. 项目地址: https://gitcode.com/GitHub_Trending/me/mermaid-live-edi…

2026/8/6 17:35:33 阅读更多 →

日新闻

深入解析LimboAI C++内核:架构设计与性能优化实战

深入解析LimboAI C++内核:架构设计与性能优化实战

1. 项目概述:为什么我们需要深入LimboAI的C内核?如果你是一名使用Godot引擎的游戏开发者,尤其是对AI行为逻辑有较高要求的项目,那么LimboAI这个名字你大概率不会陌生。它作为Godot 4生态中一个备受瞩目的行为树与状态机插件&#…

2026/8/6 0:00:06 阅读更多 →
Unity 2D游戏敌人AI系统:基于PlayMaker状态机与2D Toolkit的实战开发

Unity 2D游戏敌人AI系统:基于PlayMaker状态机与2D Toolkit的实战开发

1. 项目概述与核心思路大家好,我是老张,一个在游戏开发一线摸爬滚打了十多年的老码农。今天咱们接着聊《空洞骑士》风格2D动作游戏的Demo制作。上一期我们搭好了基础框架,处理了角色移动和碰撞,这一期,我们要让游戏世界…

2026/8/6 0:00:06 阅读更多 →
被动防火门市场前景发展趋势

被动防火门市场前景发展趋势

被动防火门依靠材质结构、密闭构造阻隔烟火蔓延,无需电控启动,是建筑被动消防系统核心构件,行业依托新规管控、城市更新、工业安全升级迎来稳定扩容,整体朝着合规化、专项化、低碳化、智能化方向发展。现阶段 GB12955‑2024 新版国…

2026/8/6 0:00:06 阅读更多 →

周新闻

最大流算法详解:从水管网络到Ford-Fulkerson与Dinic实战

最大流算法详解:从水管网络到Ford-Fulkerson与Dinic实战

1. 从水管网络到最大流:一个核心问题的诞生想象一下,你是一个城市供水系统的总工程师。你的城市有多个水源(水库),需要通过一个复杂的地下管道网络,将水输送到各个居民区。每条管道都有其最大通水能力&…

2026/8/5 15:00:43 阅读更多 →
基于Springboot的企业门户网站(源码+LW+调试文档+讲解)

基于Springboot的企业门户网站(源码+LW+调试文档+讲解)

温馨提示:本人主页置顶文章(点我)开头有 CSDN 平台官方提供的学长联系方式的名片! 温馨提示:本人主页置顶文章(点我)开头有 CSDN 平台官方提供的学长联系方式的名片! 温馨提示:本人主页置顶文章(点我)开头有 CSDN 平台…

2026/8/5 13:13:56 阅读更多 →
MATLAB xcorr函数详解:从互相关原理到四大实战应用

MATLAB xcorr函数详解:从互相关原理到四大实战应用

1. 从一次信号“找茬”说起:为什么我们需要互相关几年前,我在处理一组声学传感器数据时遇到了一个棘手的问题。我有两个麦克风记录了一段相同的音频信号,理论上它们接收到的声音波形应该非常相似,只是由于麦克风位置不同&#xff…

2026/8/5 10:20:36 阅读更多 →

月新闻

免费解锁百度网盘SVIP加速:macOS用户必备的下载提速终极指南

免费解锁百度网盘SVIP加速:macOS用户必备的下载提速终极指南

免费解锁百度网盘SVIP加速:macOS用户必备的下载提速终极指南 【免费下载链接】BaiduNetdiskPlugin-macOS For macOS.百度网盘 破解SVIP、下载速度限制~ 项目地址: https://gitcode.com/gh_mirrors/ba/BaiduNetdiskPlugin-macOS 还在为百度网盘macOS版的龟速下…

2026/8/5 23:28:39 阅读更多 →
终极ncmdump指南:3分钟实现网易云NCM音乐解密与格式转换

终极ncmdump指南:3分钟实现网易云NCM音乐解密与格式转换

终极ncmdump指南:3分钟实现网易云NCM音乐解密与格式转换 【免费下载链接】ncmdump 项目地址: https://gitcode.com/gh_mirrors/ncmd/ncmdump 还在为网易云音乐下载的NCM格式文件无法在其他播放器播放而烦恼吗?ncmdump解密工具帮你轻松解决这个困…

2026/8/5 21:00:14 阅读更多 →
HarmonyOS 应用开发《掌上英语》第81篇: 智能体卡片:为英语学习 App 打造桌面级学习助手

HarmonyOS 应用开发《掌上英语》第81篇: 智能体卡片:为英语学习 App 打造桌面级学习助手

AgentCard 智能体卡片:为英语学习 App 打造桌面级学习助手适用平台:HarmonyOS 7.0 (API 26 Beta)一、引言 HarmonyOS 7.0(API 26 Beta)新增了 AgentCard 智能体卡片能力,这是继 HMAF(鸿蒙智能体框架&#x…

2026/8/5 23:46:51 阅读更多 →