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/10/18 11:36:47 阅读更多 →
深入解析vSphere网络架构:从标准交换机到分布式交换机的核心原理与实战部署

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

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

2026/10/18 11:34:44 阅读更多 →
mpv方向键快进快退失灵?关键帧定位与精确搜索配置详解

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

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

2026/10/18 12:41:40 阅读更多 →

最新新闻

HTTPS加密过程详解:从TLS握手到密钥协商与排障实战

HTTPS加密过程详解:从TLS握手到密钥协商与排障实战

前阵子某公司同事拿了个抓包文件来找我,说某个内部系统的接口访问时好时坏,偶尔卡住十几秒然后报错。我打开抓包软件扫了一眼,发现大量TLS握手中的重传报文,再往下看,原来他压根没把HTTPS加密过程当回事——以为是“握…

2026/10/19 13:01:18 阅读更多 →
Agentic AI落地社会价值:提示工程架构师如何拆解信任与责任难题

Agentic AI落地社会价值:提示工程架构师如何拆解信任与责任难题

Agentic AI的社会价值最近被反复讨论,但真正落到实际业务场景里,落地障碍往往不是模型能力,而是隐藏在提示工程里的一系列细节。作为一个长期和Agent打交道的提示工程架构师,我越来越清楚一件事:我们写的每一段Prompt&…

2026/10/19 13:01:18 阅读更多 →
售货机管理系统设计:设备状态、库存预警与远程指令三重闭环

售货机管理系统设计:设备状态、库存预警与远程指令三重闭环

简介:本资源是一套基于RuoYi框架(SpringBootVue前后端分离)开发的售货机管理系统,面向Java全栈初学者、Web应用开发者及后台管理平台实践者,聚焦智能硬件运营场景中的商品、库存、设备、支付与销售数据等核心管理需求。…

2026/10/19 13:01:18 阅读更多 →
CMSSW离线数据处理框架:从LHC原始数据到物理分析的全链路实践

CMSSW离线数据处理框架:从LHC原始数据到物理分析的全链路实践

简介:CMSSW(Compact Muon Solenoid Software)是CERN大型强子对撞机CMS实验核心的开源离线数据分析框架,面向粒子物理研究人员、高能物理方向研究生及计算科学开发者,用于处理海量探测器数据、执行事件重建、物理对象识…

2026/10/19 13:01:17 阅读更多 →
ROS 2中VS Code无法识别rclcpp?从环境变量到CMake配置全排查

ROS 2中VS Code无法识别rclcpp?从环境变量到CMake配置全排查

前阵子在技术群里看到一位刚转到ROS 2的同行提问&#xff1a;新建的rclcpp项目在VS Code里打开&#xff0c;#include <rclcpp/rclcpp.hpp>这一行直接画了红色波浪线&#xff0c;代码提示完全失灵&#xff0c;尝试编译又报出find_package找不到rclcpp包的错误。这个问题我…

2026/10/19 13:01:17 阅读更多 →
C标准库源码深度剖析:从printf到malloc的底层实现与移植指南

C标准库源码深度剖析:从printf到malloc的底层实现与移植指南

简介&#xff1a;这份资源是C标准库的完整源代码集合&#xff0c;面向希望深入理解C语言底层实现、提升系统级编程能力的开发者与学习者。它涵盖输入输出、字符串处理、内存管理、数学运算、时间日期、文件系统接口等核心模块&#xff0c;适合在阅读源码、优化性能或进行底层开…

2026/10/19 13:00:15 阅读更多 →

日新闻

频率跟踪型PWM电源设计:臭氧发生器谐振点漂移与软开关实现

频率跟踪型PWM电源设计:臭氧发生器谐振点漂移与软开关实现

简介&#xff1a;本资源为电源技术方向的学术研究文档&#xff0c;聚焦介质阻挡放电型臭氧发生器电源的频率跟踪型PWM控制策略&#xff0c;面向电力电子、高压电源及臭氧应用领域的科研人员与工程技术人员。针对负载呈容性、等效电容随外加电压升高而增大、谐振频率随之漂移的难…

2026/10/19 0:00:47 阅读更多 →
Vibe Coding 遇上 TaoToken:把开发者思维圣殿的灵感流接入统一 Key 通道

Vibe Coding 遇上 TaoToken:把开发者思维圣殿的灵感流接入统一 Key 通道

