搭建环境准备: Traker: 192.168.124.84 Storage: 192.168.124.155

nginx(及其依赖包)+fastDFS(及其依赖包)

#   在Traker上上传一系列包在/usr/local/src下








#  在Storage上上传一系列包到/usr/local/src下

一、在Tracker上配置 关闭防火墙 systemctl stop firewalld setenforce 0

1.安装libfastcommon

#  进到/usr/local/src下
cd /usr/local/src

#  解压
tar zxvf libfastcommon-1.0.35.tar.gz -C /data/server


#  进到目标文件目录下
cd /data/server/libfastcommon-1.0.35/

#  编译安装
    
    *  ./make.sh

这里会显示报错 ./make.sh: line 14: gcc: command not found ./make.sh: line 15: ./a.out: No such file or directory cc -Wall -D_FILE_OFFSET_BITS=64 -D_GNU_SOURCE -g -O3 -c -o hash.o hash.c make: cc: Command not found make: *** [hash.o] Error 127

解决方法: yum install -y gcc*(编译时需要gcc环境)

* ./make.sh


* ./make.sh install


#  添加环境变量
vim /etc/profile

    在末行添加
    export LD_LIBRARY_PATH=/usr/lib64/


#  使环境变量生效
source /etc/profile

#  创建软链接
ln -s /usr/lib64/libfastcommon.so /usr/local/lib/libfastcommon.so

2.安装libevent

#  进到/usr/local/src目录下
cd /usr/local/src

#  解压
tar zxvf libevent-2.0.20-stable.tar.gz -C /data/server


#  进到目标文件目录
cd /data/server/libevent-2.0.20-stable

#  编译安装

    *  ./configure --prefix=/data/server
    

    *   make && make install
    

#创建软链接
ln -s /usr/local/lib/libevent-2.0.so.5 /usr/lib/libevent-2.0.so.5
ln -s /usr/local/lib/libevent-2.0.so.5 /usr/lib64/libevent-2.0.so.5

3.安装tracker

#创建目录
mkdir -p /fdfs/tracker

#  进到 /usr/local/src目录下
cd /usr/local/src

#  解压
tar zxvf FastDFS_v5.08.tar.gz -C /data/server


#  进到目标文件目录
cd /data/server/FastDFS

#  编译安装

    *  ./make.sh
    

    *  ./make.sh install

4.配置文件 vim /data/server/FastDFS/conf/tracker.conf

修改如下内容
base_path=/fdfs/tracker   #设置tracker的数据文件和日志目录
max_connections=300      #最大连接数
work_threads=1            #工作线程数,最好和cpu核数相同

store_lookup=0              #0为轮询模式

http.server_port=8080     #设置http端口号  

5.启动tracker cd /data/server/FastDFS/tracker fdfs_trackerd /data/server/FastDFS/conf/tracker.conf

6.查看是否启动成功 cat /fdfs/tracker/logs/trackerd.log

++++++++++++++++++++++++++++++++++++++++++++

以下内容在在操作完Storage的第1步到第18步之后再操作

7.创建缓存目录 mkdir -p /var/cache/nginx/proxy_cache

8.安装nginx及其插件

#  回到/usr/local/src下
cd /usr/local/src

#  解压这四个包
tar -zxvf nginx-1.11.5.tar.gz -C /data/server


tar zxvf fastdfs-nginx-module_v1.16.tar.gz -C /data/server


   tar zxvf pcre-8.34.tar.gz -C /data/server


tar zxvf zlib-1.2.8.tar.gz -C /data/server


#  进到nginx目标文件目录
cd /data/server/nginx-1.11.5/

#  编译安装

    *  ./configure --prefix=/data/server/nginx --add-module=/data/server/fastdfs-nginx-module/src/  --with-pcre=/data/server/pcre-8.34/ --with-zlib=/data/server/zlib-1.2.8
    

    *   make && make install

9.配置nginx文件 vim /data/server/nginx/conf/nginx.conf

