宝塔服务器面板,一键全能部署及管理,送你10850元礼包,点我领取

Ubuntu20.04中fastdfs,nginx的安装和配置

环境准备:

编译环境:

Ubuntu20.04

使用的系统软件:

fastdfs-6.07

fastdfs-nginx-module-1.22

libfastcommon-1.0.53

nginx-1.18.0

安装libfastcommon:

git clone https://github.com/happyfish100/libfastcommon.git --depth 1
cd libfastcommon/
./make.sh && ./make.sh install #编译安装

安装FastDFS:

cd ../ #返回上一级目录
git clone https://github.com/happyfish100/fastdfs.git --depth 1
cd fastdfs/
./make.sh && ./make.sh install #编译安装

配置跟踪服务器tracker:

#配置文件准备
cp /etc/fdfs/tracker.conf.sample /etc/fdfs/tracker.conf#在/home/目录中创建目录 fastdfs/tracker
mkdir –p /home/fastdfs/tracker#编辑/etc/fdfs/tracker.conf配置文件    
vim /etc/fdfs/tracker.conf
#需要修改的内容如下
port=22122  # tracker服务器端口(默认22122,一般不修改)
base_path=/home/faster/tracker  # 存储日志和数据的根目录

配置跟踪服务器tracker:

#配置文件准备
cp /etc/fdfs/storage.conf.sample /etc/fdfs/storage.conf#在/home/目录中创建目录 fastdfs/storage
mkdir –p /home/fastdfs/storage#编辑/etc/fdfs/storage.conf配置文件    
vim /etc/fdfs/storage.conf#需要修改的内容如下
port=23000  # storage服务端口(默认23000,一般不修改)
base_path=/home/fastdfs/storage  # 数据和日志文件存储根目录
store_path0=/home/fastdfs/storage  # 第一个存储目录
tracker_server=192.168.154.130(ubuntu虚拟机的ip):22122  # tracker服务器IP和端口
http.server_port=8888  # http访问文件的端口(默认8888,看情况修改,和nginx中保持一致)

配置client:

#配置文件准备
cp /etc/fdfs/client.conf.sample /etc/fdfs/client.conf编辑/etc/fdfs/client.conf配置文件
vim /etc/fdfs/client.conf#需要修改的内容如下
base_path=/home/fastdfs/tracker
tracker_server=192.168.154.130(ubuntu虚拟机的ip):22122  #tracker服务器IP和端口

上传文件测试:

#保存后测试,返回ID表示成功 如:group1/M00/00/00/xx.tar.gz
fdfs_upload_file /etc/fdfs/client.conf /usr/local/src/nginx-1.15.4.tar.gz
或者
fdfs_upload_file /etc/fdfs/client.conf 要上传的图片文件路径 
如果返回类似group1/M00/00/00/rBIK6VcaP0aARXXvAAHrUgHEviQ394.jpg的文件id则说明文件上传成功如果报错 connect refuse 可以先把tracker,storage进程关闭再依次打开,重新上传

安装nginx和fastdfs-nginx-module(建议使用第二种apt-get安装):

方式一:通过下载的nginxan安装包进行安装
wget http://nginx.org/download/nginx-1.18.0.tar.gz #下载nginx压缩包(可以直接去官网下载)
tar -zxvf nginx-1.18.0.tar.gz #解压
cd nginx-1.18.0/
#添加fastdfs-nginx-module模块
./configure --prefix=/usr/local/nginx/ --add-module=/usr/local/src/fastdfs-nginx-module/src/ #根据自己的 fastdfs-nginx-module路径填写
make && make install #编译安装
方式一配置nginx访问
cp fastdfs-nginx-module-1.22(路径要填完整,可以右键属性查看)/src下的mod_fastdfs.conf /etc/fdfs/mod_fastdfs.confvim /etc/fdfs/mod_fastdfs.conf
#需要修改的内容如下
tracker_server=192.168.154.130(ubuntu虚拟机的ip):22122  #tracker服务器IP和端口
url_have_group_name=true
store_path0=/home/fastdfs/storagecp 解压缩的fastdfs-master目录中的http.conf  /etc/fdfs/http.conf
cp 解压缩的fastdfs-master目录中的mime.types /etc/fdfs/mime.types#配置nginx.config
vim /usr/local/nginx/conf/nginx.conf#添加如下配置
server {listen       8888;    ## 该端口为storage.conf中的http.server_port相同server_name  localhost;location ~/group[0-9]/ {ngx_fastdfs_module;}error_page   500 502 503 504  /50x.html;location = /50x.html {root   html;}
}#测试下载,用外部浏览器访问刚才已传过的nginx安装包或图片,引用返回的ID
http://192.168.154.130:8888/group1/M00/00/00/wKgAQ1pysxmAaqhAAA76tz-dVgg.tar.gz
#弹出下载或图片单机部署全部跑通
方式二:通过apt-get进行安装
1.通过apt-get 安装nginx
apt-get install nginx
apt-get安装nginx的文件位置
/usr/sbin/nginx  #主程序
/etc/nginx   #存放配置文件
/usr/share/nginx  #存放静态文件
/var/log/nginx  #存放日志
2.查看安装的nginx版本
nginx -V
#复制configure arguements:后的内容,这些是已经安装的模块,其中没有fastdfs-nginx-module
3.去官网下载一个相同版本的源码包,解压,与方式一相同
4.进入解压后的源码包,编译
./configure 之前所复制configure arguements:后的内容 --add-module=/usr/local/src/fastdfs-nginx-module/src/ #根据自己的 fastdfs-nginx-module路径填写
5.执行可能遇到的问题

