不管一个系统或网站的大与小,都存在相应的图片处理,生成缩略图、为图片加水印等等,如果涉及到APP端,这个图片的处理需求变得更加重要了,因为在目前看来,客户端的屏幕大小不一,会导致以下问题:
1、图片过大导致APP加载图片速度慢;
2、消耗用户过多流量。
#图片过滤模块(有时一张高清图片太大,页面加载时间太长,需要压缩)
1.需要重新编译nginx
./configure --prefix=/usr/local/nginx --with-http_realip_module --with-http_image_filter_module=dynamic
编译报错,没有gd-devel包
yum list gd ##看到系统gd版本是2.0.35-26,所以自己下载的gd-devel也得是这个版本
yum install -y gd-devel-2.0.35-26.el7.x86_64.rpm
再编译
make && make install
cd /root/nginx-1.15.8/objs
cp nginx /usr/local/nginx/sbin/
静态模块需要手动新建目录,把模块放进去
mkdir /usr/local/nginx/modules
cp ngx_http_image_filter_module.so /usr/local/nginx/modules/
因为之前的实验已经编译安装了,所以不再进行。如果没有编译,可以按照上述过程进行编译安装。
修改配置文件
load_module modules/ngx_http_image_filter_module.so; ##加在最开头
location /download/ {
limit_conn addr 1;
#limit_rate 50k;
#limit_req zone=one burst=5;
image_filter resize 150 100; #就是重新调整图片的尺寸(像素)
}
然后在浏览器上打开访问,没有变化先清理缓存
http://ip/download/vim.jpg #注意:路径一定要输入全
按F12,点击network->file可以看到图片大小变为不到2k,之前400多k
ssl模块
重新编译nginx
./configure --prefix=/usr/local/nginx --with-http_realip_module --with-http_image_filter_module=dynamic --with-http_ssl_module
/root/nginx-1.15.8/objs
cp nginx /usr/local/nginx/sbin
重新编译完,之前的模块需要再重新拷贝到模块目录,不然启动会报错
cp ngx_http_image_filter_module.so /usr/local/nginx/modules/
修改配置文件
vim nginx.conf
server {
listen 443 ssl;
server_name www.westos.org;
ssl_certificate cert.pem;
ssl_certificate_key cert.pem; ####注意注意:此处和配置文件默认的不同
ssl_session_cache shared:SSL:1m;
ssl_session_timeout 5m;
ssl_ciphers HIGH:!aNULL:!MD5;
ssl_prefer_server_ciphers on;
location / {
root /web;
index index.html index.htm;
}
}
# 可以先不写 与这个https的实验没有关系阿~~~
server {
listen 80;
server_name www.westos.org;
location / {
root /web;
index index.html;
}
}
生成自签名证书
cd /etc/pki/tls/certs
make cert.pem
cn -> shaanxi -> xi'an -> westos -> linux-> server1 ##注意主机名字 -> root@westos.org
cp cert.pem /usr/local/nginx/conf/
mkdir /web
vim /web/index.html
server1.westos.org
nginx -s reload
浏览器访问:ls
确认安全例外
在真机添加解析
在设置里选preference -> Advanced -> Certificates -> View Certificates
可以在里面找到自签名的证书
因为配置文件写的location是/web,因此会默认访问/web下的index.html