Назад | Перейти на главную страницу

Цикл перенаправления nginx с X-Accel-Redirect

Попытка заставить nginx работать с X-Accel-Redirect заголовок. Я получаю такую ​​ошибку:

*24 rewrite or internal redirection cycle while internally redirecting to "/app/index.php", client: 127.0.0.1, server: project.dev, request: "GET / HTTP/1.1", upstream: "fastcgi://127.0.0.1:9000", host: "project.dev"

Конфигурация сайта nginx:

server {
    listen      80;
    server_name project.dev;
    root        /www/project;

    location ^~ /f/ {
        internal;
        alias /www/project/files/;
    }

    location / {
        try_files $uri /app/index.php$is_args$args;
    }

    include php.conf;
    include apache.conf;
}

/www/project/app/index.php

<?php
header('X-Accel-Redirect: /f/image.jpg');
exit;

я добавил ^~ в блок местоположения, потому что я думал, что это приведет к прекращению сопоставления блоков местоположения, и поэтому решил эту проблему. Это могло быть недоразумением с моей стороны.

Есть идеи, как это исправить?


Обновите с помощью php.conf и apache.conf

php.conf:

# pass the PHP scripts to FastCGI server listening on 127.0.0.1:9000
#
location ~ \.php$ {
  fastcgi_pass   127.0.0.1:9000;
  fastcgi_index  index.php;
  fastcgi_param  SCRIPT_FILENAME  $document_root$fastcgi_script_name;
  include        fastcgi_params;
}

apache.conf:

# deny access to .htaccess files, if Apache's document root
# concurs with nginx's one
#
location ~ /\.ht {
    deny  all;
}

Похоже, мне не удалось перезапустить сервер nginx. Когда через пару дней я вернулся к этому, он внезапно заработал, и я понял, что это должно быть после перезагрузки. Извините за потраченное время.

Теперь, если бы я только мог послать правильный Content-type заголовок ..

Вы не сказали nginx, какой индексный файл искать.

Попробуйте добавить

index index.php;

После корневой директивы.