coldsmog运维笔记
Linux 中间件部署
升级MySQL至最新版本
Zabbix与Zabbix-agent2部署
Galera-Cluster-MySQL 部署
JDK8 部署
FastDFS 部署
MySQL 主从备搭建
RabbitMQ 部署
Redis 部署
Nginx 部署
Gitlab + Jenkins + Sonarqube 部署
Docker 部署
keepalive的安装
Gitlab-ce 部署
Graalvm 部署
Nacos 部署
Kafka 部署
PostgreSQL 部署
MongoDB 部署
Fizz网关搭建
Vue项目部署(Nginx)
CentOS 运维笔记
centos 添加自定义服务
Linux 系统挂载
MySQL命令行
故障排查
Docker 运维笔记
keepalived 配置笔记
win 编辑EFI
本文档使用 MrDoc 发布
-
+
首页
FastDFS 部署
### FastDFS # 安装规划: 项目 信息 Group Name group1 FastDFS安装主目录 /usr/local/fastdfs-5.0.8 FastDFS work主目录 /usr/local/fastdfs-workhome FastDFS Tracker Server work主目录 /usr/local/fastdfs/tracker FastDFS Storage Server work主目录 /usr/local/fastdfs/storage FastDFS Tracker Server服务端口 22122 FastDFS Tracker Server HTTP 端口 22080 FastDFS Storage Server 服务端口 23000 FastDFS Storage Server HTTP端口 23080 #下载并安装 ``` # 下载 github搜索 LibFastCommon FastDFS fastdfs-nginx-module 这里使用happyfish100的仓库 # 下载链接获取 点进项目 -> release -> 选择版本 -> Win下载zip | Linux下载tar.gz # 下载包 wget https://github.com/happyfish100/libfastcommon/archive/V1.0.41.tar.gz wget https://github.com/happyfish100/fastdfs/archive/V6.03.tar.gz wget https://github.com/happyfish100/fastdfs-nginx-module/archive/V1.22.tar.gz ##解压 LibFastCommon FastDFS tar -zxvf V1.0.41.tar.gz tar -zxvf V6.03.tar.gz tar -zxvf V1.22.tar.gz # 安装流程 进入文件夹 -> 编译 -> 安装 # 查看文件夹 ls cd 目标文件夹 ./make.sh ./make.sh install ``` 采用默认安装的方式安装,安装后的相应文件与目录: A、服务脚本在: ``` /etc/init.d/fdfs_storaged /etc/init.d/fdfs_trackerd # ll /etc/init.d/ | grep fdfs* ``` B、配置文件在(样例配置文件) ``` /etc/fdfs/client.conf.sample /etc/fdfs/storage.conf.sample /etc/fdfs/tracker.conf.sample # ll /etc/fdfs/ ``` C、命令工具在/usr/bin/目录下 3.3.2 配置FastDFS Tracker Server (1) 复制tracker server配置文件模板 ``` # cd /etc/fdfs/ # cp tracker.conf.sample tracker.conf ``` (2) 修改tracker.conf配置 对其中的部分配置项调整如下: ``` base_path=/usr/local/fastdfs-workhome/tracker rotate_error_log = true log_file_keep_days = 30 ``` 3.3.3 配置client (1)复制client配置文件模板 ``` # cd /etc/fdfs # cp client.conf.sample client.conf ``` (2) 修改client配置 对client.conf中的部分配置项调整如下: ``` base_path=/usr/local/fastdfs-workhome/tracker tracker_server=ip:22122 tracker_server=ip:22122 ``` 注意:上面配置项中的tracker_server的两条记录均需要保留在配置文件中。 3.3.4 配置FastDFS Storage Server (1) 复制配置文件模板 ``` # cd /etc/fdfs # cp storage.conf.sample storage.conf ``` (2) 修改storage.conf 对storage.conf中的部分配置项调整如下: ``` base_path=/usr/local/fastdfs-workhome/storage #store_path0=/home/yuqing/fastdfs (注释掉本行) tracker_server=ip地址:22122 use_access_log = true rotate_access_log = true rotate_error_log = true log_file_keep_days = 30 ``` **如果需要配合nginx启动,还需要转移http.conf、mime.types。否则nginx无work进程** ``` cp /usr/local/fastdfs/conf/http.conf http.conf cp /usr/local/fastdfs/conf/mime.types mime.types ``` 4. 服务启停 4.1 启停tracker (1) 启动tracker ``` # service fdfs_trackerd start # ss -lntup|grep 22122 ``` 首次启动tracker会在tracker的work主目录下创建data、logs目录 (2) 停止tracker服务 ``` # service fdfs_trackerd stop # ss -lntup|grep 22122 ``` 4.2 启停storage 重要:启动storage时需要保证当前集群中所有的tracker都处于启动状态。 (1) 启动storage ``` # service fdfs_storaged start # ss -lntup|grep 23000 ``` 首次启动storage server,其会自动在storage主目录下创建data、logs目录 (2) 停止storage ``` # service fdfs_storaged stop # ss -lntup|grep 23000 ``` 4.3 设置FastDFS服务化(开机启动) ``` # vi /etc/rc.d/rc.local ``` 添加以下内容: ``` ## FastDFS Tracker service fdfs_trackerd start service fdfs_storaged start ``` 5. 服务验证 5.1 上传文件 (1) 上传一个测试图片文件到服务器,路径为: /home/usr/test.jpg (2) 上传至FastDFS ``` # /usr/bin/fdfs_upload_file /etc/fdfs/client.conf /home/user/test.jpg ``` 返回文件ID说明上传成功,接下来查看文件状态 ``` # /usr/bin/fdfs_file_info /etc/fdfs/client.conf group1/M00/00/00/Cmho21lJ3ECAPr9TAANoS18-GXE264.jpg ``` 5.2 下载文件 ``` fdfs_download_file /etc/fdfs/client.conf group1/M00/00/00/Cmho11lI7RKAMpJRAANoS18-GXE892.jpg ``` 5.3 删除文件 ``` fdfs_delete_file /etc/fdfs/client.conf group1/M00/00/00/Cmho11lI7RKAMpJRAANoS18-GXE892.jpg ``` #增加HTTP能力 2. 安装规划 项目 信息 nginx安装包主目录 /usr/local/nginx-1.6.3-src nginx安装目录 /usr/local/nginx-1.6.3 storage server的nginx绑定监听端口 80 FastDFS Storage Server work主目录 /usr/local/fastdfs/storage FastDFS Storage Server 服务端口 23000 3、nginx安装 (1) 安装包准备 * 上传相关安装包nginx-1.6.3.tar.gz、fastdfs-nginx-module_v1.16.tar.gz 到目录: /usr/local/nginx-1.6.3-src下。 * 安装包解压 ``` # wget https://nginx.org/download/nginx-1.16.1.tar.gz # wget https://github.com/happyfish100/fastdfs-nginx-module/archive/V1.22.tar.gz # tar -zxvf nginx-1.16.1.tar.gz # tar -zxvf V1.22.tar.gz # mv fastdfs-nginx-module-1.22/ fastdfs-nginx-module ``` (2) 依赖程序包安装 安装zlib、pcre程序 ``` # yum install -y zlib zlib-devel # yum install -y pcre pcre-devel # yum install gd-devel ``` (3) nginx安装 重要:首先修改fastdfs-nginx-module/src目录下的config文件,去除CORE_INCS配置项中相关路径中的/local,定位到/usr/include。 编译安装nginx,注意--prefix指定安装目录: ``` # cd /usr/local/nginx-1.6.3-src/nginx # ./configure --prefix=/usr/local/nginx --user=root --with-http_image_filter_module --with-http_stub_status_module --add-module=../fastdfs-nginx-module/src # make # make install ``` (4) nginx基本配置 ``` # cd /usr/local/nginx-1.6.3/conf # vim nginx.conf # 涉及的主要修改配置项如下: user root; worker_processes 1; worker_rlimit_nofile 51200; events { use epoll; worker_connections 51200; } http { include mime.types; default_type application/octet-stream; log_format main '$remote_addr - $remote_user [$time_local] "$request" ' '$status $body_bytes_sent "$http_referer" ' '"$http_user_agent" "$http_x_forwarded_for"'; proxy_set_header Host $Host; proxy_set_header X-Real_Ip $remote_addr; proxy_set_header X-Forwarded-For $proxy_add_x_forwarded_for; real_ip_header X-Forwarded-For; sendfile on; keepalive_timeout 65; server { listen 80; server_name _; location /NginxStatus { allow 10.0.0.0/8; allow 172.0.0.0/8; deny all; stub_status on; access_log off; } location / { root html; index index.html index.htm; } ``` (5) nginx服务验证 * 启动nginx ``` # cd /usr/local/nginx-1.6.3/sbin # ./nginx # ps -ef | grep nginx | grep -v greproot 13099 1 0 14:59 ? 00:00:00 nginx: master process ./nginx ``` 如果启动异常,可以查看nginx的logs目录下的error.log日志. * 通过状态监控页面验证 浏览器访问 http://ip地址/NginxStatus 补充nginx常用命令: ``` ./nginx -t 检查配置文件 ./nginx -s quit:此方式停止步骤是待nginx进程处理任务完毕进行停止。 ./nginx -s stop:此方式相当于先查出nginx进程id再使用kill命令强制杀掉进程。 # 当 ngin x的配置文件 nginx.conf 修改后,要想让配置生效需要重启 nginx,使用-s reload不用先停止 ngin x再启动 nginx 即可将配置信息在 nginx 中生效,如下: ./nginx -s reload ``` (6) 加入到自启动程序 ``` # vi /etc/rc.d/rc.local ``` 添加以下内容: ``` ## nginx /usr/local/nginx-1.6.3/sbin/nginx ``` Nginx基础服务安装完成. 4. 配置fastdfs-nginx-module (1) 将fastdfs-nginx-module/src目录下的mod_fastdfs.conf复制到/etc/fdfs目录下。 ``` # cd /usr/local/fastdfs-5.0.8/FastDFS/conf # cp anti-steal.jpg http.conf mime.types /etc/fdfs/ # cp /usr/local/nginx-1.6.3-src/fastdfs-nginx-module/src/mod_fastdfs.conf /etc/fdfs/ ``` (2) 修改etc/fdfs/mod_fastdfs.conf中的配置 主要修改的配置项如下: ``` # the base path to store log files base_path=/usr/local/fastdfs-workhome/storage # FastDFS tracker_server can ocur more than once, and tracker_server format is # "host:port", host can be hostname or ip address # valid only when load_fdfs_parameters_from_tracker is true tracker_server=ip地址:22122 tracker_server=ip地址:22122 # if the url / uri including the group name # set to false when uri like /M00/00/00/xxx # set to true when uri like ${group_name}/M00/00/00/xxx, such as group1/M00/xxx # default value is false url_have_group_name = true # set the group count # set to none zero to support multi-group # set to 0 for single group only # groups settings section as [group1], [group2], ..., [groupN] # default value is 0 # since v1.14 group_count = 1 # group settings for group #1 # since v1.14 # when support multi-group, uncomment following section [group1] group_name=group1 storage_server_port=23000 store_path_count=1 store_path0=/usr/local/fastdfs/storage ``` (3) 修改nginx配置 在http/server节点中添加如下内容 ``` location /group1/M00{ root /usr/local/fastdfs/storage/; ngx_fastdfs_module; } ``` (4)服务验证 * 重新启动nginx或者reload配置文件使nginx加载最新的配置。 ``` sbin/nginx -t sbin/nginx -s reload ps -ef | grep nginx # 看到nginx的master和work进程都在才行 # 无法访问则 ss -anptu | grep nginx 检查nginx是否监听80端口,防火墙是否拦截80端口 ``` ### 5. 加入动态缩略图功能 图片服务器提供动态的图片缩放,不在采用提前上传各个尺寸的图片的方式。这样既可以节省存储空间,也可以增强功能的灵活性(避免尺寸需求变更,需要重新上传全部图片)。 图片服务器采用nginx的扩展模块——http_image_filter_module实现图片的动态缩放,因为 http_image_filter_module是nginx自身提供的集成图片处理模块,支持nginx-0.7.54以后的版本,可以实现实时缩放图片,旋转图片,验证图片有效性以及获取图片宽高以及图片类型信息。对于图片服务器来说,访问顺序是cdn->nginx->图片服务器,cdn会回源访问nginx,nginx动态生成指定分辨率的图片后,下次用户再访问此分辨率图片时,cdn上已经有了缓存,会大大减少并发动态生成缩略图的访问量。 在步骤4中,我们已经安装了动态缩略图的相关module——http_image_filter_module。所以本小节只需要修改nginx配置即可。 (1) 修改nginx配置 ``` # cd /usr/local/nginx/conf # vim nginx.conf ``` 在http> server节点下相关配置信息如下 ``` location ~ group(\d+)/M00/(.+)_(\d+)x(\d+)\.(jpg|gif|png){ # root /usr/local/fastdfs-workhome/storage/data; ngx_fastdfs_module; set $w $3; set $h $4; if ($w != "0") { rewrite group(\d+)/M00(.+)_(\d+)x(\d+)\.(jpg|gif|png)$ group$1/M00$2.jpg break; } image_filter resize $w $h; image_filter_buffer 2M; } ``` 重新刷新nginix服务。 (2) 服务验证 浏览器中访问url已验证缩放功能。 http://ip/group1/M00/00/00/Cmho21lJ3ECAPr9TAANoS18-GXE264_100x50.jpg
寒烟濡雨
2021年6月3日 00:50
转发文档
收藏文档
上一篇
下一篇
手机扫码
复制链接
手机扫一扫转发分享
复制链接
关于 MrDoc
觅思文档MrDoc
是
州的先生
开发并开源的在线文档系统,其适合作为个人和小型团队的云笔记、文档和知识库管理工具。
如果觅思文档给你或你的团队带来了帮助,欢迎对作者进行一些打赏捐助,这将有力支持作者持续投入精力更新和维护觅思文档,感谢你的捐助!
>>>捐助鸣谢列表
微信
支付宝
QQ
PayPal
Markdown文件
分享
链接
类型
密码
更新密码