添加补充下面内容 http { server_names_hash_bucket_size 128; client_header_buffer_size 32k; large_client_header_buffers 4 32k; client_max_body_size 300m; 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"'; access_log /data/server/nginx/logs/access.log main; #写自己的日志路径

sendfile on; #tcp_nopush on; keepalive_timeout 65;

gzip on; #注释去掉 proxy_redirect off; proxy_set_header Host $http_host; proxy_set_header X-Real-IP $remote_addr; proxy_set_header X-Forwarded-For $proxy_add_x_forwarded_for; proxy_connect_timeout 90; proxy_send_timeout 90; proxy_read_timeout 90; proxy_buffer_size 16k; proxy_buffers 4 64k; proxy_busy_buffers_size 128k; proxy_temp_file_write_size 128k; #设置缓存存储路径、存储方式、分配内存大小、磁盘最大空间、缓存期限 proxy_cache_path /var/cache/nginx/proxy_cache levels=1:2 keys_zone=http-cache:500m max_size=10g inactive=30d; proxy_temp_path /var/cache/nginx/proxy_cache/tmp;

#设置head的服务器 upstream fdfs_head { server 192.168.124.155:8080 fail_timeout=30s; # storage的ip }

#设置other的服务器 upstream fdfs_other { server 192.168.124.155:8080 fail_timeout=30s; # storage的ip }

server { listen 8888; server_name localhost;

#设置head的负载均衡参数 location /head/M00 { proxy_next_upstream http_502 http_504 error timeout invalid_header; proxy_cache http-cache; proxy_cache_valid 200 304 12h; proxy_cache_key $uri$is_args$args; proxy_pass http://fdfs_head; expires 30d; }

#设置other的负载均衡参数 location /other/M00 { proxy_next_upstream http_502 http_504 error timeout invalid_header; proxy_cache http-cache; proxy_cache_valid 200 304 12h; proxy_cache_key $uri$is_args$args; proxy_pass http://fdfs_other; expires 30d; }

#此location模块要与server模块对齐 location ~ /purge(/.*) { allow 127.0.0.1; allow 192.168.124.0/24; #改成自己的网段 deny all; proxy_cache_purge http-cache $1$is_args$args; }

+++++++++++++++++++++++++++++++++++++++++

10.修改client.conf文件 vim /data/server/FastDFS/conf/client.conf

修改如下内容:
base_path=/fdfs/tracker                        #日志存放路径
tracker_server=192.168.124.84:22122
http.tracker_server_port=8080              #tracker服务器的http端口号

+++++++++++++++++++++++++++++++ 去storage上操作第19步 +++++++++++++++++++++++++++++++

11.运行nginx cd /data/server/nginx/sbin ./nginx

访问网页测试一下nginx是否搭好

12.上传图片

#  先上传一张图片到Moba上


#  fdfs_upload_file /data/server/FastDFS/conf/client.conf  /root/a.jpg    #  路径写全
   得到返回值
    head/M00/00/00/wKh8m11WVYOAQKRwAAGWPojC1gk461.jpg


#  在浏览器上访问
http://192.168.124.155:8080/head/M00/00/00/wKh8m11WVYOAQKRwAAGWPojC1gk461.jpg


#  再上传一个图片

#   fdfs_upload_file /data/server/FastDFS/conf/client.conf  /root/b.jpg    #  路径写全
   得到返回值
   other/M00/00/00/wKh8m11WVguAbtNMAAKFVWAT42o693.jpg


#  在浏览器上访问
http://192.168.124.155:8080/other/M00/00/00/wKh8m11WVguAbtNMAAKFVWAT42o693.jpg


#  再上传的时候就会  一个上传到head  一个上传到other


轮询模式实现

+++++++++++++++++++++++++++++++++++++++++ 去storage上操作第30步(检测数据是否存储成功) +++++++++++++++++++++++++++++++++++++++++

二、在Storage上配置 关闭防火墙 systemctl stop firewalld setenforce 0

1.安装libfastcommon

#  进到/usr/local/src下
cd /usr/local/src

#  解压
tar zxvf libfastcommon-1.0.35.tar.gz -C /data/server


#  进到目标文件目录下
cd /data/server/libfastcommon-1.0.35/

#  编译安装
    
    *  ./make.sh

这里会显示报错 ./make.sh: line 14: gcc: command not found ./make.sh: line 15: ./a.out: No such file or directory cc -Wall -D_FILE_OFFSET_BITS=64 -D_GNU_SOURCE -g -O3 -c -o hash.o hash.c make: cc: Command not found make: *** [hash.o] Error 127

解决方法: yum install -y gcc*(编译时需要gcc环境)

* ./make.sh


* ./make.sh install


#  添加环境变量
vim /etc/profile

    在末行添加
    export LD_LIBRARY_PATH=/usr/lib64/


#  使环境变量生效
source /etc/profile

#  创建软链接
ln -s /usr/lib64/libfastcommon.so /usr/local/lib/libfastcommon.so

2.安装libevent

#  进到/usr/local/src目录下
cd /usr/local/src

#  解压
tar zxvf libevent-2.0.20-stable.tar.gz -C /data/server


#  进到目标文件目录
cd /data/server/libevent-2.0.20-stable

#  编译安装

    *  ./configure --prefix=/data/server
    

    *   make && make install
    

#创建软链接
ln -s /usr/local/lib/libevent-2.0.so.5 /usr/lib/libevent-2.0.so.5
ln -s /usr/local/lib/libevent-2.0.so.5 /usr/lib64/libevent-2.0.so.5

3.安装storage

#  创建对应存储目录
mkdir -p /fdfs/tracker        #tracker目录
mkdir -p /fdfs/head/data   #存放头像文件
mkdir -p /fdfs/other/data   #存放其他文件
mkdir -p /fdfs/storage       #storage数据节点

#  解压
tar zxvf FastDFS_v5.08.tar.gz -C /data/server


#  进到目标文件目录
cd /data/server/FastDFS

#  编译安装

    *  ./make.sh
    

    *  ./make.sh install

4.配置文件 vim /data/server/FastDFS/conf/storage.conf

修改以下内容 disabled=false #启用配置文件 max_connections=300 #最大连接数 work_threads=1 #工作线程数,最好和cpu核数相同 group_name=head #组名, port=23000 #设置storage的端口号 base_path=/fdfs/storage #设置storage的日志目录(事先创建好的那个) store_path_count=1 #存储路径个数,需要和store_path个数匹配 store_path0=/fdfs/head #存储路径 tracker_server=192.168.124.84:22122 #tracker服务器的IP地址和端口号 http.server_port=8080 #设置http端口号

5.运行storage cd /data/server/FastDFS/storage fdfs_storaged /data/server/FastDFS/conf/storage.conf

6.确认是否运行成功 cat /fdfs/storage/logs/storaged.log

7.查看存储目录 cd /fdfs/head/data ls

8.安装nginx及其插件

#  回到/usr/local/src下
cd /usr/local/src

#  解压这四个包
tar -zxvf nginx-1.11.5.tar.gz -C /data/server


tar zxvf fastdfs-nginx-module_v1.16.tar.gz -C /data/server


tar zxvf pcre-8.34.tar.gz -C /data/server


tar zxvf zlib-1.2.8.tar.gz -C /data/server


#  修改相关路径参数
vim /data/server/fastdfs-nginx-module/src/config

    在其中找到第4行,
    将这行
    CORE_INCS="$CORE_INCS /usr/local/include/fastdfs /usr/local/include/fastcommon/"
    改成
    CORE_INCS="$CORE_INCS /usr/include/fastdfs /usr/include/fastcommon/"


#  进到nginx目标文件目录
cd /data/server/nginx-1.11.5/

#  编译安装

    *  ./configure --prefix=/data/server/nginx --add-module=/data/server/fastdfs-nginx-module/src/  --with-pcre=/data/server/pcre-8.34/ --with-zlib=/data/server/zlib-1.2.8
    

    *   make && make install

9.配置nginx文件 vim /data/server/nginx/conf/nginx.conf

添加修改
keepalive_timeout  60;        #keepalive超时时间
在server段中添加或者修改
listen       8080;                            #监听storage的http端口
server_name  192.168.31.129;    #storage的IP
location ~/head/M00 {                    #组head
   root /fdfs/head/data;
   ngx_fastdfs_module;
   }

location ~/other/M00 { #组other root /fdfs/other/data; ngx_fastdfs_module; }

10.创建other组 cd /data/server/FastDFS/conf/ cp storage.conf storage_other.conf

11.配置storage other组 vim /data/server/FastDFS/conf/storage_other.conf

在其中修改
group_name=other
   port=23001
 store_path0=/fdfs/other

12.启动other的storage cd /data/server/FastDFS/storage fdfs_storaged /data/server/FastDFS/conf/storage_other.conf

13.查看存储状况 cd /fdfs/other/data ls

14.配置相关文件 vim /data/server/fastdfs-nginx-module/src/mod_fastdfs.conf

修改
base_path=/fdfs/storage                              #保存日志目录
tracker_server=192.168.124.84:22122        #tracker的ip
url_have_group_name = true                      #文件url中是否有group名
group_name=group1                                   #把这行注释掉
group_count = 2                                          #设置组的个数
在末尾增加2个组的具体信息:
[group1]
group_name=head
storage_server_port=23000
store_path_count=1
store_path0=/fdfs/head
[group2]
group_name=other
storage_server_port=23001
store_path_count=1
store_path0=/fdfs/other

15.创建软链接 ln -s /fdfs/head/data /fdfs/head/data/M00 ln -s /fdfs/other/data /fdfs/other/data/M00

16.查看软链接 ll /fdfs/head/data/M00 ll /fdfs/other/data/M00

17.运行nginx cd /data/server/nginx/sbin ./nginx

18.访问网页 在浏览器输入192.168.124.155:8080(storage的ip:8080)

会出现如下页面

在这里会出现无法访问页面的情况

解决方法:

#  查看错误日志
       cat /data/server/nginx/logs/error.log


我们会看到时这个报错
 ERROR - file: shared_func.c, line: 968, file /etc/fdfs/mod_fastdfs.conf not exist
ERROR - file: /data/server/fastdfs-nginx-module/src//common.c, line: 155, load conf file "/etc/fdfs/mod_fastdfs.conf" fail, ret code: 2


#  cd /data/server/FastDFS/conf
#  cp http.conf /etc/fdfs/
#  cp mime.types /etc/fdfs
#  cd /data/server/fastdfs-nginx-module/src
#  cp mod_fastdfs.conf /etc/fdfs/
#  cd /data/server/nginx/sbin
#  ./nginx -s reload


#  访问网页

++++++++++++++++++++++++++++++++++++++++++++++++ 此时,去tracker上操作第7到第9步 ++++++++++++++++++++++++++++++++++++++++++++++++

19.修改client.conf文件 vim /data/server/FastDFS/conf/client.conf

修改如下内容:
base_path=/fdfs/storage                        #日志存放路径
   tracker_server=192.168.124.84:22122
   http.tracker_server_port=8080              #tracker服务器的http端口号

++++++++++++++++++++++++ 去tracker上操作第11到第12步 ++++++++++++++++++++++++

20.检测 cd /fdfs/head/data/00/00 ls

cd /fdfs/other/data/00/00 ls