我有一个渐进式 jpeg,我正尝试将其用于我的测试网站 (localhost)。但它似乎没有显示从低分辨率到高分辨率的图像。即使带宽受到限制,图像也会弹出。从我进行的测试来看,问题似乎出在我的 nginx 服务器上,不确定是配置问题还是服务器本身问题。
但我似乎不相信我的推断是正确的,服务器应该受到指责。
以下是我做过的测试,结果为阴性
- 使用 php-gd 或 imagick 启用隔行扫描对图像进行编码
- Firefox 与 Chrome
- 使用已知的渐进式图像http://www.reasoft.com/tutorials/web/img/progress.jpg(通过我的 Chrome 浏览器可以在该服务器上运行,但通过我的服务器则不行)
- 将 nginx 1.14 更改为 1.16.1
- 通过 devtool 清除缓存
- 启用 image_filter_interlace;
这是我的 nginx 配置文件:
worker_processes 32;
worker_rlimit_nofile 524288;
events
{
use epoll;
worker_connections 100000;
multi_accept on;
}
http {
include mime.types;
default_type application/octet-stream;
open_file_cache max=100000;
keepalive_requests 100000;
keepalive_timeout 30;
index index.php;
server {
listen 127.0.0.1:443 ssl http2;
server_name static.example.com;
root "/static/root";
ssl_certificate "/static/server/cert.cer";
ssl_certificate_key "/static/server/key.key";
ssl_session_cache shared:SSL:1m;
ssl_session_timeout 5m;
ssl_ciphers HIGH:!aNULL:!MD5;
ssl_prefer_server_ciphers on;
fastcgi_hide_header Set-Cookie;
location ~* \.(?:png|jpeg|jpg)$ {
expires 30d;
add_header Pragma public;
add_header Cache-Control "public";
add_header Accept-Ranges bytes;
}
}
}
系统:CentOS 8.1 PHP 7
我是否遗漏了什么?
编辑:
我更新了配置以包含图像过滤模块,但结果仍然负面:
worker_processes 32;
worker_rlimit_nofile 524288;
load_module /location/of/ngx_http_image_filter_module.so;
...
http {
...
server {
...
location ~* \.(?:png|jpeg|jpg)$ {
image_filter resize 1000 1000;
image_filter_interlace on;
...
}
}
}