响应头中的 X-Content-Encoding-Over-Network 但不是 Content-Encoding

IT技术 node.js reactjs nginx gzip next.js
2021-05-20 14:59:48

我正在尝试使用 Gzip 与 Nginx 和 NodeJS 服务器一起压缩使用 Next.js 编写的代码。

当我curl -H "Content-Encoding: gzip"用来验证时,配置似乎正在工作
但是来到真正的浏览器(Chrome、Firefox),我Content-Encoding: gzip在 Response Headers 中找不到该属性。
反而X-Content-Encoding-Over-Network: gzip出现了。

我使用 Google Lighthouse 来测试该站点,但它责怪我启用了文本文件压缩。

其实,是什么X-Content-Encoding-Over-Network意思?
我怎样才能让 gzip 与这个一起工作?

Nginx 设置:

gzip on;
gzip_disable "msie6";

gzip_vary on;
gzip_proxied any;
gzip_comp_level 6;
gzip_buffers 16 8k;
gzip_http_version 1.0;

gzip_types
    text/css
    text/plain
    text/javascript
    application/javascript
    application/json
    application/x-javascript
    application/xml
    application/xml+rss
    application/xhtml+xml
    application/x-font-ttf
    application/x-font-opentype
    application/vnd.ms-fontobject
    image/svg+xml
    image/x-icon
    application/rss+xml
    application/atom_xml;

Next.js 设置

// next.config.js
module.exports = {
  compress: true
};
1个回答

你的配置刚刚好。有时,问题是由 Antivirus 引起的,就像评论中提到的那样。尝试禁用防病毒软件或在您的防病毒程序中搜索 HTTP 扫描选项。

NOD Internet Security 就是这样做的。您可以通过以下方式禁用此选项,

1) 打开 NOD Internet Security

2) 点击设置,然后点击高级设置

3)搜索HTTP

4) 禁用HTTP 扫描器