服务器采用的是CentOS7.4

安装包准备,点击下载

1.FastDFS_v5.08.tar.gz
2.libfastcommon-master.zip
3.fastdfs-nginx-module_v1.15.tar.gz
4.nginx-1.16.0.tar.gz

通过FlashFXP将安装包上传到 Linux 的 /tmp/tar 目录下,关于 FlashFXP的使用,请参考上一篇博客

安装相关依赖

yum -y install gcc	// 安装gcc,对c代码进行编译
yum install -y unzip zip	// 解压缩zip包
yum -y install libevent	
yum -y install pcre pcre-devel zlib zlib-devel openssl openssl-devel	//Nginx所需依赖

安装libfastcommon-master

cd /tmp/tar
unzip libfastcommon-master.zip	//解压
mv libfastcommon-master /tmp/tar-j/
cd /tmp/tar-j/libfastcommon-master
./make.sh  && ./make.sh install	//编译并安装libfastcommon

libfastcommon 默认安装在 /usr/lib64 目录下

cd /usr/lib64
ll /usr/lib64 | grep libfast*	// 查找 /usr/lib64 目录下以 libfast 开头的文件
	// 或者 ll libfast* 也有同样的效果

安装FastDFS

cd /tmp/tar
tar -zxvf FastDFS_v5.08.tar.gz
mv FastDFS_v5.08 /tmp/tar-j/
cd /tmp/tar-j/FastDFS_v5.08 
./make.sh && ./make.sh install

安装成功后,进入/etc/init.d目录,执行

cd /etc/init.d
ll /etc/init.d | grep fdfs

java 图片服务bitmap_FastDFS

// 查看 /usr/bin/ 目录下的相应配置文件
cd /usr/bin/
ll /usr/bin/ | grep fdfs

// 拷贝 /tmp/tar-j/fastdfs/conf/ 下的所有配置文件到 /etc/fdfs 目录下
cd /tmp/tar-j/fastdfs/conf/
copy * /etc/fdfs/

// 稍后启动 fdfs_trackerd、fdfs_storaged、fdfs_test 的服务时需要这两个目录下的文件共同来启动
// 如 启动 tracker 的命令是 /usr/bin/fdfs_trackerd  /etc/fdfs/tracker.conf

java 图片服务bitmap_java 图片服务bitmap_02


java 图片服务bitmap_图片服务器_03

  1. 配置 tracker 服务
cd /etc/fdfs/
vim tracker.conf

// 修改以下内容,保存
base_path = /fastdfs/tracker	//修改日志文件的保存位置,此目录需要自行手动创建

// 启动 【重启】tracker
/usr/bin/fdfs_trackerd  /etc/fdfs/tracker.conf  [restart]

// 查看 tracker 进程
ps aux | grep tracker
  1. 配置 storaged 服务
cd /etc/fdfs/
vim storage.conf

// 修改以下内容,保存
base_path= /fastdfs/storage	//修改日志文件的保存位置,此目录需要自行手动创建
group_name=group1	//组织的名字,将会体现在文件的路径上,可不修改
store_path0=/fastdfs/storage	//实际图片存放的位置,此目录需要自行手动创建
tracker_server=云服务器内网Ip:22122

// 启动 【重启】tracker
/usr/bin/fdfs_storaged /etc/fdfs/storage.conf [restart]

// 查看 storage 进程
ps aux | grep storage
  1. 配置client
cd /etc/fdfs/
vim client.conf

// 修改以下内容,保存
base_path=/fastdfs/client	//修改日志文件的保存位置,此目录需要自行手动创建
tracker_server=云服务器内网Ip:22122

// 测试,上传图片
/usr/bin/fdfs_test /etc/fdfs/client.conf upload /tmp/cat.jpg
// 成功后,会返回一段文字,其中有 example file url 就是图片的 url,其中我们可以看到 group_name 的作用,如果你修改了的话
  1. 查看图片上传成功后保存情况
cd /fastdfs/storage/
cd data/
cd 00/00

java 图片服务bitmap_vim_04

搭建 Nginx + FastDFS 的桥梁

搭建二者之间联系的桥梁 fastdfs-nginx-module_v1.15.tar.gz

cd /tmp/tar/
tar -zxvf fastdfs-nginx-module_v1.15.tar.gz
mv fastdfs-nginx-module /tmp/tar-j/
cd /tmp/tar-j/fastdfs-nginx-module/src
vim config

// 修改以下内容,保存
// 去掉三个路径中的 local
// 以下是修改后的 config 文件

ngx_addon_name=ngx_http_fastdfs_module
HTTP_MODULES="$HTTP_MODULES ngx_http_fastdfs_module"
NGX_ADDON_SRCS="$NGX_ADDON_SRCS $ngx_addon_dir/ngx_http_fastdfs_module.c"
CORE_INCS="$CORE_INCS /usr/include/fastdfs /usr/include/fastcommon/"
CORE_LIBS="$CORE_LIBS -L/usr/lib -lfastcommon -lfdfsclient"
CFLAGS="$CFLAGS -D_FILE_OFFSET_BITS=64 -DFDFS_OUTPUT_CHUNK_SIZE='256*1024' -DFDFS_MOD_CONF_FILENAME='\"/etc/fdfs/mod_fastdfs.conf\"'"

