服务器采用的是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
// 查看 /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
- 配置 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
- 配置 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
- 配置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 的作用,如果你修改了的话
- 查看图片上传成功后保存情况
cd /fastdfs/storage/
cd data/
cd 00/00
搭建 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,回车即可,见下图,相关代码也提供在下方
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,即可访问到图片
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
// 如图
如有错误或叙述不当之处,还请指正,加油!!!
所谓迷茫,就是你的才华还配不上你的梦想