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
win 安装 openclaw
本站点使用 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
转发文档
收藏文档
上一篇
下一篇
手机扫码
复制链接
手机扫一扫转发分享
复制链接
Markdown文件
PDF文档(打印)
分享
链接
类型
密码
更新密码