nginx配置多站点怎么做,多站点配置详细教程

Nginx 配置多站点的本质,是通过 server 块listen 端口server_name 域名 的组合,实现一台服务器资源的高效复用,对于绝大多数业务场景,推荐采用“目录隔离 + 独立配置文件 + 域名区分” 的方案,它兼顾了可维护性、安全性与扩展性,是生产环境中最稳健的实践路径。


多站点的三种实现方案

在动手配置前,先厘清三种主流方案,以便按需选择:

  • 端口区分:每个站点使用不同端口(如 8080、8081),配置简单,但用户访问需带端口号,体验较差,仅适合内部系统或调试场景。
  • 域名区分:多个域名共用 80/443 端口,通过 server_name 精准匹配,这是生产环境最常用的方式,对外表现为标准 Web 服务。
  • IP 区分:服务器绑定多个 IP,每个 IP 对应一个站点,受限于 IP 资源,现已较少使用。

直接选择域名区分方案,若暂时没有域名,可用端口方案临时过渡,但上线前务必切换。


目录结构设计:从源头规范

推荐在 Nginx 配置目录下建立清晰的站点目录结构:

/etc/nginx/
├── nginx.conf          # 主配置文件
├── sites-available/    # 站点可用配置(草稿区)
├── sites-enabled/      # 站点启用配置(软链接指向 available)
└── conf.d/             # 全局共享配置片段

站点文件命名规范:使用域名命名,如 example.com.conf,这样的命名方式在站点数量增长后,仍能保持极高的可辨识度,避免出现 server1.conf 这类含义不明的文件。


核心配置步骤详解

主配置文件引入站点目录

编辑 nginx.confhttp 块,确保包含以下内容:

nginx配置多站点怎么做,多站点配置详细教程

http {
    # 其他全局配置...
    include /etc/nginx/sites-enabled/.conf;
}

创建站点配置文件

sites-available/ 下为每个站点创建独立配置,以两个站点为例:

站点 A(blog.example.com)

server {
    listen 80;
    server_name blog.example.com;
    root /var/www/blog;
    index index.html index.php;
    access_log /var/log/nginx/blog.access.log;
    error_log  /var/log/nginx/blog.error.log;
    location / {
        try_files $uri $uri/ =404;
    }
    # PHP 处理(如有)
    location ~ .php$ {
        include snippets/fastcgi-php.conf;
        fastcgi_pass unix:/run/php/php8.1-fpm.sock;
    }
}

站点 B(shop.example.com)

server {
    listen 80;
    server_name shop.example.com;
    root /var/www/shop;
    index index.html;
    access_log /var/log/nginx/shop.access.log;
    error_log  /var/log/nginx/shop.error.log;
    location / {
        try_files $uri $uri/ =404;
    }
    # 静态资源缓存
    location ~ .(jpg|jpeg|png|gif|ico|css|js)$ {
        expires 30d;
        add_header Cache-Control "public, immutable";
    }
}

启用站点并重载

ln -s /etc/nginx/sites-available/blog.example.com.conf /etc/nginx/sites-enabled/
ln -s /etc/nginx/sites-available/shop.example.com.conf /etc/nginx/sites-enabled/
nginx -t && nginx -s reload

nginx -t 是必须执行的步骤,它能提前发现语法错误,避免线上服务中断。


深入优化:权限与安全性

多站点共存的服务器,安全隔离是容易被忽视的关键环节:

  • 运行用户隔离:为每个站点创建独立的系统用户,并在 server 块中通过 user 指令(需配合 nginx 主进程以 root 启动)指定,这能防止一个站点被入侵后波及其他站点。
  • nginx配置多站点怎么做,多站点配置详细教程

  • 目录权限最小化:站点根目录权限设为 750,文件设为 640,属主为对应站点用户,杜绝使用 777 权限。
  • 禁用未绑定域名的访问:在配置中增加一个默认拒绝的 server 块,拦截通过 IP 或未知域名发起的请求:
server {
    listen 80 default_server;
    server_name _;
    return 444;
}

444 是 Nginx 特有的响应码,直接断开连接而不返回任何内容,能有效减少恶意扫描。


性能调优建议

多站点场景下,Nginx 的性能瓶颈往往不在 Nginx 本身,而在于 站点间的资源争抢

  • 开启 Gzip 压缩:在 http 块全局开启,减少带宽消耗。
  • 调整 worker 进程数:设为 CPU 核心数,可通过 auto 参数自动探测。
  • 静态资源独立缓存:如站点 B 配置所示,对不同类型资源设置差异化过期时间。
  • 日志切割:使用 logrotate 按天切割日志,避免单个日志文件过大导致磁盘耗尽。

常见问题排查

  • 访问站点时跳到默认站点:检查 server_name 是否拼写错误,以及 DNS 解析是否生效。
  • 静态文件 404:确认 root 路径是否存在且权限正确,并检查 try_files 配置。
  • 重载配置后服务异常:立即回滚配置,检查 nginx -t 输出,注意是否因编辑不当破坏了文件格式。

