cdn解析php文件中的图片,将图片文件部署到七牛CDN上去

[root@MyServer ~]# wget -O ngx_http_substitutions_filter_module-master.zip https://github.com/yaoweibin/ngx_http_substitutions_filter_module/archive/master.zip

[root@MyServer ~]# unzip ngx_http_substitutions_filter_module-master.zip

[root@MyServer ~]# cd ngx_http_substitutions_filter_module-master && pwd

/root/ngx_http_substitutions_filter_module-master

(2)服务器上执行nginx -V 查看编译参数[root@MyServer ~]# /usr/local/nginx/sbin/nginx -V

Tengine version: Tengine/2.1.2 (nginx/1.6.2)

built by gcc 4.8.5 20150623 (Red Hat 4.8.5-4) (GCC)

TLS SNI support enabled

configure arguments: --prefix=/usr/local/nginx --with-http_v2_module --with-http_ssl_module --with-http_gzip_static_module --with-http_realip_module --add-module=../ngx_cache_purge-2.3 --with-http_sub_module

(3)加上模块参数,重新编译nginx./configure [+原有参数+] --add-module=/root/ngx_http_substitutions_filter_module-master/

(4)平滑升级nginx

参考这篇文章,我没有尝试过所以不写。

这里我在第2步编译的时候卡壳了,我当时是apt-get install nginx安装的nginx……版本是nginx/1.12.1,我的编译参数是:--with-cc-opt='-g -O2 -fstack-protector-strong -Wformat -Werror=format-security -D_FORTIFY_SOURCE=2' --with-ld-opt='-Wl,-z,relro -Wl,-z,now' --prefix=/usr/share/nginx --conf-path=/etc/nginx/nginx.conf --http-log-path=/var/log/nginx/access.log --error-log-path=/var/log/nginx/error.log --lock-path=/var/lock/nginx.lock --pid-path=/run/nginx.pid --modules-path=/usr/lib/nginx/modules --http-client-body-temp-path=/var/lib/nginx/body --http-fastcgi-temp-path=/var/lib/nginx/fastcgi --http-proxy-temp-path=/var/lib/nginx/proxy --http-scgi-temp-path=/var/lib/nginx/scgi --http-uwsgi-temp-path=/var/lib/nginx/uwsgi --with-debug --with-pcre-jit --with-http_ssl_module --with-http_stub_status_module --with-http_realip_module --with-http_auth_request_module --with-http_v2_module --with-http_dav_module --with-file-aio --with-threads --with-http_addition_module --with-http_geoip_module=dynamic --with-http_gunzip_module --with-http_gzip_static_module --with-http_image_filter_module=dynamic --with-http_secure_link_module --with-http_sub_module --with-http_xslt_module=dynamic --with-stream=dynamic --with-stream_realip_module --with-stream_geoip_module --with-stream_ssl_module --with-stream_ssl_preread_module --with-mail=dynamic --with-mail_ssl_module --add-dynamic-module=/usr/src/builddir/debian/modules/nginx-auth-pam --add-module=/usr/src/builddir/debian/modules/nginx-dav-ext-module --add-module=/usr/src/builddir/debian/modules/nginx-echo --add-module=/usr/src/builddir/debian/modules/nginx-upstream-fair --add-module=/usr/src/builddir/debian/modules/ngx_http_substitutions_filter_module --add-module=/usr/src/builddir/debian/modules/nginx-cache-purge

然后按照教程做了后报错:./configure: error: no /usr/src/builddir/debian/modules/nginx-dav-ext-module/config was found

用which,whereis也找不到这个叫nginx-dav-ext-module的插件,于是乎我开始准备一个一个查找这些--add-module增加的插件是否有用,每想到找着找着找到了这个:--add-module=/usr/src/builddir/debian/modules/ngx_http_substitutions_filter_module

呀,这不是我们要加的插件吗,原来在这个版本已经集成了,那就不用那么麻烦升级了……于是跳过了所有的步骤……进入使用阶段。

2、配置nginx,替换字符串。

用法说明:* subs_filter_types

subs_filter_types 语法: subs_filter_types mime-type [mime-types]

默认: subs_filter_types text/html

适用: http, server, location

subs_filter_types 是用来指定替换文件类型的 默认仅仅替换text/html类型的文件。

* subs_filter

subs_filter 语法: subs_filter source_str destination_str [gior]

默认: none

适用: http,server,location

subs_filter 是用来替换文本的,可以使用正则

g(默认):替换匹配项。

i :区分大小写的匹配

o : 只匹配发现的第一个。

r : 正则匹配(默认是字符串匹配)。

于是在ngxin的xxx.conf下,配置我的cdn:subs_filter http://www.bewindoweb.cn/([^"\']*?)\.(jpg|png|js|css|jpeg|bmp|gif) http://cdn.bewindoweb.cn/$1.$2 igr;

这里注意,我对php进行了php-fpm的配置,所以在location /下配置这一句是无效的,要在location php的下面才有效哦。

最后的效果:

5270910c5dfe6885c7b2aceefe16bcdb.png

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值