微信公众号搜"智元新知"关注
微信扫一扫可直接关注哦!

iis-7 – Nginx反向代理SSL /缩小

我试图使用Nginx作为几个IIS服务器的反向代理.目标是让Nginx从IIS / Apache服务器进入缓存静态项目,如CSS / JS / Images.我也试图让Nginx使用perl模块自动缩小js / css文件.

在这里找到了一个缩小的示例脚本:

http://petermolnar.eu/linux-tech-coding/nginx-perl-minify-css-js/

使用脚本一切正常,除了反向代理中断.

问题:

>我正在努力实现的目标是什么?我希望Nginx在将脚本保存到缓存之前首先缩小脚本.
> Nginx可以自动设置正确的expires头,以便尽可能长时间地缓存静态项,并且仅在更改查询字符串时替换(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;
            }



}

解决方法:

Nginx是反向代理的理想解决方案,它也是Unix方式“做一件事,做得好”.所以我建议你将内容服务和缩小过程分开,而不是使用第三方插件一次做很多事情.

最佳做法是在对生产进行部署之前对本地系统进行缩小和混淆阶段,这很容易说并且不难做到,请参阅the google way以压缩静态资产.一旦您准备好使用资产,我们就可以设置Nginx配置.

回答:

>在将其部署到生产环境之前使用minify& obfuscate
>您可以通过regexp(目录名称文件扩展名)查找资产

location~ ^ /(assets | images | javascripts | stylesheets | swfs | system)/ {
  gzip_static on;
  到期最大值;
  add_header Cache-Control public;
  add_header Last-Modified“”;
  add_header ETag“”;
  打破;
}
>使用gzip on和gzip_static on来提供gzip压缩文件,而不是每次请求时都压缩它.
>使用try_files检测维护页面是否存在

try_files $uri /system/maintenance.html @mywebsite;

if(-f $document_root / system / maintenance.html){
  返回503;
}

查看您的案例的完整Nginx配置:

http {
  keepalive_timeout         70;

  gzip                      on;
  gzip_http_version         1.1;
  gzip_disable              "msie6";
  gzip_vary                 on;
  gzip_min_length           1100;
  gzip_buffers              64 8k;
  gzip_comp_level           3;
  gzip_proxied              any;
  gzip_types                text/plain text/css application/x-javascript text/xml application/xml;

  upstream mywebsite {
    server                  192.168.0.1 # change it with your setting
  }

  server {
    try_files               $uri /system/maintenance.html @mywebsite;

    location @mywebsite {
      proxy_set_header      X-Forwarded-For $proxy_add_x_forwarded_for;
      proxy_set_header      X-Forwarded-Proto $scheme;
      proxy_set_header      Host $http_host;
      proxy_redirect        off;
      proxy_pass            http://mywebsite;
    }

    location ~ ^/(assets|images|javascripts|stylesheets|swfs|system)/ {
      gzip_static       on;
      expires           max;
      add_header        Cache-Control public;
      add_header        Last-Modified "";
      add_header        ETag "";
      break;
    }

    if (-f $document_root/system/maintenance.html) {
      return            503;
    }

    location @503 {
      error_page 405 = /system/maintenance.html;
      if (-f $document_root/system/maintenance.html) {
        rewrite         ^(.*)$/system/maintenance.html break;
      }
      rewrite           ^(.*)$/503.html break;
    }

  }

}

版权声明:本文内容由互联网用户自发贡献,该文观点与技术仅代表作者本人。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如发现本站有涉嫌侵权/违法违规的内容, 请发送邮件至 [email protected] 举报,一经查实,本站将立刻删除。

相关推荐