1、nginx上部署fastDFS模块
第一步,准备工作。安装好nginx并下载fastdfs-nginx-module。
第二步,进入到nginx的安装目录,输入命令
#./configue --add-module=fastdfs-nginx-module下src目录
./configue --add-module=/home/tx/package/fastdfs-nginx-module/src
第三步,直接make,这里很有可能会报错
fatal error :fdfs_define.h:No such file or directory
fatal error :common_define.h:No such file or directory
首先去makefile中添加这个头文件的路径,注意要修改的makefile在objs目录下,找到“-I”,在下面添加头文件路径
第四步,sudo make install
这时会发现有两个nginx
但是启动nginx发现没有worker工作进程,查看nginx中错误log日志,发现在etc/fdfs下没有找到“mod_fastdfs.conf”。找到该文件。并把文件复制到etc/fdfs目录下并修改
启动nginx还是发现没有worker工作进程,查看nginx中错误log日志,发现在etc/fdfs下没有找到“http.conf”。
从fastDFS上的安装包中conf下找到http.conf,将它拷贝到etc/fdfs
从nginx的安装包中conf找到mime.type,将它拷贝到etc/fdfs
万事俱备。这时我们再启动nginx
2、修改nginx上的配置文件,添加location
loaction /group1/M00 { root /home/tx/fastDFS/storage/data; ngx_fastdfs_module ; }
大功告成,重启nginx,通过url访问storage上的文件
在实际开发过程中,分布式文件系统只有一个存储结点是不太可能的,大多数情况下会出现fastDFS集群,当有多个storage时,又该如何通过http访问到集群中的某个storage上的某个文件,这时可以通过存储节点的反向代理精确访问。
比如我们要访问一个url http://192.168.31.113/group1/M00/00/00/wKgfbViy2Z2AJ-FTAaM3Asg3Z0782.mp3 客户端的请求发送给了nginx反向代理服务器 ,反向代理服务器不处理请求,转发给存储节点上的nginx服务器 。
反向代理服务器的配置
server{ location /group1/M00 { proxy_pass http://group1.com; } location /group2/M00 { proxy_pass http://group2.com } loctaion /group3/M00 { proxy_pass http://group3.com } } upstream group1.com { server 192.168.31.110; server 192.168.31.111; } upstream group2.com { server 192.168.31.112; server 192.168.31.113; } upstream group3.com { server 192.168.31.114; server 192.168.31.115; }
在某一台storage上的nginx配置
location /group1/M00 { root #storage配置文件中storage_path0中路径+data ngx_fastdfs_module; }