- 使用Thumbor创建CDN图片处理服务器
- 写在前面
- 安装
- linux安装
- 启动
- 配置nginx
- 使用
- 进行图片裁剪
- 图片反转
- 图片压缩
因为云服务器的glibc版本普遍较低,最新版的Thumbor安装后需要升级glibc,而升级glibc时间久,危险性大,可能导致服务器直接无法登录,所以参用低版本的Thumbor,目前选用的版本为6.6
安装 linux安装- 先确认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
修改配置文件,避免其他人使用
- 限制来源,只能过滤指定地址的图片
ALLOWED_SOURCES = ['baidu.com','192.168.0.1']
这样便只有百度和192.168.0.1地址下的图片才能使用 - 加密
修改以下配置,即可进行加密
SECURITY_KEY = "123456"
ALLOW_UNSAFE_URL = False
使用时需要使用 thumbor -k 123456 https://baidu.com/test.img
计算图片地址
推荐使用方法1,既方便又确保图片来源
启动
thumbor -p 8888 -c '/etc/thumbor.conf'
一般云服务器不会大开端口的,而且直接使用端口不安全、不美观,所以使用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
}
}
使用
进行图片裁剪
- 首先需要对图片地址进行处理,因为thumbor需要完全的url
window.encodeURIComponent(
"http://www.kaotop.com/file/tupian/20220514/example.jpg"
)
- 在浏览器控制台输出上述命令,就能得到编译后的url
https%3A%2F%2Fgithub.com%2Fthumbor%2Fthumbor%2Fraw%2Fmaster%2Fexample.jpg
- 将得到的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左右,效果已经很明显了
欢迎分享,转载请注明来源:内存溢出
评论列表(0条)