Nginx / PHP-FPM 在外部设置 404 / 5xx

Nginx / PHP-FPM 在外部设置 404 / 5xx

因此,我最近一直在尝试通过构建基于 pimcore 的 nginx vhost 配置来帮助社区。据我所知,除了一个小问题外,一切都运行良好。例如,如果任何页面(cms 页面)使用 RSS 源,并且 RSS 源返回 503 错误(不可用/404 等),则整个页面将转发到 503/404 错误页面,而不仅仅是禁用该项目的加载。此问题不会出现在 apache 上。

发生的问题是,例如,/about 是一个包含 RSS 源的 cms 页面。about 页面有效,但是,被使用并显示在页面中的源返回 503 错误。Nginx 似乎正在获取包含的资产并将顶级页面 (/about) 重定向到错误页面,而不是呈现大部分页面。目前配置有点混乱,但完全可以正常工作,因为我尝试了许多不同的方法来使其工作,但我找不到正确的配置集来修复该问题。在 / 或 .php 位置内设置内部值似乎也没有改变任何东西。

如果有人能帮助我解决这个问题,那么我可以在将其添加回社区文档之前努力保护实际文档根目录。

标准 vhost 使用:

server {
   listen 80;
   server_name _;
   root /data/www/pimcore;
   access_log /var/log/nginx/$host-access.log;
   error_log  /var/log/nginx/pimcore-error.log debug; 
   include /etc/nginx/conf.d/_tpl/pimcore.cf;
}

我按 vhost 加载的 pimcore.cf 文件如下所示:

index index.php index.html index.htm;

location ~* \.(js|css|png|jpg|jpeg|gif|ico|xml|swf|flv|eot|ttf|woff|pdf|xls|htc)$ {
    access_log        off;
    log_not_found     off;
    expires           360d;
    add_header Pragma "public";
    add_header Cache-Control "public, must-revalidate, proxy-revalidate";
    access_log off;
    try_files       /$uri $uri/ /website/var/assets$uri /website/var/(tmp|assets|plugins|areas)$uri /plugins/.*/static$uri /index.php?$args;
}

location @pimcore{
    try_files       $uri =200;
}
location ~* \.php$ {
    try_files       /$uri $uri/ /index.php?$args =200;
    fastcgi_index   index.php;
    #fastcgi_pass    127.0.0.1:9000;
    fastcgi_pass   unix:/var/lib/php/php.sock;
    include         fastcgi_params;
    fastcgi_param   SCRIPT_FILENAME    $document_root$fastcgi_script_name;
    fastcgi_param   SCRIPT_NAME        $fastcgi_script_name;
    internal;
}
location / {
    # First attempt to serve request as file, then as directory, then fall back to index.html
    #       try_files $uri $uri/ /index.php/$request_uri;
    try_files /$uri $uri/ /index.php?$args;
    error_page 404 500 501 503 = @pimcore;
}
location = /favicon.ico {
    log_not_found off;
    access_log off;
}

location = /robots.txt{ 
    access_log off; 
    log_not_found off; 
}

location ~ /.ht {
    deny all;
    access_log off;
    log_not_found off;
}

相关内容