Nginx&FastDFS-Linux环境搭建与整合


安装所需链接:
https://pan.baidu.com/s/1xt9IqnQWGJ-OjcfobJXikg
提取码:o09k

安装需要的两个文档 html格式:
https://pan.baidu.com/s/19m2DGJ9AVIzdhA3Q-KzUsA
提取码:uegf

1.1 安装libfastcommon

由于我的centOS7是最小化安装,我里面没有安装zip解压。
先安装 :

yum -y install unzip zip

用yum安装gcc:

yum -y install gcc-c++

安装成功后解压libfastcommon-master.zip

unzip libfastcommon-master.zip

进入我们刚刚解压的目录:

cd libfastcommon-master

编译libfastcommon

./make.sh

安装编译好的库

./make.sh install

libfastcommon默认会被安装到/usr/lib64/libfastcommon.so但是FastDFS的主程序却在/usr/local/lib目录下
这个时候我们就要建立一个软链接了,实际上也相当于windows上的快捷方式。

ln -s /usr/lib64/libfastcommon.so /usr/local/lib/libfastcommon.so
ln -s /usr/lib64/libfdfsclient.so /usr/local/lib/libfdfsclient.so
ln -s /usr/lib64/libfdfsclient.so /usr/lib/libfdfsclient.so

1.2安装FastDFS

解压FastDFS安装包

unzip fastdfs-5.11.zip

进到刚解压的目录

cd fastdfs-5.11

安装perl类库

yum install perl -y

编译FastDFs

./make.sh

安装编译好的类库

./make.sh install

如果没有报错那么就成功了。安装log中会提示FastDFS安装到了/etc/fdfs目录下。
成功后查看安装目录:

cd /etc/fdfs/

我们需要把这三个示例文件复制一份,去掉.sample

cp client.conf.sample client.conf
cp storage.conf.sample storage.conf
cp tracker.conf.sample tracker.conf

FastDFS安装结束。

1.3安装tracker

1.3.1创建tracker工作目录

这个目录可以自定义,用来保存tracker的data和log
根据个人习惯,我创建了下面的目录:

mkdir -p  /usr/local/fdfs/tracker

1.3.2配置tracker

cd /etc/fdfs
vi tracker.conf

1.3.2配置tracker

cd /etc/fdfs
vi tracker.conf

在这里插入图片描述

1.3.3启动tracker

保存配置后启动tracker,命令如下:

service fdfs_trackerd start

如果不能启动,或提示用systemctl可改用命令:

systemctl start fdfs_trackerd

在这里插入图片描述
1、查看开启启动文件权限:

ll /etc/rc.d/rc.local
-rw-r--r-- 1 root root 501 Jun 16 21:34 /etc/rc.d/rc.local

发现并没有执行权限,需要加一下:

chmod +x /etc/rc.d/rc.local

修改rc.local

vi  /etc/rc.d/rc.local

在最后增加:service fdfs_trackerd start

查看一下tracker的端口监听情况(需要先安装net-tools网络工具包:yum install net-tools -y)

netstat -antp|grep fdfs
```![在这里插入图片描述](https://img-blog.csdnimg.cn/201912042115526.png)
## 1.4 安装storage
storage的安装与tracker很类似。
### 1.4.1 为storage配置工作目录
与tracker不现的是,由于storage还需要一个目录用来存储数据,所以我另外多建了一个storage_data 

```java
mkdir -p /usr/local/fdfs/storage
mkdir -p  /usr/local/fdfs/storage_data

下面是我的目录结构:
主目录: /usr/local/fdfs/storage
存储数据目录: /usr/local/fdfs/storage_data

1.4.2 修改storage配置文件

在这里插入图片描述
修改保存后创建软引用

ln -s /usr/bin/fdfs_storaged  /usr/local/bin/

1.4.3 启动storage

service fdfs_storaged start
如果不能启动,或提示用systemctl可改用命令:

systemctl start fdfs_storaged

