Неправильный псевдоним внутреннего перенаправления для X-Accel-Redirect - PullRequest
1 голос
/ 28 сентября 2019

Nginx внутренний редирект поиска файлов по неверному пути.

Я использую nginx и laravel (PHP) и хочу создать безопасное онлайн-хранилище. Если пользователь существует и имеет разрешение, он может загрузить файл.Я использую 'X-Accel-Redirect' для этого действия.

    //it works with apache X-Sendfile
    public function download()
    {
        $filename = "4.jpg";
        return response(null)
            ->header('Content-Disposition', 'attachment; filename="' . $filename . '"')
            ->header('X-Accel-Redirect', "/storage/app/public/$filename")
            ->header('X-Sendfile', base_path("storage/app/public/$filename"));
    }

nginx conf

    root /var/www/public;
#...
    location /storage/ {
      alias /var/www/storage/;
      internal;
    }
#also i tried root key same result not changed

Я думаю, псевдоним не переписал родительский ключ области видимости, но я не могу решить, что.

Nginx Log ---
[error] 35#35: *1 open() "/var/www/public/storage/app/public/4.jpg" failed (2: No such file or directory),

обычный файл, хранящийся в /var/www/storage/app/public/4.jpg

1 Ответ

0 голосов
/ 29 сентября 2019

Я исправил это с помощью nginx conf.nginx не перехватил URL, поэтому я изменяю эти настройки

 location ^~ /storage/ {
      alias /var/www/storage/;
      internal;
    }
...