我有一些文件在我的根目录(/ 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: .....
请帮我解决这个问题!