我将我的网站托管在 DigitalOcean 的 nginx 服务器上并运行了一些更新。 在更新之前,我能够将 PDF 和 Powerpoint 文件上传到服务器并毫无问题地下载它们。
现在,每当我尝试下载文件时,都会收到错误“Powerpoint 发现 FILENAME.pptx 中的内容存在问题......”,并且尝试修复不成功。对于大多数(但不是全部)PDF 文件也是如此(“无法加载 PDF 文档”)。
错误发生在包含图像的文件中,我想知道它是否与 gzip 有关。完全关闭 gzip 并没有改变任何东西。
有什么想法可能会导致这些错误吗?
以下是我的 nginx.conf 文件的部分内容:
http {
##
# Basic Settings
##
client_max_body_size 10M;
sendfile on;
tcp_nopush on;
tcp_nodelay on;
keepalive_timeout 65;
types_hash_max_size 2048;
# server_tokens off;
# server_names_hash_bucket_size 64;
# server_name_in_redirect off;
include /etc/nginx/mime.types;
default_type application/octet-stream;
##
# SSL Settings
##
ssl_protocols TLSv1 TLSv1.1 TLSv1.2; # Dropping SSLv3, ref: POODLE
ssl_prefer_server_ciphers on;
##
# Logging Settings
##
access_log /var/log/nginx/access.log;
error_log /var/log/nginx/error.log;
##
# Gzip Settings
##
gzip on;
gzip_disable "msie6";
#gzip_vary on;
#gzip_proxied any;
#gzip_comp_level 6;
#gzip_buffers 16 8k;
#gzip_http_version 1.1;
#gzip_types text/plain text/css applicat
#gzip_types text/plain;
##
# Virtual Host Configs
##
include /etc/nginx/conf.d/*.conf;
include /etc/nginx/sites-enabled/*;
}
拥有一段日志文件会很有用。如果没有他们,很难给你回复。
您尝试过进行 WGET 或 CURL 吗?
我发现错误:更新将nginx.conf文件中的用户更改为“user = www-data”。将其更改为我原来的用户名后,一切都按预期再次运行。
我在 DigitalOcean nginx 上遇到了同样的问题: 大多数(但不是全部)pdf 文件中显示“无法加载 PDF 文档”。
我的错误日志(tail -f /var/log/nginx/error.log)是:
[...] *331 open() "/var/lib/nginx/proxy/5/00/0000000005" failed (13: Permission denied) while reading upstream [...]
我的解决方案是:
chown -R [user][:group] /var/lib/nginx/proxy/
到我的 /etc/systemd/system/gunicorn.service 文件中看到的用户和组。