如下都是在非root用户下操作的,所以很多命令前都加上 sudo
1 Nginx搭建
1.1 环境依赖
1、nginx是c编写的,对于解压的源码进行编译,所以首先设置编译环境: gcc
(一定要记得先update,不然找不到gcc:这个本人没试过)
sudo apt-get update
sudo apt-get install gcc
实际我是用的是如下命令安装的(不建议):
sudo apt-get install build-essential
安装完了可以执行如下命令查看版本(如为gcc(GCC)4.2.3(Ubuntu4.2.3-2ubuntu7)):
gcc--version
然后安装的gcc-c++:
sudo apt-get install gcc-c++
2、Perl库,包括 perl 兼容的正则表达式库,解决依赖包pcre安装,命令:
sudo apt-get install libpcre3 libpcre3-dev
3、zlib库提供了很多种压缩和解压缩的方式,执行tar命令的,当时服务器可用tar命令,就没装:
sudo apt-get install zlib1g-dev
4、OpenSSL 是一个强大的安全套接字层密码库:
sudo apt-get install openssl libssl-dev
1.2 编译安装
1、下载nginx-1.8.0.tar.gz(可官网查询其他版本)(注意:下载以及解压会到当前目录下):
wget http://nginx.org/download/nginx-1.8.0.tar.gz
2、解压
tar -zxvf nginx-1.8.0.tar.gz
3、进入加压的文件下,创建临时目录
cd nginx-1.8.0
mkdir -p /var/temp/nginx
4、参数配置
sudo ./configure \
--prefix=/usr/local/nginx \
--pid-path=/var/run/nginx/nginx.pid \
--lock-path=/var/lock/nginx.lock \
--error-log-path=/var/log/nginx/error.log \
--http-log-path=/var/log/nginx/access.log \
--with-http_gzip_static_module \
--http-client-body-temp-path=/var/temp/nginx/client \
--http-proxy-temp-path=/var/temp/nginx/proxy \
--http-fastcgi-temp-path=/var/temp/nginx/fastcgi \
--http-uwsgi-temp-path=/var/temp/nginx/uwsgi \
--http-scgi-temp-path=/var/temp/nginx/scgi
5、编译安装
make
make install
6、此时可以看到 在 /usr/local/nginx/目录下有3个文件夹(sbin ,conf ,logs ),
cd /usr/local/nginx/
cd sbin
7、启动nginx
sudo ./nginx -c /usr/local/nginx/conf/nginx.conf
8、如果启动成功了访问页面:根据自己的IP地址(eg.我的10.10.5.221)
2 安装FastDFS(具体忘了当时怎么乱七八糟弄的了,以下是参考其他博文)
2.1 安装FastDFS的基础库
1. 安装libevent库
yum install -y libevent
2. 安装 libfastcommon基础库
cp -rf /home/xzb/libfastcommonV1.0.7.tar.gz /usr/local
#解压
tar -xzvf libfastcommonV1.0.7.tar.gz
cd libfastcommon-1.0.7
#执行
./make.sh
./make.sh install
3. 注意:
上述安装完之后,安装完的路径在/usr/lib64,但是fastDFS访问的lib路径在 /usr/local/lib 中 所以此时需要建立软连接
ln -s /usr/lib64/libfastcommon.so /usr/local/lib/libfastcommon.so
ln -s /usr/lib64/libfastcommon.so /usr/lib/libfastcommon.so
2.2 安装FastDFS中 tracker服务
解压
cp -rf /home/xzb/FastDFS_v5.05.tar.gz /usr/local/
tar -xzvf FastDFS_v5.05.tar.gz
#执行
cd FastDFS
./make
./make install
如果发现在 /etc/fdfs/ 这个目录有配置文件说明安装成功了!!
配置tracker服务
1. 创建tracker的数据文件/日志目录(我存放在了/opt/fastdfs_tracker)
mkdir -p /opt/fastdfs_tracker
2. 进入 /etc/fdfs/ 执行
cd /etc/fdfs
cp tracker.conf.sample tracker.conf
3. 编辑 tracker.conf
disabled=false #启用配置文件
port=22122 #设置tracker的端口号
base_path=/opt/fastdfs_tracker #设置tracker的数据文件和日志目录(需预先创建)
http.server_port=80 #设置http端口号
4. 启动
/usr/bin/fdfs_trackerd /etc/fdfs/tracker.conf restart
5. 设置开机启动
echo '/usr/bin/fdfs_trackerd /etc/fdfs/tracker.conf restart' >> /etc/rc.d/rc.local
6. 通过如下命令查看trackerd服务是否启动:
netstat -tupln | grep trackerd
7. 如果有错可以在 /opt/fastdfs_tracker/logs 中查看
2.3 配置FastDFS中的storage服务
1. 创建存放storage 数据/日志文件目录
mkdir -p /opt/fastdfs_storage
2. 进入/etc/fdfs
cd /etc/fdfs/
cp storage.conf.sample storage.conf
3. 编辑 storage.conf
disabled=false #启用配置文件
group_name=group1 #组名,根据实际情况修改
port=23000 #设置storage的端口号
base_path=/opt/fastdfs_storage #设置storage的日志目录(需预先创建)
store_path_count=1 #存储路径个数,需要和store_path个数匹配
store_path0=/opt/fastdfs_storage #存储路径
tracker_server=192.168.25.130:22122 #tracker服务器的IP地址和端口号 (我这是同一台)
http.server_port=80 #设置http端口号
4. 启动
/usr/bin/fdfs_storaged /etc/fdfs/storage.conf restart
5. 开机启动
echo '/usr/bin/fdfs_storaged /etc/fdfs/storage.conf restart' >> /etc/rc.d/rc.local
6. 是否启动
netstat -tupln | grep storaged
2.4 上传文件测试
FastDFS安装成功可通过/usr/bin/fdfs_test测试上传、下载等操作。
cp client.conf.sample client.conf -------------------------------这个文件的参数有点疑问
修改/etc/fdfs/client.conf
base_path=/opt/fastdfs_storage
tracker_server=192.168.25.130:22122
使用格式:
/usr/bin/fdfs_test 客户端配置文件地址 upload 上传文件
比如将/home下的文件上传到FastDFS中:
/usr/bin/fdfs_test /etc/fdfs/client.conf upload /home/我是好人.pdf
http://192.168.25.130/group1/M00/00/00/M00/00/00/wKgZgluJDpiAWpqAAev7k46AZD8093.pdf就是文件的下载路径。
对应storage服务器上的
/opt/fdfs_storage/data/00/00/wKhlBVVY2M-AM_9DAAAT7-0xdqM485_big.png文件。
由于现在还没有和nginx整合无法使用http下载。
3 FastDFS与nginx进行集成(主要参考https://www.cnblogs.com/tc520/p/6822412.html)
1. 使用nginx(可反向代理,代理服务)可以提供http服务,更好的解决分布同步的问题等
2. 由于之前已经安装过ngnix ,所以此时我们需要添加fastdfs-nginx-module
(这是下载好的,复制到指定目录)cp /home/xzb/fastdfs-nginx-module_v1.16.tar.gz /usr/local
我们直接下载解压安装包:
wget https://github.com/happyfish100/fastdfs-nginx-module/archive/master.zip
unzip master.zip(unzip命令如没有安装执行:sudo apt-get install unzip zip)
3. 在nginx中添加该模块配置
cd nginx-1.8.0/
执行:
./configure --add-module=/home/windaka/fastdfs-nginx-module-master/src
make
make会报错:
解决方案:修改fastdfs-nginx-module-1.20/src/config文件,然后从(3. 在nginx中添加该模块配置)开始:
vim /home/windaka/fastdfs-nginx-module-master/src/config
ngx_module_incs="/usr/include/fastdfs /usr/include/fastcommon/"
CORE_INCS="$CORE_INCS /usr/include/fastdfs /usr/include/fastcommon/"
下述非上述本人出现的错误,若是碰到就这样做:
root/fastdfs-nginx-module/src//common.c:21:25: fatal error: fdfs_define.h: No such file or directory
#include "fdfs_define.h"
^
compilation terminated.
make[1]: *** [objs/addon/src/ngx_http_fastdfs_module.o] Error 1
解决办法:
vim /home/windaka/fastdfs-nginx-module-master/src/config
CORE_INCS="$CORE_INCS /usr/include/fastdfs /usr/include/fastcommon/"
CORE_LIBS="$CORE_LIBS -L/usr/lib -lfastcommon -lfdfsclient"
重新编译,安装即可(返回到3. 在nginx中添加该模块配置)
sudo make install
--4. cd fastdfs-nginx-module/src/
vi config (这一步很重要,很重要,很重要(重要的事情说三遍)==就是上述出现的问题~~!
CORE_INCS="$CORE_INCS /usr/local/include/fastdfs /usr/local/include/fastcommon/"
CORE_LIBS="$CORE_LIBS -L/usr/local/lib -lfastcommon -lfdfsclient"
把local都去掉
--5. 然后执行 ==就是上述出现的问题~~!
make
make install
如果没有错误则安装成功
(1) 将插件添加到nginx中
cd /usr/local/ngnix/conf/
vi nginx.conf
修改如下:
server {
listen 80; #端口
server_name 192.168.25.130;
location /group1/M00 { # 多个组 ~/group[1-3]
root /home/windaka/fastdfs/data; #存储数据
ngx_fastdfs_module;
}
...# 多个组 ~/group[1-3]
}
此配置文件中的50x.html,index.html等在nginx安装的缓存文件中,鄙人在: /usr/local/nginx/html/
(2) 执行命令cd /usr/local/FastDFS/conf (在fastdfs的安装目录下,鄙人在):
cd /home/windaka/fastdfs-5.11/conf
sudo cp http.conf /etc/fdfs
sudo cp mime.types /etc/fdfs
不复制这2个文件启动nginx会报错
(3) 执行命令 cd /usr/local/fastdfs-nginx-module/src ,fastdfs-nginx-module安装目录中,而鄙人在:
cd /home/windaka/fastdfs-nginx-module-master/src
sudo cp mod_fastdfs.conf /etc/fdfs
vi mod_fastdfs.conf -------------------------------------------------------------------------------(修改的是复制过去的文档)先按照博客试试 待定
修改如下几项:
tracker_server=192.168.25.130:22122
store_path0=/home/windaka/fastdfs
base_path=/home/windaka/fastdfs
url_have_group_name = true(需要设置,为true时group1这个虚拟路径才能用)
建立软连接(配置文件中storage存放数据的路径)
ln -s /home/windaka/fastdfs/data /home/windaka/fastdfs/data/M00
关闭防火墙或者设置对外端口
关闭防火墙:
service firewalld stop //停止防火墙
service firewalld disable//永久停止
10 测试
上传的文件或者图片,可以在浏览器直接访问啦!
eg. http://192.168.25.130/group1/M00/00/00/wKgZgluJAE2Adan1Aev7k46AZD8377.pdf