Articles of gzip

为什么gzip_disable让nginx崩溃?

我已经启发了我的nginxconfiguration文件definkt的conf文件中的独angular兽,但似乎行gzip_disable "MSIE [1-6]\."; 使一切崩溃。 我得到这个网站暂时不可用的错误(来自nginx/html/50x.html )。 注释掉这条线就可以使所有的东西重新工作,摆弄正则expression式不会改变一件事情。 我正在运行nginx v.1.0.10和Ubuntu 11.10。 任何想法?

gzip不能在nginx +乘客中工作

我在Amazon Linux EC2服务器上安装了nginx + passenger,运行Rails应用程序。 该应用程序产生JSON响应。 JSON响应以长度标题呈现: # test_controller.rb # result contains a large 400k JSON string headers["Content-Length"] = result.size.to_s render :json => result 我尝试启用gzip,但响应仍然没有压缩。 我用GIDZipTest检查了它。 # nginx.conf gzip on; gzip_http_version 1.1; gzip_comp_level 1; gzip_proxied any; gzip_vary on; gzip_min_length 500; gzip_types application/x-javascript application/json;

有没有一种方法可以在nginx中进行即时解压缩的预压缩?

使用预压缩模块很容易查找预压缩的.gz版本的页面,并将其提供给接受gzip的浏览器,以避免dynamic压缩的开销,但是我想要做的是从磁盘上删除未压缩的版本,只存储压缩的版本,这显然将以相同的方式服务,但是如果不支持gzip的用户代理请求我希望nginx解压缩的页面在传输它。 有没有人做过这个或有其他高性能的Web服务器,提供这种function?

NGINX服务无源的预压缩索引文件

我发现了一个有趣的问题。 我正在尝试使用NGINX的gzip_static模块来处理一些gzip文件(我知道这个缺点)。 这意味着您可以在服务器上使用传输编码gzip来压缩文件。 例如,如果有一个文件/foo.html.gz,则将使用content-encoding:text / html为压缩文件提供/foo.html的请求。 虽然这通常工作,事实certificate,当在目录中查找索引文件时,gzip版本不被考虑。 GET /index.html 200 GET / 403 我想知道如果有人知道如何解决这个问题。 我尝试设置index.html.gz作为索引文件,但它作为一个gzip文件,而不是一个gzip编码的html文件。

为什么gzip最小长度指令不被尊重?

如果我理解正确的话,最好不要小的资源,因为它们实际上可能变得更大,同时仍然在CPU上性能受到影响。 所以使用gzip_min_length指令是一个明显的解决scheme。 但是,在运行REST API的服务器上尝试此操作时,我正在处理这似乎不起作用。 当我收到一个空的json响应或非常小的响应时,Content-Encoding头仍然存在并读取“gzip”。 HTTP响应头 我的问题是为什么这个设置没有得到NginX的尊重,我能做些什么来解决它? API是build立在stream明微框架上的。 我已经附加了我在nginx.conf中使用的Gzip设置: # Compression # Enable Gzip compressed. gzip on; # Enable compression both for HTTP/1.0 and HTTP/1.1. gzip_http_version 1.1; # Compression level (1-9). # 5 is a perfect compromise between size and cpu usage, offering about # 75% reduction for most ascii files (almost identical to level […]

Nginx的服务器内容gzip compress不能正常工作

这是我的nginx.conf中的部分,但我不知道为什么当我检查与gzip压缩检查器或HTTP标头,内容不压缩。 https://pasify.com user nginx; worker_processes 1; error_log /var/log/nginx/error.log; #error_log /var/log/nginx/error.log notice; #error_log /var/log/nginx/error.log info; pid /var/run/nginx.pid; events { worker_connections 1024; } http { include /etc/nginx/mime.types; default_type application/octet-stream; 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; sendfile on; #tcp_nopush on; keepalive_timeout 0; #keepalive_requests 5; #keepalive_timeout 65; send_timeout […]

