什么是FastDFS
当服务启动的时候,服务存储器(Storage群)会告诉服务跟踪服务器(Tracker群)自己的状态,ip,端口等,跟踪服务器会记录下来,当用户(client)发送请求的时候,会先访问跟踪服务器,跟踪服务器会监控服务存储器,根据自己的算法找出一个状态最佳的服务存储器返回服务存储器的信息,用户拿到信息后再次发送请求向储存服务器,请求要找的图片
1、安装c语言环境
yum -y install gcc
2、上传相关资料和文件
rz
unzip libfastcommon-master.zip
cd libfastcommon-master
./make.sh
./make.sh install
3、安装FastDFS
tar -zxvf FastDFS_v5.08.tar.gz
cd FastDFS
./make.sh
./make.sh install
4、配置并启动tracker服务
配置:
cp /etc/fdfs/tracker.conf.sample /etc/fdfs/tracker.conf
vim /etc/fdfs/tracker.conf:
base_path=/powershop/tracker #配置跟踪服务器存放的位置
mkdir -p /powershop/tracker #此时还没有文件创建文件
启动:
service fdfs_trackerd start
设置开机自启:
chkconfig fdfs_trackerd on
5、配置并启动storage服务
配置:
cp /etc/fdfs/storage.conf.sample /etc/fdfs/storage.conf
vim /etc/fdfs/storage.conf:
base_path=/powershop/storage #配置存储服务器的位置
store_path0=/powershop/storage #配置存储服务器的位置
tracker_server=192.168.116.133:22122 #写自己虚拟机的地址:端口号22122
mkdir -p /powershop/storage #此时还没有文件创建文件
启动:
service fdfs_storaged start
设置开机自启:
chkconfig fdfs_storaged on
为什么要安装fastdfs-nginx-module
原因:当并发量特别大的时候,第一个请求上传文件后,存储服务器集群整在做备份的时候,另一个请求过来访问的是存储服务器的备份服务器,但是现在备份服务器还没有这个文件,那么就找不到这个文件,fastdfs-nginx-module插件就是解决这个问题的。
1、解压
tar -zxvf fastdfs-nginx-module_v1.16.tar.gz
2、修改config
cd fastdfs-nginx-module/src/
vim com.powershop.config:
:%s+/usr/local/+/usr/+g #修改将/usr/local/批量换成/usr/
3、配置fastdfs-nginx-module与FastDFS关联
cp /usr/upload/fastdfs-nginx-module/src/mod_fastdfs.conf /etc/fdfs/
vim /etc/fdfs/mod_fastdfs.conf:
connect_timeout=10
tracker_server=192.168.204.158:22122 #配置本机的ip地址
url_have_group_name=true
store_path0=/powershop/storage
cd /usr/upload/FastDFS/conf/
cp http.conf mime.types /etc/fdfs/
1、安装nginx
yum -y install gcc pcre pcre-devel zlib zlib-devel openssl openssl-devel
tar -zxvf nginx-1.10.0.tar.gz
cd nginx-1.10.0
./configure --prefix=/usr/local/nginx --add-module=/usr/upload/fastdfs-nginx-module/src
make && make install
2、配置动静分离
vim /usr/local/nginx/conf/nginx.conf:
server{
listen 80;
server_name localhost;
location ~/group([0-9])/{
ngx_fastdfs_module;
}
}
3、配置nginx开机自启动
vim /lib/systemd/system/nginx.service:
[Unit]
Description=nginx
After=network.target
[Service]
Type=forking
ExecStart=/usr/local/nginx/sbin/nginx
ExecReload=/usr/local/nginx/sbin/nginx -s reload
ExecStop=/usr/local/nginx/sbin/nginx -s stop
PrivateTmp=true
[Install]
WantedBy=multi-user.target
systemctl daemon-reload #重新加载服务配置
systemctl start nginx.service #启动服务
systemctl enable nginx.service #设置为开机启动