Configuração Nginx / PHP-FPM 404 / 5xx em externos

2

Então recentemente eu tenho tentado ajudar a comunidade construindo uma configuração vHIG do nginx baseado em pimcore. Tudo funciona muito bem do que eu posso ver, exceto por um pequeno problema. Se qualquer uma das páginas (páginas cms) consumir um feed rss por exemplo e o feed rss retornar um erro 503 (indisponível / 404 etc), a página inteira será encaminhada para uma página de erro 503/404, em vez de simplesmente desabilitar a carga desse item. Este problema não aparece no apache.

O problema que ocorre é digamos, por exemplo, o / about é uma página cms que inclui um feed rss. A página sobre é válida, no entanto, o feed que é consumido e exibido na página retorna um erro 503. O Nginx parece estar pegando o ativo incluído e redireciona a página de nível superior (/ sobre) para uma página de erro, em vez de renderizar a maior parte da página. A configuração está um pouco suja no momento, mas funciona completamente, já que experimentei muitas coisas diferentes para fazer isso funcionar, mas não consigo encontrar o conjunto de configurações correto para corrigir o problema. Definindo o interal; O valor dentro dos locais / ou .php também não parece estar mudando nada.

Se alguém puder me ajudar com esse problema, posso trabalhar para proteger a raiz real do documento antes de adicioná-lo novamente à documentação da comunidade.

O vhost padrão usa:

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;
}

O arquivo pimcore.cf que eu carrego por vhost é semelhante ao seguinte:

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;
}
    
por Will H 22.10.2012 / 15:56

0 respostas

Tags