Служите статическим файлам с помощью X-Accel-Redirect с помощью PHP на nginx

У меня есть несколько файлов за пределами моего корневого каталога (/ var / www / data), и я хотел бы предоставить их по URL-адресу, например, https://example.com/data/?id=123456. Я бы использовал для этого заголовок X-Accel-Redirect. Моя конфигурация nginx следующая:

server {

server_name example.com;
server_tokens off;
root /var/www/html/;

location / {
index index.php index.html;
}
location ~ \.php(?:$|/) {
include snippets/fastcgi-php.conf;
fastcgi_pass unix:/run/php/php7.2-fpm.sock;
fastcgi_split_path_info ^(.+\.php)(/.+)$;
fastcgi_param MOD_X_ACCEL_REDIRECT_ENABLED on;
fastcgi_param MOD_X_ACCEL_REDIRECT_PREFIX /data/;
}

location /data/ {
internal;
alias /var/www/data/;
}

listen 443 ssl;
ssl_certificate ...;
ssl_certificate_key ...;
ssl_dhparam ...;
}

Сейчас я пытаюсь обслуживать файлы на https://example.com/data/index.php как это:

$url = "/var/www/data/file.jpg;
header("X-Accel-Redirect: ".$url);

Я получаю ошибку 404 и журнал ошибок nginx выглядит следующим образом:

[error] 8401#8401: *1 open() "/var/www/html/var/www/data/file.jpg" failed (2: No such file or directory), client: .....

Пожалуйста, помогите мне решить эту проблему!

0

Решение

Задача ещё не решена.

Другие решения

Других решений пока нет …

По вопросам рекламы [email protected]