ngx-fastdfs分布式图片实时动态压缩
ngx-fastdfs 是 nginx + lua +fastdfs 实现分布式图片实时动态压缩。
install
进入docker目录 docker build -t fastdfs:dev .
使用
docker -idt -p 80:80 fastdfs:dev /bin/bash 进入容器执行 /etc/rc.local
测试
进入容器执行test目录下的./test.sh或者直接执行下面脚本 fdfs_test /etc/fdfs/client.conf upload /home/steven/01.jpg ... group_name=group1, ip_addr=192.168.1.181, port=23000 storage_upload_by_filename group_name=group1, remote_filename=M00/00/00/wKgdhFTV0ZmAP3AZAPk-Io7D4w8580.jpg ... example file url: http://192.168.1.181/group1/M00/00/00/wKgdhFTV0ZmAP3AZAPk-Io7D4w8580.jpg storage_upload_slave_by_filename group_name=group1, remote_filename=M00/00/00/wKgdhFTV0ZmAP3AZAPk-Io7D4w8580_big.jpg ... example file url: http://192.168.1.181/group1/M00/00/00/wKgdhFTV0ZmAP3AZAPk-Io7D4w8580_big.jpg
php调用
首先进入php_client ./configure --with-php-config=/usr/local/php/bin/php-config make&&make install 在php.ini里添加 extension=fastdfs_client.so [fastdfs_client] fastdfs_client.base_path = /home/fastdfs/fastdfs fastdfs_client.connect_timeout = 2 fastdfs_client.network_timeout = 60 fastdfs_client.log_level = info fastdfs_client.log_filename = fastdfs_client.tracker_group_count = 1 fastdfs_client.tracker_group0 = /etc/fdfs/client.conf fastdfs_client.use_connection_pool = true fastdfs_client.connection_pool_max_idle_time = 3600 根据自己的情况做相应的修改 重启php-fpm 执行test目录下的fastdfs.php就可以看到效果了
使用效果
自动压缩
自动压缩采用减少图片质量来达到减小图片体积的效果 使用方法是把nginx里的nginxauto.conf替换原有的或者自己按着该文件修改 把lua里的thumbnailauto.lua文件替换原有的或者自己按着该文件修改 注意:fastdfs的storage的配置/etc/fdfs/storage.conf中run_by_group和run_by_user,最好跟nginx的用户组配置一样
项目地址
github地址:https://github.com/qieangel2013/ngx-fastdfs 欢迎star
评论