我在 IIS 7 中打开了动态内容压缩,但是 Fiddler 显示我的动态页面仍然在没有内容编码的情况下提供:gzip。
静态内容压缩在相同的服务器上运行良好。
不确定这是否重要,但大多数动态页面都是 Coldfusion 页面(Coldfusion 被配置为 ISAPI 扩展),我们也在使用 IIS URL 重写模块。
这是来自我的 applicationhost.config。
<httpCompression directory="%SystemDrive%\inetpub\temp\IIS Temporary Compressed Files">
<scheme name="gzip" dll="%Windir%\system32\inetsrv\gzip.dll" />
<dynamicTypes>
<add mimeType="text/*" enabled="true" />
<add mimeType="message/*" enabled="true" />
<add mimeType="application/javascript" enabled="true" />
<add mimeType="*/*" enabled="false" />
</dynamicTypes>
<staticTypes>
<add mimeType="text/*" enabled="true" />
<add mimeType="message/*" enabled="true" />
<add mimeType="application/javascript" enabled="true" />
<add mimeType="*/*" enabled="false" />
</staticTypes>
</httpCompression>
...
<urlCompression doDynamicCompression="true" />
Run Code Online (Sandbox Code Playgroud)
这是一个示例请求:
GET / HTTP/1.1
Host: web5.example.com
User-Agent: Mozilla/5.0 (Windows; U; Windows NT …Run Code Online (Sandbox Code Playgroud) 我有一个用于创建 gzip 文件的 cron 作业:
mysqldump... | gzip -c > myfile..sql.gz
Run Code Online (Sandbox Code Playgroud)
我想myfile采用“time_date.sql.gz”格式
如何使用当前日期和时间创建文件?
谢谢
我们看到了一些非常奇怪的 HTTP 响应修改,我们无法弄清楚这是怎么回事。我们有一个处理 JSON 请求的应用服务器。有时,响应以 gzip 格式返回,但包含不正确的标头,导致浏览器无法正确解释它。
这个问题是间歇性的,随着时间的推移会改变行为。昨天早上它似乎有 50% 的时间失败,事实上,它似乎与我们的两台负载平衡服务器之一有关。下午晚些时候,它在 1000 次中只有 20 次失败,并且与应用服务器无关。
这两个应用程序服务器运行 Apache 2.2,带有 mod_wsgi 和一个 Django 应用程序堆栈。它们具有相同的 Apache 配置和源代码树,甚至在 Red Hat 上安装了相同的软件包。前面有一个硬件负载均衡器,我不知道品牌或型号。
Akamai 也是食物链的一部分,尽管我们移除了 Akamai,但问题仍然存在。
这是一个很好的请求和响应:
* Connected to example.com (97.7.79.129) port 80 (#0)
> POST /claim/ HTTP/1.1
> User-Agent: curl/7.19.7 (x86_64-pc-linux-gnu) libcurl/7.19.7 OpenSSL/0.9.8k zlib/1.2.3.3 libidn/1.15
> Host: example.com
> Accept: */*
> Referer: http://example.com/apps/
> Accept-Encoding: gzip,deflate
> Content-Length: 29
> Content-Type: application/x-www-form-urlencoded
>
} [data not shown]
< HTTP/1.1 200 OK
< Server: Apache/2 …Run Code Online (Sandbox Code Playgroud) 我们的 Web 服务器运行 IIS 7,并配置为压缩动态和静态内容。当我直接访问这些服务器时,gzip 压缩就起作用了。
我最近把nginx放在他们面前,gzip压缩已经停止了。我能够通过在 nginx 本身上显式启用 gzip 压缩来解决这个问题,但是考虑到我有六个后端并且只有一个活动的 nginx 框,这似乎有点低效。
nginx 似乎正在剥离Accept-Encoding标头。有没有人对如何“纠正”这种行为有任何建议?
示例配置:
upstream backend {
server 127.0.0.1:8080;
}
server {
listen 80;
proxy_set_header Host $host;
proxy_set_header X-Forwarded-For $proxy_add_x_forwarded_for;
location / {
proxy_pass http://backend;
}
}
Run Code Online (Sandbox Code Playgroud) 我想知道,是否有任何更快的 zlib 构建和更高级的优化?
如果可以使用 SSE 指令或英特尔 C++ 编译器或一些较早获得专利的技巧来优化它(我知道专利是 gzip/zlib 开发过程中的一个严重限制),有没有人费心去实现它?
我对压缩速度特别感兴趣,它对提供静态和动态内容的高性能 Web 服务有直接影响。
我有一个进程可以在短时间内向标准输出生成大量日志。有没有办法将我的流程的标准输出压缩到一个文件中。
我正在寻找类似的东西:./process | 压缩输出.log.zip
我试图让 IIS 在我的本地主机上压缩 jquery.js(和所有其他静态文件,但这里使用 jquery 作为示例),但出了点问题。
有趣的是,当我查看 %SystemDrive%\inetpub\temp\IIS Temporary Compressed Files\MySiteName 时,我在那里看到了 jquery.js 文件,它的大小为 24 KB。但是在浏览器中,根据 Firebug 上的 Net 选项卡,大小为 69 kb。
我尝试了以下方法: - 检查我的浏览器是否接受压缩。我通过 Firebug 在请求标头中找到了“Accept-Encoding gzip, deflate” - 启用失败的请求跟踪。但是,在我执行请求后,%SystemDrive%\inetpub\logs\FailedReqLogFiles 文件夹中没有任何内容。
参考这篇 serverfault 博客文章:一些速度改进,其中讨论了如何从单独的无 cookie 域提供 stackexchange 的静态内容......
有人将如何在 IIS7.5 上为 ASP.NET MVC 站点执行此操作?
到目前为止的计划:
<clientCache cacheControlCustom="public" /> 在 web.config 中这个计划正确吗?
您如何使用 WebDeploy 将整个 Web 应用程序部署到一台服务器,然后仅将静态项目部署到另一台服务器?
我可以看到有一个类似的问题,但对于 apache:Creating a cookie-free domain to serve static content so it does not apply
我在 nginx 1.2.8 上启用了 gzip,但由于某种原因,它没有对任何东西进行 gzip。
Nginx 安装信息:
nginx version: nginx/1.2.8
built by gcc 4.7.2 (Ubuntu/Linaro 4.7.2-2ubuntu1)
TLS SNI support enabled
configure arguments: --prefix=/usr/local/nginx-1.2.8 --with-http_ssl_module --with-http_realip_module --with-http_gzip_static_module --with-pcre --conf-path=/etc/nginx/nginx.conf --add-module=../headers-more-nginx-module-0.19rc1
Run Code Online (Sandbox Code Playgroud)
配置:
user www-user;
worker_processes 1;
events {
worker_connections 1024;
}
http {
include mime.types;
default_type application/octet-stream;
client_max_body_size 10M;
sendfile on;
keepalive_timeout 65;
more_clear_headers "Server";
gzip on;
gzip_types text/plain text/css application/json application/javascript application/x-javascript text/javascript text/xml application/xml application/rss+xml application/atom+xml application/rdf+xml;
server {
server_name test.com;
root /www;
index index.php index.html index.htm;
listen 80 …Run Code Online (Sandbox Code Playgroud) 我正在运行以下命令将 LVM 从一台主机复制到另一台主机:
dd if=/dev/vg_1/lv1 conv=noerror,sync bs=4M | gzip | ssh user@ip 'gzip -d | dd of=/dev/vg_2/lv1 bs=4M'
Run Code Online (Sandbox Code Playgroud)
首先,大约一个小时前,我的速度约为 11 MB/s。随着时间的流逝,传输速率已增至约 34.4 MB/s,并且仍在以恒定速率增长。
我很想知道为什么。
我最好的猜测是我正在复制的 LVM 非常大,但实际上只有一小部分是数据。结果可能是大块的数据被 0 填充。这会使 gzip 压缩更有效吗?
gzip ×10
compression ×4
iis-7 ×3
iis ×2
nginx ×2
apache-2.2 ×1
asp.net-mvc ×1
cookieless ×1
dd ×1
http ×1
http-headers ×1
linux ×1
performance ×1
ssh ×1