在NGINX中使用GZIP和BROTLI共享MIMEtypes列表

我想使用NGINX启用GZIP和Brotli压缩。 我必须提供每个自己的MIMEtypes列表,就像在我的nginx.conf中一样: gzip_types text/plain text/css …etc; brotli_types text/plain text/css …etc; 我如何创build可以被这两个设置使用的MIMEtypes的单个列表?

Nginx的gzipfilter不能与我的自定义处理程序一起工作

我写了一个非常简单的nginx处理程序,只输出一些文本(大小100B到10KB)。 代码与nginx(版本1.0.6)正常工作 但我发现gzipfilter不能与处理程序一起工作。 当我在nginx.conf中打开gzip(在http部分下)时,gzip使用静态html文件工作。 但是,处理程序的响应不是用gzip压缩的。 经过大量的search工作,我仍然找不到答案。 任何意见 ? 非常感谢。 🙂 //my code : static ngx_int_t ngx_http_test_handler(ngx_http_request_t *r){ ngx_chain_t out; ngx_buf_t *b; b = ngx_pcalloc(r->pool, sizeof(ngx_buf_t)); …… //writing text to buffer …… r->headers_out.status = NGX_HTTP_OK; r->headers_out.content_length_n = len; r->headers_out.content_type.len = sizeof("text/html")-1; r->headers_out.content_type.data = (u_char *) "text/html"; out.buf = b; out.next = NULL; return ngx_http_output_filter(r, &out); }

用压缩数据填充memcached,直接从nginx提供

在python中,我生成复杂的静态页面。 然后我把它们放到memcached中,所以下一次请求时,它们可以直接从Nginx服务(根本不需要python) 这工作很好,直到我意识到如何在Nginx中存储未压缩的html效率低下。 所以我试着在存储之前手动gzip数据,然后让Nginx直接返回(只是设置content-encoding:gzip),但是虽然Nginx的文档提示可能,但我还是无法使它工作。 在我的testing中,我有python填充caching数据我通过python python通过NPE的答案我如何gzip压缩在Python中的string? 。 我也将这些memcached标志设置为1。 除此之外,Nginx没有其他的变化,原始数据在浏览器中显示为垃圾。 之后,我更改了该位置的Nginx设置,将memcached_gzip_flag字段设置为1,以便Nginx知道数据已经被gzip压缩,但nginx仍然提供原始数据。 我已经尝试了nginx的各种设置组合: gzip on和memcached_gzip_flag 1但是在所有情况下,浏览器显示原始数据(在第一次直接python命中之后)。 在某些情况下,萤火虫报告内容编码是gzip(但仍显示原始gzip数据),而在其他情况下,内容编码未设置。 总的来说,我的攻击计划是欺骗nginx使用正确的头文件来处理已压缩的数据,以便浏览器将其解压缩。 我在nginx 1.6和memcached 1.4.13 这里是相关的nginxconfiguration行,最初将工作。 首先命中从python填充caching的数据,第二击直接从memcached服务。 location ~* <matching stuff> { if ($request_method = POST){ break; } memcached_gzip_flag 1; set $memcached_key $uri; memcached_pass 127.0.0.1:11211; error_page 404 405 502 = @redo; default_type text/html; } 更新:我试了更多(在评论中的细节),但仍然没有结果。 更新POST BOUNTY:我没有很好的答案。 基本上,我不能让memcached_gzip_flag函数工作。 留意未来的回答者:如果你回答了这个问题,我会给你一个赏金奖励给你。 这比自动获得一半赏金完全错误的答案更可取。

静态文件显示为未压缩,即使在web服务器configuration为gzip压缩时也是如此

我已经在Amazon Elastic BeanStalk上托pipe了我的网站。 它使用nginx作为代理服务器并启用了gzip压缩。 但是,当我在网站上运行PageInsights时,它会报告我的许多静态内容文件需要进行压缩。 为什么PageSpeed Insights不能识别压缩? 还有什么需要做的吗?