成功后应该可以看到:
Starting fdfs_storaged (via systemctl): [ OK ]

同样的,设置开机启动:
修改rc.local

vi /etc/rc.d/rc.local

在最后增加:service fdfs_storaged start
查看一下服务是否启动

netstat -antp|grep fdfs

在这里插入图片描述

1.4.4 校验整合

到这里,fastdfs的东西都已安装完成,最后我们还要确定一下,storage是否注册到了tracker中去。
查看命令:

/usr/bin/fdfs_monitor /etc/fdfs/storage.conf
成功后可以看到:
[2018-06-05 19:56:26] DEBUG - base_path=/usr/local/fdfs/storage, connect_timeout=30, network_timeout=60, tracker_server_count=1, anti_steal_token=0, anti_steal_secret_key length=0, use_connection_pool=0, g_connection_pool_max_idle_time=3600s, use_storage_id=0, storage server id count: 0
server_count=1, server_index=0
tracker server is 192.168.188.138:22122
group count: 1
Group 1:
group name = group1
disk total space = 17394 MB
disk free space = 13880 MB
trunk free space = 0 MB
storage server count = 1
active server count = 1
storage server port = 23000
storage HTTP port = 8888
store path count = 1
subdir count per path = 256
current write server index = 0
current trunk file id = 0
Storage 1:
id = 192.168.188.138
ip_addr = 192.168.188.138 (bogon) ACTIVE
http domain =
version = 5.11
join time = 2018-06-03 18:34:42
up time = 2018-06-05 19:31:05
total storage = 17394 MB
free storage = 13880 MB
upload priority = 10
store_path_count = 1
subdir_count_per_path = 256
storage_port = 23000
storage_http_port = 8888
current_write_path = 0
source storage id =
if_trunk_server = 0
connection.alloc_count = 256
connection.current_count = 0
connection.max_count = 0
total_upload_count = 5
success_upload_count = 5
total_append_count = 0
success_append_count = 0
total_modify_count = 0
success_modify_count = 0
total_truncate_count = 0
success_truncate_count = 0
total_set_meta_count = 0
success_set_meta_count = 0
total_delete_count = 0
success_delete_count = 0
total_download_count = 0
success_download_count = 0
total_get_meta_count = 0
success_get_meta_count = 0
total_create_link_count = 0
success_create_link_count = 0
total_delete_link_count = 0
success_delete_link_count = 0
total_upload_bytes = 492292
success_upload_bytes = 492292
total_append_bytes = 0
success_append_bytes = 0
total_modify_bytes = 0
success_modify_bytes = 0
stotal_download_bytes = 0
success_download_bytes = 0
total_sync_in_bytes = 0
success_sync_in_bytes = 0
total_sync_out_bytes = 0
success_sync_out_bytes = 0
total_file_open_count = 5
success_file_open_count = 5
total_file_read_count = 0
success_file_read_count = 0
total_file_write_count = 5
success_file_write_count = 5
last_heart_beat_time = 2018-06-05 19:56:07
last_source_update = 2018-06-03 22:36:03
last_sync_update = 1970-01-01 08:00:00
last_synced_timestamp = 1970-01-01 08:00:00

1.5 测试文件上传

1.5.1 配置客户端

需要修改客户端的配置文件:

vi /etc/fdfs/client.conf    

在这里插入图片描述

1.5.2 模拟上传

通过ssh客户端上传一张本地图片到root目录

确定图片位置后,我们输入上传图片命令把图片上传到FastDFS服务器:

/usr/bin/fdfs_upload_file  /etc/fdfs/client.conf  /root/1.jpg

#这后面放的是图片的位置
在这里插入图片描述在这里插入图片描述

cd 00/00
ll

果然通过刚刚返回的路径,我们成功找到了图片。

我们仔细看一下,实际文件存储路径下有创建好的多级目录。data下有256个1级目录,每级目录下又有256个2级子目录,总共65536个文件,新写的文件会以hash的方式被路由到其中某个子目录下,然后将文件数据直接作为一个本地文件存储到该目录中。

