问题:如何配置 nginx 来提供 pdf 文件?

我正在尝试通过在 nginx 中进行配置来提供 pdf 文件,但我在页面中收到以下错误:404 Not Found

配置是这样的:

server {

    listen 3002;
    index index.html;
    server_name _;

    location / {

        root /var/www/html/pdf_carpet;
        try_files $uri /index.html = 404;
    }
}

pdf_carpet 是 pdf 文件所在的位置。

为了能够在 nginx 中提供 pdf 文件,我可以做什么或改变什么?

附言它适用于 html 文件。

解答

这是应在浏览器窗口中http://<your_domain_or_IP>:3002/pdf_carpetURL 下显示 PDF 文件的完整位置块:

location = /pdf_carpet {
    alias /var/www/html/pdf_carpet/file.pdf;
    default_type application/pdf;
    add_header Content-Disposition 'inline';
}

更新

如果访问 PDF 文件的 URI 以斜杠结尾(或者它是一个特殊情况的根 URI),则上述配置将不起作用,因为 nginx 会将索引文件名附加到这样的 URI(使location = /path/ { ... }不匹配$uri内部 nginx 变量)。对于这种情况,可以使用另一种技术:

location = / {
    root /var/www/html/pdf_carpet;
    rewrite ^ /file.pdf break;
    add_header Content-Disposition 'inline';
}
Logo

开发云社区提供前沿行业资讯和优质的学习知识,同时提供优质稳定、价格优惠的云主机、数据库、网络、云储存等云服务产品

更多推荐