FastDFS搭建单机图片服务器(二)

根据
分布式文件系统 - FastDFS 在 CentOS 下配置安装部署

分布式文件系统 - FastDFS 配置 Nginx 模块及上传测试
一步一步搭建的,但还是碰到了版本太低,导致安装报错的问题。

费时间解决了问题之后,我将这个步骤和对应的版本记录下载,有需要的小伙伴可以参考一下。
用这个步骤,我已经在一部本机的虚拟机和一部阿里云服务器上分别搭建过,并且能上传和下载图片。

搭建单机服务器的还是比较简单的。我分成了两篇来进行记录。

  • FastDFS搭建单机图片服务器(一)

    • 主要是下载、安装和配置FastDFS相关的组件,实现图片的上传。
  • FastDFS搭建单机图片服务器(二)

    • 主要是下载、安装和配置nginx相关的组件,实现图片的下载。

接着上一篇(一)来继续安装nginx的步骤。

一、安装nginx需要准备的环境(CentOS)

1、安装gcc
安装 nginx 需要先将官网下载的源码进行编译,编译依赖 gcc 环境,如果没有 gcc 环境,则需要安装:
yum install gcc-c++

2、 安装PCRE pcre-devel
PCRE(Perl Compatible Regular Expressions) 是一个Perl库,包括 perl 兼容的正则表达式库。nginx 的 http 模块使用 pcre 来解析正则表达式,所以需要在 linux 上安装 pcre 库,pcre-devel 是使用 pcre 开发的一个二次开发库。nginx也需要此库。命令:
yum install -y pcre pcre-devel

3、安装zlib
zlib 库提供了很多种压缩和解压缩的方式, nginx 使用 zlib 对 http 包的内容进行 gzip ,所以需要在 Centos 上安装 zlib 库。
yum install -y zlib zlib-devel

4、安装OpenSSL
OpenSSL 是一个强大的安全套接字层密码库,囊括主要的密码算法、常用的密钥和证书封装管理功能及 SSL 协议,并提供丰富的应用程序供测试或其它目的使用。
nginx 不仅支持 http 协议,还支持 https(即在ssl协议上传输http),所以需要在 Centos 安装 OpenSSL 库。
yum install -y openssl openssl-devel

参考资料:
从零开始学 Java - CentOS 下安装 Nginx

由于ubuntu系统对yum不友好,下载方式不一样。

一、安装nginx需要准备的环境(Ubuntu)

参考资料:ubuntu下安装nginx时依赖库zlib,pcre,openssl安装方法

1、安装gcc
安装 nginx 需要先将官网下载的源码进行编译,编译依赖 gcc 环境,如果没有 gcc 环境,则需要安装:
查看是否已经下载:
dpkg -l | grep gcc
如果没有则下载安装
sudo apt-get install g++-5

2、 安装PCRE pcre-devel
PCRE(Perl Compatible Regular Expressions) 是一个Perl库,包括 perl 兼容的正则表达式库。nginx 的 http 模块使用 pcre 来解析正则表达式,所以需要在 linux 上安装 pcre 库,pcre-devel 是使用 pcre 开发的一个二次开发库。nginx也需要此库。命令:

sudo apt-get install openssl libssl-dev

3、安装zlib
zlib 库提供了很多种压缩和解压缩的方式, nginx 使用 zlib 对 http 包的内容进行 gzip ,所以需要在 Centos 上安装 zlib 库。
查看是否安装
dpkg -l | grep zlib
如果没有则下载安装
sudo apt-get install zlib1g-dev

4、安装OpenSSL
OpenSSL 是一个强大的安全套接字层密码库,囊括主要的密码算法、常用的密钥和证书封装管理功能及 SSL 协议,并提供丰富的应用程序供测试或其它目的使用。
nginx 不仅支持 http 协议,还支持 https(即在ssl协议上传输http),所以需要在 Centos 安装 OpenSSL 库。
sudo apt-get install openssl libssl-dev

二、下载fastdfs-nginx-module

1、下载
cd /usr/local
防止同名压缩包被覆盖,重命名一下已下载的libfastcommon安装包master.zip,
mv master.zip libfastcommon.zip

wget -c https://github.com/happyfish100/fastdfs-nginx-module/archive/master.zip

2、解压
unzip master.zip

三、下载Nginx