酷番云经验案例

我们曾协助一家电商客户进行多站点迁移,客户原有 3 个站点零散分布在多台服务器上,管理混乱且资源利用率低,在酷番云

nginx配置多站点怎么做,多站点配置详细教程

的云服务器上,我们采用上述“目录隔离 + 独立配置”方案,将站点统一规划,过程中重点处理了两个细节:

  • 跨站数据隔离:每个站点使用独立数据库账号,Nginx 层面通过 fastcgi_param 传递独立的环境变量,避免应用层串号。
  • CDN 与源站协调:客户启用了 CDN 加速,我们在 Nginx 配置中为 CDN 回源请求单独设置 server 块,并配置了精准的 allow/deny 规则,仅放行 CDN 节点 IP,保障源站安全。

迁移后,服务器成本降低约 40%,站点响应时间平均缩短 25%,运维效率显著提升。


相关问答

多站点配置中,sites-availablesites-enabled 目录的作用是什么?可以直接放在 conf.d 下吗?

sites-available 存放站点的“草稿”配置,sites-enabled 通过软链接方式“激活”需要的站点,这种模式便于临时禁用站点(删除软链接即可)而无需删除原配置,而 conf.d 更适合存放与站点无关的全局配置片段(如压缩、缓存参数),两者职能不同,建议按职责分离使用,若站点数量少、变更不频繁,将站点配置直接放入 conf.d 也可以,但不推荐,因为这会削弱配置管理的灵活性。

同一域名下,如何根据路径区分多个应用?

可以在一个 server 块内,用多个 location 块实现:

server {
    server_name example.com;
    location /blog/ {
        alias /var/www/blog/;
    }
    location /shop/ {
        alias /var/www/shop/;
    }
}

注意使用 alias 而非 root,否则路径映射会出错,这种方式适合应用间耦合度较低的场景,但若应用包含独立后端逻辑,仍建议拆分为独立站点,便于独立升级与故障隔离。

图片来源于AI模型,如侵权请联系管理员。作者:酷小编,如若转载,请注明出处:https://www.kufanyun.com/ask/728570.html

(0)
上一篇 2026年8月27日 02:18
下一篇 2026年8月27日 02:18

相关推荐

  • 安全白皮书打折?购买时需注意哪些隐藏风险?

    在数字化快速发展的今天,企业对信息安全的重视程度日益提升,安全白皮书作为阐述安全理念、技术架构与实践方案的重要载体,其价值不言而喻,部分企业因预算限制或对白皮书价值认知不足,往往忽视了对高质量安全白皮书的投入,安全白皮书“打折”并非简单的价格优惠,而是需要从内容深度、实用性与定制化三个维度综合考量的价值优化策略……

    2025年10月29日
    03740
  • 3d动画配置怎么做?3d动画配置教程

    3D 动画配置核心结论:3D 动画配置的本质并非简单的参数堆砌,而是一场在视觉表现力、渲染效率与硬件成本三者之间寻求极致平衡的系统工程,成功的配置方案必须基于数据驱动的场景分析,采用分层渲染架构与云端弹性算力相结合的策略,才能在高并发、高画质的需求下实现秒级交付与成本最优,场景化配置策略:从“一刀切”到“精准匹……

    2026年4月24日
    01912
    • 服务器间歇性无响应是什么原因?如何排查解决?

      根源分析、排查逻辑与解决方案服务器间歇性无响应是IT运维中常见的复杂问题,指服务器在特定场景下(如高并发时段、特定操作触发时)出现短暂无响应、延迟或服务中断,而非持续性的宕机,这类问题对业务连续性、用户体验和系统稳定性构成直接威胁,需结合多维度因素深入排查与解决,常见原因分析:从硬件到软件的多维溯源服务器间歇性……

      2026年1月10日
      020
  • 分布式服务器管理如何高效运维多节点集群?

    分布式服务器管理作为现代企业IT架构的核心支撑,正随着云计算、大数据和人工智能技术的普及而变得日益重要,它不仅关乎服务器资源的高效利用,更直接影响业务的稳定性、扩展性和安全性,在传统集中式管理模式难以应对海量数据处理和弹性计算需求的背景下,分布式服务器管理通过自动化、智能化的手段,实现了对分散式资源的统一管控……

    2025年12月17日
    02730
  • 华为路由器路由配置教程,华为路由器怎么设置

    在华为路由器配置中,静态路由与OSPF动态路由的合理选型及策略路由(PBR)的深度应用,是保障企业网络高可用性与业务优先级的核心关键,单纯依赖默认路由或基础静态路由已无法满足现代复杂网络环境对带宽利用率、故障快速收敛及业务流量精细化调度的需求,通过构建分层路由架构,结合策略路由实现流量智能引导,不仅能显著提升网……

    2026年7月7日
    0702

发表回复

您的邮箱地址不会被公开。 必填项已用 * 标注