Итак, я недавно пытался помочь сообществу, создавая конфигурацию nginx vhost на основе pimcore. Насколько я могу судить, все работает очень хорошо, за исключением одной небольшой проблемы. Если какая-либо из страниц (cms-страницы), например, потребляют RSS-канал, а RSS-канал возвращает ошибку 503 (недоступен / 404 и т. Д.), Тогда вся страница перенаправляется на страницу ошибки 503/404 вместо того, чтобы просто отключить загрузку этого пункт. Эта проблема не проявляется в apache.
Возникающая проблема: допустим, например, / about - это страница cms, которая включает RSS-канал. Страница «О нас» действительна, однако фид, который будет использован и отображаться на странице, возвращает ошибку 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;
}
Файл 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;
}