mkdir /usr/local/nginx
cd /usr/local/nginx
1、下载
wget -c https://nginx.org/download/nginx-1.10.1.tar.gz

2、解压nginx-1.10.1.tar.gz
tar -zxvf nginx-1.10.1.tar.gz

3、安装nginx

加入fastdfs-nginx-module模块。这是和普通 Nginx 安装不一样的地方,因为加载了模块。

cd /usr/local/nginx/nginx-1.10.1/

./configure --add-module=../../fastdfs-nginx-module-master/src/

如果这一步有报错。有些文件显示not found错误。请确保环境准备好了。
回到第一、安装nginx需要准备的环境,好好确认一下。

如果没有报错,则执行编译

4、编译
make

如果这里报了难以描述的错误
解决办法:
FastDFS版本必须 >= 5.11才可以。否则在使用fastdfs-nginx-module模块整合Nginx时候会出错,编译Nginx的时候会报错。
解决问题再执行make

5、安装
make install

6、查看安装成功的版本
/usr/local/nginx/sbin/nginx -V

四、配置 fastdfs-nginx-module 和 Nginx

1.配置mod-fastdfs.conf,并拷贝到/etc/fdfs文件目录下。
创建nginx存放日志和数据的目录
mkdir /home/fastdfs/fast-nginx
(已创建可以忽略)

2、复制配置文件
cd /usr/local/fastdfs-nginx-module-master/src/
复制配置文件到/etc/fdfs目录下
cp mod_fastdfs.conf /etc/fdfs

3、修改mod_fastdfs.conf配置文件
vi /etc/fdfs/mod_fastdfs.conf

修改mod-fastdfs.conf配置只需要修改三个参数就行了,其他不需要也不建议改变。

tracker_server=192.168.86.131:22122
usr_have_group_name=true
store_path0=/home/fastdfs/storage/storage-image

tracker_server=192.168.86.131:22122填本机ip

如果部署的是阿里云ECS服务器,
tracker_server=公网ip:22122

4、修改config文件
修改/usr/local/fastdfs-nginx-module-master/src/config文件:
vi /usr/local/fastdfs-nginx-module-master/src/config
图中标出的路径要和你的libfastcommon的路径保持一致,可能你的路径中有/local/这一层,如果你安装的目录没有/local/这一层,就将local删除。
这里写图片描述

5、拷贝其他配置文件
接着我们需要把fastdfs-5.11下面的配置中还没有存在/etc/fdfs中的拷贝进去

cd /usr/local/fastdfs-5.11/conf

cp anti-steal.jpg http.conf mime.types /etc/fdfs/

6、配置nginx.conf

cd /usr/local/nginx/conf

vi nginx.conf

编辑内容如下:

location /group1/M00{
     ngx_fastdfs_module;
}

这里写图片描述

7、添加软链接
由于我们配置了group1/M00的访问,我们需要建立一个group1文件夹,并建立M00到data的软链接。

mkdir /home/fastdfs/storage/storage-image/data/group1

ln -s /home/fastdfs/storage/storage-image/data /home/fastdfs/storage/storage-image/data/group1/M00

8、启动 Nginx

/usr/local/nginx/sbin/nginx

五、上传测试

1、配置client.conf
mkdir /home/fastdfs/client

2、修改配置文件
cd /etc/fdfs
重命名
cp client.conf.sample client.conf
vi client.conf

修改一下两个参数即可
base_path=/home/fastdfs/client
tracker_server=192.168.86.131:22122

如果部署的是阿里云ECS服务器,
tracker_server=公网ip:22122

3、上传文件
首先在本地创建一个文件
/home/kiki/test.txt

上传:
/usr/bin/fdfs_test /etc/fdfs/client.conf upload /home/kiki/test.txt
这里写图片描述
访问url 访问路径

这里写图片描述

如果访问不了,关闭防火墙
1) 防火墙,重启后生效
开启: chkconfig iptables on
关闭: chkconfig iptables off

2) 防火墙,即时生效,重启后失效
开启: service iptables start
关闭: service iptables stop

3)ubuntu系统下
关闭防火墙:ufw disable
开启防火墙:ufw enable

再次访问就成功了。

Logo

华为开发者空间,是为全球开发者打造的专属开发空间,汇聚了华为优质开发资源及工具,致力于让每一位开发者拥有一台云主机,基于华为根生态开发、创新。

更多推荐