/* MD / 富文本中的 .toc(含博客园搬家等嵌套结构);.toc-box 在侧栏,不受影响 */#content_views .toc,/* 编辑器常在目录前后插入空 p(:empty 仍占 20px),一并去掉避免顶空隙 */#content_views.markdown_views > p:empty:has(+ .toc),#content_views.markdown_views …

2026/10/19 0:00:47 阅读更多 →
HundredCV-Chat话题建模实战教程:利用4,871个内置话题标签构建主题分析系统

HundredCV-Chat话题建模实战教程:利用4,871个内置话题标签构建主题分析系统

【免费下载链接】HundredCV-Chat 项目地址&#xff1a; https://ai.gitcode.com/hf_mirrors/Jax-dan/HundredCV-Chat 点击查看 免费下载 HundredCV-Chat 是一个由 100 位青年简历数据开发而来的中文多轮对话数据集&#xff0c;共包含 24,750 组日常闲聊对话和 4,871 个话题标签…

2026/10/19 0:00:47 阅读更多 →

周新闻

基于GMM的语音识别系统原理与MATLAB实现详解

基于GMM的语音识别系统原理与MATLAB实现详解

说到基于高斯混合模型&#xff08;GMM&#xff09;的语音识别系统&#xff0c;很多人第一反应就是一堆数学公式&#xff0c;觉得门槛很高。但如果你真的在MATLAB里把它落地跑通&#xff0c;会发现核心其实就是三件事&#xff1a;把声音变成特征向量&#xff0c;用GMM给每个类别…

2026/10/19 10:02:04 阅读更多 →
数字图像处理入门:反白、灰度化、调色板修改与导出txt实践

数字图像处理入门:反白、灰度化、调色板修改与导出txt实践

数字图像处理这四个字听起来挺唬人&#xff0c;但落到具体操作上&#xff0c;无非就是让计算机按你的想法“摆弄”像素。我在一个模拟项目X里用了一套特别经典的基础处理流程&#xff1a;对图像做反白、改调色板、彩色转灰度&#xff0c;最后把像素数据导出成txt文件。单看每一…

2026/10/18 0:00:55 阅读更多 →
机器人大脑技术盘点:具身智能的感知、决策与数据闭环

机器人大脑技术盘点:具身智能的感知、决策与数据闭环

如果你的信息流最近也天天刷到“机器人大脑”这个词&#xff0c;你会发现一个很有意思的现象&#xff1a;每个人说的“大脑”根本不是同一个东西。有人指的是大语言模型&#xff0c;有人指的是运动控制系统&#xff0c;还有人指的是能理解物理世界的端到端模型。在2026年这个时…

2026/10/19 1:30:52 阅读更多 →

月新闻

我发现了一个新思路:用 Remotion + Claude Code 像写代码一样自动化生成短视频

我发现了一个新思路:用 Remotion + Claude Code 像写代码一样自动化生成短视频

/* MD / 富文本中的 .toc(含博客园搬家等嵌套结构);.toc-box 在侧栏,不受影响 */#content_views .toc,/* 编辑器常在目录前后插入空 p(:empty 仍占 20px),一并去掉避免顶空隙 */#content_views.markdown_views > p:empty:has(+ .toc),#content_views.markdown_views …

2026/10/19 2:54:50 阅读更多 →
Windows下 Codex 中 Chrome 和 Computer Use 插件不可用问题排查及解决参考方式:TaoToken 统一 Key 配置与验证

Windows下 Codex 中 Chrome 和 Computer Use 插件不可用问题排查及解决参考方式:TaoToken 统一 Key 配置与验证

/* MD / 富文本中的 .toc(含博客园搬家等嵌套结构);.toc-box 在侧栏,不受影响 */#content_views .toc,/* 编辑器常在目录前后插入空 p(:empty 仍占 20px),一并去掉避免顶空隙 */#content_views.markdown_views > p:empty:has(+ .toc),#content_views.markdown_views …

2026/10/19 9:10:22 阅读更多 →
黑夜航拍船只数据集训练YOLOV5模型全流程解析

黑夜航拍船只数据集训练YOLOV5模型全流程解析

/* MD / 富文本中的 .toc(含博客园搬家等嵌套结构);.toc-box 在侧栏,不受影响 */#content_views .toc,/* 编辑器常在目录前后插入空 p(:empty 仍占 20px),一并去掉避免顶空隙 */#content_views.markdown_views > p:empty:has(+ .toc),#content_views.markdown_views …

2026/10/18 12:16:16 阅读更多 →