【发布时间】:2012-07-11 17:16:02
【问题描述】:
我正在尝试使用 NginX 作为一些 IIS 服务器的反向代理。目标是让 NginX 从 IIS / Apache 服务器缓存静态项目,如 CSS / JS / 图像。我还试图让 NginX 使用其 perl 模块自动缩小 js / css 文件。
我在这里找到了一个用于缩小的示例脚本:
http://petermolnar.eu/linux-tech-coding/nginx-perl-minify-css-js/
使用脚本一切正常,除了反向代理中断。
问题:
- 我正在努力实现的目标是否可能?我希望 NginX 在将它们保存到缓存之前先缩小脚本。
- nginX 可以自动设置正确的过期标头,以便尽可能长时间缓存静态项目,并且仅在查询字符串更改时替换 (jquery.js?timestamp=march-2012)
- 可以在发送资源之前使用 NginX GZIP 压缩资源。
- 如果 NGinx 无法连接到后端服务器,它可以转发请求或提供“Down For Maintenance 页面”。
任何帮助将不胜感激。
到目前为止,这是我的网站启用/默认设置。
server {
location / {
proxy_pass http://mywebsite.com;
proxy_set_header Host $host;
proxy_cache STATIC;
proxy_cache_valid 200 1d;
proxy_cache_use_stale error timeout invalid_header updating
http_500 http_502 http_503 http_504;
}
location @minify {
perl Minify::minify_handler;
}
location ~ \.css$ {
try_files $uri.min.css @minify;
}
location /*.js {
expires 30d;
}
}
【问题讨论】:
-
发布配置的人可能有更好的洞察力。您可以在链接网站上使用 cmets 部分。
-
我也尝试在那里发帖。如果他回答我会确保把它带到堆栈溢出。我试图弄清楚它是否是一个好的用例。现在我们混合运行 IIS7 和 Apache。我们在 IIS7 上使用 RequestReduce,这是一种缩小和合并的好方法,但在代理级别完成此操作是有意义的。能够将一个小的 js 或 css 更改推送到我们的主服务器并在第一次请求时将它们缩小听起来很性感。特别是在使用 NginX 创建 CDN 的情况下,就像 maxcdn / netdna 的人一样。
-
顺便说一句,cloudflare cdn 提供了很多内置的 minify / cdn。问题是他们有严重的延迟投诉。 x-pose.org/2012/02/speed-up-your-site-disable-cloudflare
标签: iis-7 nginx minify reverse-proxy