四.安装Nginx和fastdfs-nginx-module模块
- 下载Nginx安装包
wget http://nginx.org/download/nginx-1.14.2.tar.gz
- 下载fastdfs-nginx-module安装包
wget https://github.com/happyfish100/fastdfs-nginx-module/archive/V1.20.tar.gz
- 解压nginx
tar -zxvf nginx-1.14.2.tar.gz
- 解压fastdfs-nginx-module
tar -xvf V1.20.tar.gz
- 进入nginx目录
cd nginx-1.14.2
- gcc 安装
安装 nginx 需要先将官网下载的源码进行编译,编译依赖 gcc 环境,如果没有 gcc 环境,则需要安装。
yum install gcc-c++
- PCRE pcre-devel 安装
PCRE(Perl Compatible Regular Expressions) 是一个Perl库,包括 perl 兼容的正则表达式库。nginx 的 http 模块使用 pcre 来解析正则表达式,所以需要linux 上安装 pcre 库,pcre-devel 是使用 pcre 开发的一个二次开发库。nginx也需要此库。
yum install -y pcre pcre-devel
- zlib 安装
zlib 库提供了很多种压缩和解压缩的方式, nginx 使用 zlib 对 http 包的内容进行 gzip ,所以需要在 Centos 上安装 zlib 库。
yum install -y zlib zlib-devel
- OpenSSL 安装
OpenSSL 是一个强大的安全套接字层密码库,囊括主要的密码算法、常用的密钥和证书封装管理功能及 SSL 协议,并提供丰富的应用程序供测试或其它目的使用。
nginx 不仅支持 http 协议,还支持 https(即在ssl协议上传输http),所以需要在 Centos 安装 OpenSSL 库。
yum -y install openssl openssl-devel
- 配置,并加载fastdfs-nginx-module模块
./configure --prefix=/usr/local/nginx-fast --add-module=/home/nginx-linux/fastdfs-nginx-module-1.
- 编译安装
make
make时出现问题请参考:https://chonglian.blog.csdn.net/article/details/122754262?spm=1001.2014.3001.5502
make install
nginx启动,停止,重启命令
#上方nginx的安装目录 cd /usr/local/nginx-fast/sbin/ #启动 ./nginx #此方式相当于先查出nginx进程id再使用kill命令强制杀掉进程 ./nginx -s stop #此方式停止步骤是待nginx进程处理任务完毕进行停止 ./nginx -s quit #重启 ./nginx -s reload
配置Nginx和fastdfs-nginx-module模块
- 打开mod-fastdfs.conf所在位置拷贝到/etc/fdfs文件目录下
cd /home/nginx-linux/fastdfs-nginx-module-1.20/src/
cp mod_fastdfs.conf /etc/fdfs/
- 进入/etc/fdfs修改mod-fastdfs.conf
#基础路径,确保文件夹存在 base_path=/home/fastdfs/nginx_mod #tracker的地址 tracker_server=xx.xxx.xxx.xxx:22122 #url是否包含group名称 url_have_group_name=true #需要和storage配置的相同 storage_server_port=23000 #存储路径个数,需要和store_path个数匹配 store_path_count=1 #文件存储的位置 store_path0=/home/fastdfs/storage/files
- base_path 创建基础目录
mkdir /home/fastdfs/nginx_mod
- 配置nginx,80端口server增加location
cd /usr/local/nginx-fast/conf/
location ~ /group[1-9]/M0[0-9] { ngx_fastdfs_module; }
上传下载测试
完成上面诸多步骤后,我们的fastDFS就安装完毕了下面我们进行上传下载删除操作测试。
- 启动nginx
/usr/local/nginx-fast/sbin/nginx -c /usr/local/nginx-fast/conf/nginx.conf
通过命令检查我们nginx是否启动成功(两个进程)
ps -ef|grep nginx
上传文件
- 进入/etc/fdfs目录,有cp命令拷贝client.conf.sample,删除.sample后缀作为正式文件。
- 修改client.conf相关配置
#基础文件路径需要提前创建 base_path=/home/fastdfs/client #tracker服务器IP地址和端口号 tracker_server=xx.xxx.xxx.xxx:22122 #tracker服务器的http端口号,必须和tracker的设置对应起来 http.tracker_server_port=80
- 创建基础路径文件夹
mkdir /home/fastdfs/client
- 重启 trackerd 与 storage
fdfs_trackerd /etc/fdfs/tracker.conf restart
fdfs_storaged /etc/fdfs/storage.conf restart
重启完记得查看进程有没有启动成功
ps -ef|grep fdfs
- 回到
~目录
创建要上传的文件aa.txt,内容为测试文件
cd ~
vim aa.txt
- 上传
fdfs_test /etc/fdfs/client.conf upload aa.txt
上传成功后这里面有几处重要信息
#group_name:组名 ip_addr:ip地址 port:端口号 group_name=group1, ip_addr=xx.xxx.xxx.xx, port=23000 storage_upload_by_filename #remote_filename:远程文件名称(决定我们的文件存放在哪个磁盘目录下) M00:表示第一个磁盘路径=/home/fastdfs/storage/files/data group_name=group1, remote_filename=M00/00/00/rBOAlmH2mmqANl6tAAAADi991u4762.txt source ip address: 172.19.128.150 file timestamp=2022-01-30 22:02:18 file size=14 file crc32=796776174 example file url: http://39.103.137.90/group1/M00/00/00/rBOAlmH2mmqANl6tAAAADi991u4762.txt storage_upload_slave_by_filename group_name=group1, remote_filename=M00/00/00/rBOAlmH2mmqANl6tAAAADi991u4762_big.txt source ip address: 172.19.128.150 file timestamp=2022-01-30 22:02:18 file size=14 file crc32=796776174 example file url: http://39.103.137.90/group1/M00/00/00/rBOAlmH2mmqANl6tAAAADi991u4762_big.txt