– the HTTP XSLT module requires the libxml2/libxslt libraries

#解决办法
apt-get install libxml2 libxml2-dev libxslt-dev

the HTTP image filter module requires the GD library.

#解决办法
apt-get install libgd-dev libgd2-xpm-dev

the GeoIP module requires the GeoIP library.

#解决办法
apt-get install geoip-database libgeoip-dev

the HTTP rewrite module requires the PCRE library.

#解决办法
apt-get install libpcre3 libpcre3-dev

6.编译完成后执行make,注意不要执行make install ,不然会覆盖安装原来的或导致虚拟机中存在两个nginx,引起各种bug

make
7.替换nginx二进制文件(建议备份niginx,失败后可以退回来):
cp /usr/sbin/nginx /usr/sbin/nginx.bak #备份cp ./objs/nginx /usr/sbin/ #make编译过后的nginx,替换系统安装
8.测试
#再次查看版本
nginx -V
#复制configure arguements:后的内容,除了之前安装的模块,最后会有fastdfs-nginx-module
方式二配置nginx访问
vim /etc/nginx/nginx.confserver {listen       8888;    ## 该端口为storage.conf中的http.server_port相同server_name  localhost;location ~/group[0-9]/ {ngx_fastdfs_module;}error_page   500 502 503 504  /50x.html;location = /50x.html {root   html;}
}server {listen       80;server_name  localhost;#charset koi8-r;#access_log  logs/host.access.log  main;location / {root   html;index  index.html index.htm;}#error_page  404              /404.html;# redirect server error pages to the static page /50x.html#error_page   500 502 503 504  /50x.html;location = /50x.html {root   html;}
}
9.启动nginx,打开浏览器测试
service nginx start
#测试下载,用外部浏览器访问刚才已传过的nginx安装包或图片,引用返回的ID
http://192.168.154.130:8888/group1/M00/00/00/wKgAQ1pysxmAaqhAAA76tz-dVgg.tar.gz
#弹出下载或图片单机部署全部跑通

写在最后:

fastdfs,nginx本身的安装不难,但是很容易出现各种各样的问题。

建议在测试前查看tracker,storage,nginx是否运行

ps -ef | grep tracker
ps -ef | grep storage
ps -ef | grep nginx

如果一次没有访问到上传的资源,建议关掉tracker,storage,nginx

#可以通过fastdfs自带的stop.sh来关闭
fastdfs所在目录下/stop.sh  要关掉的进程(查看进程时后面有)

如果关不掉,可以使用kill 强行关闭(本人使用)

kill -9 端口号

然后依次开启tracker,storage,nginx

另外,如果还是没有访问到上传的资源,建议查看一下8888端口是否开了

netstat -luntp } grep 8888

如果没反应就是没开,建议百度,我最开始因为没卸载干净又进行重装导致又两个nginx,8888端口也没反应,百度试了后8888端口突然就开了,最后成功访问,但是我最后还是将nginx完全卸载了,将与nginx相关的全部删除后通过方式二重新安装nginx,一次成功。

参考:
#fastdfs开发者yuqing老师的安装过程
https://github.com/happyfish100/fastdfs/wiki/%E5%AE%89%E8%A3%85%E6%AD%A5%E9%AA%A4
#apt-get 安装nginx 添加 fastdfs-nginx-module模块
https://blog.csdn.net/Fffhhas/article/details/106450214