1.6 FastDFS的nginx模块安装

1.6.1安装nginx准备

在安装nginx之前要安装nginx所需的依赖lib:

yum -y install pcre pcre-devel  
yum -y install zlib zlib-devel  
yum -y install openssl openssl-devel

1.6.2 安装nginx并添加fastdfs-nginx-module

解压nginx,和fastdfs-nginx-module:

tar -zxvf nginx-1.12.0.tar.gz
unzip fastdfs-nginx-module-master.zip

解压后进入nginx目录编译安装nginx,并添加fastdfs-nginx-module:

cd /root/nginx-1.12.0
./configure --prefix=/usr/local/nginx --add-module=/root/fastdfs-nginx-module-master/src

#第一个目录是nginx安装目录,第二个目录是fastdfs-nginx-module源码目录
如果配置不报错的话,
开始编译:

make

编译安装:

make install

nginx的默认目录是/usr/local/nginx,安装成功后查看:

cd /usr/local/nginx
ll

在这里插入图片描述

1.6.3 配置storage nginx

修改nginx.conf:

cd /usr/local/nginx/conf
vi nginx.conf

修改监听端口 listen 9999, 新增location
在这里插入图片描述
然后进入FastDFS安装时的解压过的目录,将http.conf和mime.types拷贝到/etc/fdfs目录下:

cd /root/fastdfs-5.11/conf
cp http.conf /etc/fdfs/
cp mime.types /etc/fdfs/

另外还需要把fastdfs-nginx-module安装目录中src目录下的

mod_fastdfs.conf也拷贝到/etc/fdfs目录下:
cd /root/fastdfs-nginx-module-master/src
cp mod_fastdfs.conf /etc/fdfs/

对刚刚拷贝的mod_fastdfs.conf文件进行修改:

vi /etc/fdfs/mod_fastdfs.conf

在这里插入图片描述
在文件的最后,设置group
在这里插入图片描述
创建M00至storage存储目录的符号连接:

ln  -s  /usr/local/fdfs/storage_data/data/  /usr/local/fdfs/storage_data/data/M00

启动nginx:

/usr/local/nginx/sbin/nginx

成功启动:

ngx_http_fastdfs_set pid=8142

设置开机自动启动nginx:
修改rc.local

vi /etc/rc.d/rc.local

在最后增加:/usr/local/nginx/sbin/nginx

浏览器访问http://192.168.188.138:9999
在这里插入图片描述
storage的nginx已配置成功。接下来,我们还要继续配置tracker的nginx。

1.6.4 配置tracker nginx

再解压一个nginx:
我在我自己的工作下再建了一个nginx2,把原来的nginx-1.12.0.tar.gz又解压了一份到里面

cd ~
mkdir nginx2
tar -xvf nginx-1.12.0.tar.gz -C /root/nginx2

进入到nginx2目录,设置编译配置

cd /root/nginx2/nginx-1.12.0
./configure --prefix=/usr/local/nginx2 --add-module=/root/fastdfs-nginx-module-master/src

如果配置不报错的话,
开始编译:

make

编译安装:
make install

nginx的安装目录是/usr/local/nginx2

接下来,一样的还是修改nginx.conf,端口号可以不改,用80的。需将upstream指向tracker的nginx地址。

vi /usr/local/nginx2/conf/nginx.conf

在这里插入图片描述
在这里插入图片描述
启动nginx:

/usr/local/nginx2/sbin/nginx

设置开机自动启动nginx:
修改rc.local

vi /etc/rc.d/rc.local

在最后增加:/usr/local/nginx2/sbin/nginx

浏览器访问 http://192.168.188.138
在这里插入图片描述
1.6.5 HTTP测试
现在我们再去访问一下,原来我们上传过的文件:
在这里插入图片描述

  • 0
    点赞
  • 2
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值