Fra*_*ank 4 iis-7 reverse-proxy nginx minify
我试图使用NginX作为几个IIS服务器的反向代理.目标是让NginX从IIS/Apache服务器进入缓存静态项目,如CSS/JS/Images.我也试图让NginX使用perl模块自动缩小js/css文件.
我在这里找到了一个缩小的示例脚本:
http://petermolnar.eu/linux-tech-coding/nginx-perl-minify-css-js/
使用脚本一切正常,除了反向代理中断.
问题:
任何帮助将不胜感激.
到目前为止,这是我的网站启用/默认.
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;
}
}
Run Code Online (Sandbox Code Playgroud)
Nginx是反向代理的理想解决方案,它也是Unix方式"做一件事,做得好".所以我建议你将内容服务和缩小过程分开,而不是使用第三方插件一次做很多事情.
最佳做法是在进行生产部署之前对本地系统进行缩小和混淆阶段,这很容易说并且不难做到,请参阅google方法来压缩静态资产.一旦您准备好使用资产,我们就可以设置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来提供gzip压缩文件,而不是每次请求时都压缩它.
使用try_files检测维护页面是否存在
try_files $ uri /system/maintenance.html @mywebsite;
if(-f $ document_root/system/maintenance.html){return 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;
}
}
}
Run Code Online (Sandbox Code Playgroud)
| 归档时间: |
|
| 查看次数: |
5002 次 |
| 最近记录: |