Nginx 压缩功能失效问题

8

我不知道在这里应该把我的gzip压缩代码放在哪个http块内。以下是示例代码:

http {
    default_type application/octet-stream;
    include /etc/nginx/mime.types;

    log_format  main    '$remote_addr - $remote_user [$time_local] "$request" '
                        '$status $body_bytes_sent "$http_referer" '
                        '"$http_user_agent" "$http_x_forwarded_for"';

    access_log /var/log/nginx/access.log main;

    keepalive_timeout 65;

    server {

        listen 8080;

        root /usr/share/nginx;

        location / {
            root /usr/share/nginx/html;

            try_files $uri /index.html;

            autoindex off;
        }

        location ~ ^/(images|fonts|videos)/ {
            root /usr/share/nginx/assets;

            autoindex                off;
            expires                  7d;
            proxy_redirect           off;
            proxy_max_temp_file_size 0;

        }

        location ~ \.(mp3|mp4) {

        }
    }

    include /etc/nginx/conf.d/*.conf;
}

我想使用gzip压缩的代码在这里,但我不知道应该将它们放在服务器块中、服务器块之前还是位置块中:

# Compression
gzip on;
gzip_proxied any;
gzip_types text/plain text/xml text/css application/x-javascript;
gzip_vary on;
gzip_disable "MSIE [1-6]\.(?!.*SV1)";
gzip_static on;

我将gzip_static设置为“on”,因为我正在使用gulp-gzip压缩各种CSS和JS文件。


你是如何确定gzip无法运行的?gzip在nginx默认安装中默认启用,在nginx.conf文件中可以找到它,但是您可以在适当的区域添加特定的自定义以满足您的需要。 - Abdullah Shahin
通过点击网络选项卡,我可以查看是否通过查找Content-Encoding字段来压缩内容。由于某种原因,我想要压缩的js/css文件没有显示该字段。 - robinnnnn
这是我的build.min.js的响应头。请注意,没有Content-Encoding: gzip字段。 - robinnnnn
可能与您定义的gzip_types不匹配有关,导致nginx无法识别,请尝试将其删除并查看是否是这种情况,nginx默认使用gzip。 - Abdullah Shahin
我刚刚检查了一个网页应用程序的配置,这是让它工作的配置,希望能对你有所帮助。[gzip_types text/plain text/html text/css application/json application/javascript text/xml application/xml text/javascript;] - Abdullah Shahin
1个回答

22

将您的配置文件按照以下方式进行编辑,它应该能够正常工作:

gzip on;
gzip_comp_level 6;
gzip_vary on;
gzip_types text/plain text/css application/json application/x-javascript application/javascript text/xml application/xml application/rss+xml text/javascript image/svg+xml application/vnd.ms-fontobject application/x-font-ttf font/opentype;

请注意添加的类型,因为有时不同系统可能以不同的方式检测到这些类型。


网页内容由stack overflow 提供, 点击上面的
可以查看英文原文,
原文链接