使用Thumbor创建CDN图片处理服务器

使用Thumbor创建CDN图片处理服务器,第1张

使用Thumbor创建CDN图片处理服务器
  • 使用Thumbor创建CDN图片处理服务器
    • 写在前面
    • 安装
      • linux安装
    • 启动
    • 配置nginx
    • 使用
      • 进行图片裁剪
      • 图片反转
      • 图片压缩

使用Thumbor创建CDN图片处理服务器 写在前面

因为云服务器的glibc版本普遍较低,最新版的Thumbor安装后需要升级glibc,而升级glibc时间久,危险性大,可能导致服务器直接无法登录,所以参用低版本的Thumbor,目前选用的版本为6.6

安装 linux安装
  1. 先确认python版本,确保python版本为2.7
python --version


再确保pip版本

pip --version


如果 pip版本不对或未安装,那么使用下述方法进行安装

curl https://bootstrap.pypa.io/pip/2.7/get-pip.py -o get-pip.py
python get-pip.py

正式安装thumbor
pip install thumbor==6.7.0

启动

简单启动
thumbor 即可启动,默认端口8888,默认配置在python库中
正式启动
生成配置文件
thumbor-config -> /etc/thumbor.conf
修改配置文件,避免其他人使用

  1. 限制来源,只能过滤指定地址的图片
    ALLOWED_SOURCES = ['baidu.com','192.168.0.1']
    这样便只有百度和192.168.0.1地址下的图片才能使用
  2. 加密
    修改以下配置,即可进行加密
SECURITY_KEY = "123456"
ALLOW_UNSAFE_URL = False

使用时需要使用 thumbor -k 123456 https://baidu.com/test.img 计算图片地址

推荐使用方法1,既方便又确保图片来源
启动
thumbor -p 8888 -c '/etc/thumbor.conf'

配置nginx

一般云服务器不会大开端口的,而且直接使用端口不安全、不美观,所以使用nginx进行反向代理,并配置为https

server {
        listen 443 ssl;                                    
	    server_name your server;
		charset utf-8;                                                                      client_max_body_size 1024M;
		ssl_certificate  /yourpath/fullchain.cer;
		ssl_certificate_key /yourpath/domain.key;  		
		ssl_ciphers ECDHE-RSA-AES128-GCM-SHA256:ECDHE:ECDH:AES:HIGH:!NULL:!aNULL:!MD5:!ADH:!RC4;                             
		ssl_protocols TLSv1 TLSv1.1 TLSv1.2;
	    ssl_prefer_server_ciphers on;                                              
	    send_timeout 60s; 

    location / {
            proxy_pass  http://127.0.0.1:8888;
            proxy_redirect off;
            set $fixed_destination $http_destination;
            if ( $http_destination ~* ^https(.*)$ ){
                set $fixed_destination http;
            }
                ### Set headers ####
                proxy_set_header Host $http_host:$proxy_port;
                proxy_set_header X-Real-IP $remote_addr;
                proxy_set_header X-Forwarded-For
                $proxy_add_x_forwarded_for;
                proxy_set_header X-Forwarded-Proto https;
                proxy_set_header Destination $fixed_destination
        }
}
使用 进行图片裁剪
  1. 首先需要对图片地址进行处理,因为thumbor需要完全的url
window.encodeURIComponent(
  "http://www.kaotop.com/file/tupian/20220514/example.jpg"
)
  1. 在浏览器控制台输出上述命令,就能得到编译后的url
https%3A%2F%2Fgithub.com%2Fthumbor%2Fthumbor%2Fraw%2Fmaster%2Fexample.jpg
  1. 将得到的url与下面的地址进行拼接,即可得到裁剪后的图片,裁剪的大小由w(宽)xh(高)控制
    http://localhost:8888/unsafe/wxh/
    完整地址:http://localhost:8888/unsafe/300x200/https%3A%2F%2Fgithub.com%2Fthumbor%2Fthumbor%2Fraw%2Fmaster%2Fexample.jpg
图片反转

将上面的像素大小改为负数,即可进行反转 *** 作,w为负是左右反转,h为负是上下反转,都为负则是上下左右都反转
http://localhost:8888/unsafe/-300x-200/https%3A%2F%2Fgithub.com%2Fthumbor%2Fthumbor%2Fraw%2Fmaster%2Fexample.jpg

图片压缩

使用filters过滤器进行图片压缩
max_bytes(number-of-bytes)
number-of-bytes单位是字节

http://localhost:8888/unsafe/-300x-200/filters:max_bytes(7500)/https%3A%2F%2Fgithub.com%2Fthumbor%2Fthumbor%2Fraw%2Fmaster%2Fexample.jpg
确实会进行压缩,但并不是压缩到指定大小,官方说的是指定大小,实际测试中并没有压缩到指定大小,测试使用的2M的图片,压缩到了500kb左右,效果已经很明显了

欢迎分享,转载请注明来源:内存溢出

原文地址: http://outofmemory.cn/langs/917020.html

(0)
打赏 微信扫一扫 微信扫一扫 支付宝扫一扫 支付宝扫一扫
上一篇 2022-05-16
下一篇 2022-05-16

发表评论

登录后才能评论

评论列表(0条)

保存