安装Nginx

相关依赖,在文章开头已经下好了

cd /tmp/tar/
tar -zxvf nginx-1.16.0.tar.gz
mv nginx-1.16.0 /tmp/tar-j/
cd /tmp/tar-j/nginx-1.16.0/

//进入nginx目录之后,nginx 配置 fastdfs,回车即可,见下图,相关代码也提供在下方

java 图片服务bitmap_java 图片服务bitmap_05

nginx配置fastdfs所需的代码文件

./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 \
--add-module=/tmp/tar-j/fastdfs-nginx-module/src		### 这一块儿可能需要根据实际情况修改到自己的fastdfs-nginx-module的src路径下

编译安装 Nginx

make
make install
cd /usr/local/nginx
ls

配置桥梁文件

cp /tmp/tar-j/fastdfs-nginx-module/src/mod_fastdfs.conf	 /etc/fdfs
vim /etc/fdfs/mod_fastdfs.conf

// 修改以下内容,保存
base_path=/fastdfs/tmp	//修改日志文件的保存位置,此目录需要自行手动创建
tracker_server=云服务器内网Ip:22122
group_name=group1	//与之前的配置相同
url_hava_group_name=true
store_path0=/fastdfs/storage	// 必须与前面配置的storage服务的配置文件中的store_path0相同

配置Nginx

cd /usr/local/nginx/conf
vim nginx.conf

// 添加以下内容,保存,location中的group1需与之前配置一致
server {
	listen	88;
	server_name	服务器Ip;
	location	/group1/M00 {
		ngx_fastdfs_module;
	}
}

启动 Nginx

cd /usr/local/nginx/sbin
./nginx -t	//检查Nginx配置是否正确

// 可能报错 mkdir() "/var/temp/nginx/client" failed (2:no such file or directory)
// 解决办法: mkdir /var/temp/nginx -p 创建所需目录

./nginx	//启动Nginx
。/nginx -s reload	//重启Nginx

在浏览器中输入url,即可访问到图片

java 图片服务bitmap_图片服务器_06


java 图片服务bitmap_vim_07

nginx 安装完后无法访问
解决方案:首先,检查云服务器的安全组是否配置了相应的端口,在 windows 下使用 telnet ip地址 80 命令检测是否能连通 80 端口,也可能发生端口占用,使用 netstat -lntp | grep 80 查看端口使用情况,若是被占用,使用 kill 进程号,结束当前占用端口的进程,最后,如果安全组已经配置,但是依然 telnet 不通,那么检查 iptables, 配置完后, 可能需要重启云服务器

telnet  ip地址  80
netstat -lntp  | grep  80
kill 4459  //4459 为我的PC下占用80端口的进程号

vim /etc/sysconfig/iptables

// 以下是我的Iptables中的全部内容

# Generated by iptables-save v1.4.21 on Mon Jul 15 11:20:18 2019
*filter
:INPUT ACCEPT [0:0]
:FORWARD ACCEPT [0:0]
:OUTPUT ACCEPT [28:2640]
-A INPUT -m state --state RELATED,ESTABLISHED -j ACCEPT
-A INPUT -p icmp -j ACCEPT
-A INPUT -i lo -j ACCEPT
-A INPUT -p tcp -m state --state NEW -m tcp --dport 22 -j ACCEPT
-A INPUT -p tcp -m state --state NEW -m tcp --dport 80 -j ACCEPT
-A INPUT -p tcp -m state --state NEW -m tcp --dport 88 -j ACCEPT
-A INPUT -p tcp -m state --state NEW -m tcp --dport 3306 -j ACCEPT
-A INPUT -p tcp -m state --state NEW -m tcp --dport 8080 -j ACCEPT
-A INPUT -p tcp -m state --state NEW -m tcp --dport 8088 -j ACCEPT
-A INPUT -p tcp -m state --state NEW -m tcp --dport 8090 -j ACCEPT
-A INPUT -j REJECT --reject-with icmp-host-prohibited
-A FORWARD -j REJECT --reject-with icmp-host-prohibited
COMMIT
# Completed on Mon Jul 15 11:20:18 2019

到此,FastDFS搭建图片服务器就告一段落了!!

补充:tomcat + nginx 反向代理

tar -zxvf /tmp/tar/apache-tomcat-7.0.73.tar.gz
mv apache-tomcat-7.0.73 /tmp/tar-j

// 配置 iptables ... 参考上面的叙述

// 修改字符集 ---> 进入tomcat>conf>server.xml
vim server.xml

// 在配置8080端口的标签后头附加一个attribute URIEncoding="UTF-8",保存退出
// 启动tomcat ---> 进入tomcat>bin
./start.sh

// nginx 反向代理
vim /usr/local/nginx/conf/nginx.conf
// 如图

java 图片服务bitmap_图片服务器_08

如有错误或叙述不当之处,还请指正,加油!!!

所谓迷茫,就是你的才华还配不上你的梦想