搭建fastfds+nginx
一、下载相关安装包
- libfastcommon-master.zip
wget https://codeload.github.com/happyfish100/libfastcommon/zip/master
mv master libfastcommon-master.zip
- fastdfs-master.zip
wget https://codeload.github.com/happyfish100/fastdfs/zip/master
mv master fastdfs-master.zip
二、安装libfastcommon
unzip libfastcommon-master.zip
cd libfastcommon-master/
./make.sh
./make.sh install
三、安装fastdfs
unzip fastdfs-master.zip
cd fastdfs-master/
./make.sh
./make.sh install
安装完成后,/etc/fdfs目录自动生成
cd /etc/fdfs/
mv client.conf.sample client.conf
mv storage.conf.sample storage.conf
mv tracker.conf.sample tracker.conf
1.配置tracker
mkdir /data/fdfs/tracker#用于存储Tracker的数据文件和日志文件等
vim tracker.conf
port=22122#tarcker的监听端口
base_path=/data/fdfs/tracker #Tracker的数据文件和日志文件路径
store_group=group0#设置组名,要与mod_fastdfs.conf中的group_name的字段名对应
为启动脚本创建软引用
ln -s /usr/bin/fdfs_trackerd /usr/local/bin/
ln -s /usr/bin/stop.sh /usr/local/bin
ln -s /usr/bin/restart.sh /usr/local/bin
启动tracker服务
service fdfs_trackerd start
查看服务监听是否正常,正常情况下是会监听22122端口的
netstat -auntlp | grep fdfs
2.配置storage
mkdir /data/fdfs/storage/ #用于storage存储数据文件和日志等
vim storage.conf
group_name=group0#名字需要和mod_fastdfs.conf中的group_name的字段名对应
port=23000#storage的监听端口
base_path=/data/fdfs/storage/#storage存放数据文件和日志等
store_path0=/data/fdfs/storage/
tracker_server=192.168.209.121:22122#单机不要写127.0.0.1,写内网IP,否则启动报错
为启动脚本创建软引用
ln -s /usr/bin/fdfs_storaged /usr/local/bin/
启动storage服务
service fdfs_storaged start
查看服务监听是否正常,正常情况下是会监听23000端口的
netstat -auntlp | grep fdfs
此时tracker和storage都已启动成功
四、编译nginx
1.下载nginx源码包
wget http://nginx.org/download/nginx-1.9.11.tar.gz
2.下载fastdfs-nginx-module
wget https://github.com/happyfish100/fastdfs-nginx-module/archive/master.zip
3.解压并编译
unzip master.zip#解压fastdfs-nginx-module
tar -xvf nginx-1.9.11.tar.gz#解压nginx源码包
cd nginx-1.9.11/ #进入nginx目录
./configure --prefix=/usr/local/nginx-1.9.11 --add-module=/opt/nginx-fastdfs/fastdfs-nginx-module-master/src --with-http_ssl_module --with-stream --user=nginx --group=nginx #预编译,指定编译路径,添加编译模块并指定路径
make #进行编译
make install #安装
编译完成之后会在你指定的/usr/local/nginx-1.9.11位置出现nginx编译生成的文件
五、配置nginx
1、ln -s /usr/local/nginx-1.9.11/conf/ /etc/nginx#为nginx配置创建软连接,便于寻找修改
2、vim /etc/nginx/nginx.conf #添加配置,以便在conf.d下创建单独的配置文件,便于管理
include conf.d/*.conf; #在最后一个”}”前添加
3、mkdir /etc/nginx/conf.d #创建存放配置文件的目录
4、vim /etc/nginx/conf.d/fastdfs.conf #创建fastdfs的nginx配置文件
server{
listen 8089;
#server_name localhost;
access_log /var/log/nginx/8089.access.log;
error_log /var/log/nginx/8089.error.log;
location ~* /\.(html|htm|jsp|php|js)$ {
deny all;
}
location /group0/M00{
root /data/fdfs/storage;
ngx_fastdfs_module;
}
location = /favicon.ico {
log_not_found off;
access_log off;
}
}
5、因为fastdfs的访问链接是以http://IP:8089/group0/M00/XX/XX/XX.png格式进行访问的,所以我们要创建M00的软连接
ln -s /data/fdfs/storage/data/ /data/fdfs/group0/M00
6、将fastdfs-master的conf 目录中的anti-steal.jpg http.conf mime.types拷贝到/etc/fdfs/目录下
cp anti-steal.jpg http.conf mime.types /etc/fdfs/
7、将fastdfs-nginx-module-master/src下的mod_fastdfs.conf拷贝到/etc/fdfs/并且配置,配置完成后,重启fastdfs服务
cp mod_fastdfs.conf /etc/fdfs/
vim /etc/fdfs/mod_fastdfs.conf
base_path=/data/fdfs/storage/
tracker_server=ip:22122##内网IP
group_name=group0
url_have_group_name = true
[group0]
group_name=group0
storage_server_port=23000
store_path_count=1
store_path0=/data/fdfs/storage
service fdfs_storaged restart
service fdfs_trackerd restart
8、到此nginx基本配置完成,启动nginx
ln -s /usr/local/nginx-1.9.11/sbin/nginx /usr/bin/ #为nginx命令创建一个软连接,便于nginx的启动
nginx #启动nginx服务
netstat -auntlp | grep nginx #查看nginx 端口监听情况
!!!在这里,很有可能会出现一个问题,就是配置没有问题nginx -t可以通过,服务也启动的起来,但是访问nginx就是没有返回,这个时候强烈建议将fastdfs检查一遍,很有可能就是因为fastdfs没有配置好造成的
9、如果访问图片出现400错误,但在配置文件中去掉“ngx_fastdfs_module;”又正常访问但话,是因为fastdfs没配置好,或者fastdfs的mod_fastdfs.conf配置文件中的“url_have_group_name” 字段没有配置好,默认是false,我们需要将其改成true。