You need to enable JavaScript to run this app.
优惠活动
大模型
产品
解决方案
定价
更多

Nginx默认配置块是否满足基础默认Drupal的部署需求?

你的Nginx配置是否满足基础Drupal核心需求?

咱们直接说结论:目前的两个配置都没法满足基础Drupal核心的使用需求,核心问题在于缺少Drupal必需的URL重写规则、独立应用配置缺失关键的PHP处理逻辑和监听端口,默认配置也没适配Drupal的路由机制。下面具体拆解问题,再给出调整方案:

现有配置的核心问题

1. 默认80端口server的问题

这个配置能处理静态文件和PHP,但完全没适配Drupal的路由逻辑:

  • location / 里的 try_files $uri $uri/ =404 会让所有动态请求(比如 /node/1)直接返回404——Drupal需要把这类请求转发到 index.php 来处理路由,而不是直接找对应文件。
  • 没有保护Drupal的敏感文件(比如 settings.php、sites/default/files 里的私有文件),存在安全风险。

2. 独立应用server的问题

这个配置连基本的运行条件都不满足:

  • 没有指定 listen 端口,Nginx根本不知道这个server块对应哪个端口的请求,等于无效配置。
  • 缺少PHP处理的location规则,访问 .php 文件会直接被下载,无法执行Drupal的PHP代码。
  • 同样没有Drupal必需的URL重写规则,动态路由无法工作。

适配基础Drupal核心的调整方案

把独立应用的server块补全,整合所有必需的规则,示例如下:

server {
    listen 80;
    listen [::]:80;

    root ${drt}/${domain}/;
    server_name ${domain} www.${domain};

    # Drupal核心必需的URL重写规则:把非静态文件的请求转发到index.php
    location / {
        try_files $uri $uri/ /index.php?$query_string;
    }

    # 处理PHP请求,确保指向正确的PHP-FPM sock
    location ~ \.php$ {
        include snippets/fastcgi-php.conf;
        fastcgi_pass unix:/run/php/php7.0-fpm.sock;
        # 额外:确保PHP文件存在才转发,避免恶意请求
        try_files $uri =404;
    }

    # 静态资源长期缓存(保留你原来的配置)
    location ~* \.(jpg|jpeg|png|gif|ico|css|js|ttf|woff|pdf)$ {
        expires 365d;
        add_header Cache-Control "public, immutable";
    }

    # 保护Drupal敏感文件,禁止直接访问
    location ~ /sites/.*/settings\.php$ {
        deny all;
        return 403;
    }
    location ~ /sites/.*/files/private/ {
        deny all;
        return 403;
    }
}

关键调整说明

  • 添加了 listen 端口,让Nginx识别这个server块的请求入口。
  • 替换了 location / 的规则,用 /index.php?$query_string 把动态请求转发到Drupal的入口文件,这是干净URL工作的核心。
  • 补充了PHP处理规则,确保Drupal的PHP代码能被正确执行。
  • 新增了敏感文件保护规则,避免核心配置文件和私有文件被直接访问。
  • 保留了你原来的静态资源缓存规则,这部分对Drupal的性能优化很有帮助。

这样调整后的配置,就能满足Drupal核心功能的基础需求(包括文章管理、用户管理、内容展示等典型场景)。

内容的提问来源于stack exchange,提问作者user82842

相关产品推荐
方舟 Agent Plan

超全模态模型 × Harness 升级,最新支持 Deepseek-V4.1-Flash、GLM-5.3 系列、Doubao-Seedream-5.0-pro、Kimi-K3 (部分), 限时 9.9 元起

最近更新时间:2026.05.19 03:23:31