赞
踩
<artifactId>commons-io</artifactId>
<version>2.4</version>
</dependency>
</dependencies>
</project>
#### 2.2.2.新建fdfs\_client.conf文件,在我们的itoo中,我们建立在(src/main/resources底下) > > connect\_timeout = 2 > network\_timeout = 30 > charset = UTF-8 > http.tracker\_http\_port = 80 > #没什么用 > http.anti\_steal\_token = no > http.secret\_key = FastDFS1234567890 > tracker\_server = 192.168.17.112:22122 > #tracker\_server = 192.168.0.119:22122 > > > #### 2.2.3.实现文件上传
public void save(HttpServletRequest request,HttpServletResponse response){
String videoName=request.getParameter(“videoName”);
String videoType=request.getParameter(“videoType”);
String videoDesc=request.getParameter(“videoDesc”);
String videoPath=request.getParameter(“videoPath”);
String picturePath=request.getParameter(“picturePath”);
SimpleDateFormat formatter = new SimpleDateFormat("yyyy-MM-dd HH:mm:ss"); Date uploadTime=null; try { uploadTime = formatter.parse(formatter.format(new Date())); } catch (ParseException e) { // TODO Auto-generated catch block e.printStackTrace(); } JacksonJsonUntil jackJsonUtil =new JacksonJsonUntil (); String dataBaseName = "itoo\_video"; Video video=new Video(); video.setUserName("why"); video.setUserID("why"); video.setVideoName(videoName); video.setVideoPath(videoPath); video.setVideoType(videoType); video.setVideoDesc(videoDesc); video.setDataBaseName(dataBaseName); video.setPicturePath(picturePath); video.setUploadTime(uploadTime); uploadFileService.save(video); jackJsonUtil.beanToJson(response,video);
}
/*
* 上传文件
*/
@RequestMapping(value={“/upload”})
@ResponseBody
public void upload( MultipartFile file, HttpServletRequest request,HttpServletResponse response){
String ext_Name = file.getOriginalFilename().split("\\.")[1]; String videoName=file.getOriginalFilename().split("\\.")[0]; byte[] bytes = null; try { bytes = file.getBytes(); } catch (IOException e) { e.printStackTrace(); } String videoPath=uploadFile(bytes,ext_Name); JacksonJsonUntil jackJsonUtil =new JacksonJsonUntil (); Video video=new Video(); video.setVideoPath(videoPath); video.setVideoName(videoName); jackJsonUtil.beanToJson(response,video);
}
public String uploadFile(byte[] byteFile, String ext_file) {
// 拼接服务区的文件路径
StringBuffer sbPath = new StringBuffer();
sbPath.append(“http://192.168.22.252”);
try {
// 初始化文件资源
ClientGlobal
.init(“C:\Users\alsr\Desktop\ITOO-5.0\itoo-video-Test\dmsd-itoo-video-parent\dmsd-itoo-video-web\src\main\resources\fdfs_client.conf”);
// 链接FastDFS服务器,创建tracker和Stroage TrackerClient trackerClient = new TrackerClient(); TrackerServer trackerServer = trackerClient.getConnection(); StorageServer storageServer = null; StorageClient storageClient = new StorageClient(trackerServer, storageServer); //利用字节流上传文件 String[] strings = storageClient.upload\_file(byteFile, ext_file, null); for (String string : strings) { sbPath.append("/" + string); System.out.println(string); } // 全路径 System.out.println(sbPath); } catch (IOException | MyException e) { e.printStackTrace(); } return sbPath.toString();
}
只要我们能正常接收到一个json类型的字符串(url地址),就证明我们已经上传成功了,如果不信,可以直接用浏览器去验证一下,看看能不能得到文件展示。
#### 2.2.4.FastDFS实现文件下载
public void testDownload() {
try {
ClientGlobal.init(conf_filename);
TrackerClient tracker = new TrackerClient();
TrackerServer trackerServer = tracker.getConnection();
StorageServer storageServer = null;
StorageClient storageClient = new StorageClient(trackerServer, storageServer);
byte[] b = storageClient.download_file(“group1”, “M00/00/00/wKgRcFV_08OAK_KCAAAA5fm_sy874.conf”);
System.out.println(b);
IOUtils.write(b, new FileOutputStream(“D:/”+UUID.randomUUID().toString()+“.conf”));
}
catch (Exception e) {
e.printStackTrace();
}
}
#### 2.2.5.FastDFS获取将上传文件信息
public void testGetFileInfo(){
try {
ClientGlobal.init(conf_filename);
TrackerClient tracker = new TrackerClient();
TrackerServer trackerServer = tracker.getConnection();
StorageServer storageServer = null;
StorageClient storageClient = new StorageClient(trackerServer, storageServer);
FileInfo fi = storageClient.get_file_info(“group1”, “M00/00/00/wKgRcFV_08OAK_KCAAAA5fm_sy874.conf”);
System.out.println(fi.getSourceIpAddr()); System.out.println(fi.getFileSize());
System.out.println(fi.getCreateTimestamp()); System.out.println(fi.getCrc32());
}
catch (Exception e) {
e.printStackTrace();
}
}
#### 2.2.6.FastDFS获取文件名称
public void testGetFileMate(){
try {
ClientGlobal.init(conf_filename);
TrackerClient tracker = new TrackerClient();
TrackerServer trackerServer = tracker.getConnection();
StorageServer storageServer = null;
StorageClient storageClient = new StorageClient(trackerServer,
storageServer);
NameValuePair nvps [] = storageClient.get_metadata(“group1”,“M00/00/00/wKgRcFV_08OAK_KCAAAA5fm_sy874.conf”);
for(NameValuePair nvp : nvps){
System.out.println(nvp.getName() + “:” + nvp.getValue());
}
} catch (Exception e) {
e.printStackTrace();
}
}
#### 2.2.7.FastDFS实现删除文件
public void testDelete(){
try {
ClientGlobal.init(conf_filename);
TrackerClient tracker = new TrackerClient();
TrackerServer trackerServer = tracker.getConnection();
StorageServer storageServer = null;
StorageClient storageClient = new StorageClient(trackerServer,storageServer);
int i = storageClient.delete_file(“group1”,“M00/00/00/wKgRcFV_08OAK_KCAAAA5fm_sy874.conf”);
System.out.println( i==0 ? “删除成功” : “删除失败:”+i);
} catch (Exception e) {
e.printStackTrace();
}
}
#### 2.2.8.FastDFS查询文件
//查询文件
@Test
public void testQueryFile() throws IOException, MyException {
ClientGlobal.initByProperties(“config/fastdfs‐client.properties”);
TrackerClient tracker = new TrackerClient();
TrackerServer trackerServer = tracker.getConnection();
StorageServer storageServer = null;
StorageClient storageClient = new StorageClient(trackerServer,storageServer);
FileInfo fileInfo = storageClient.query_file_info(“group1”,“M00/00/01/wKhlQFrKBSOAW5AWAALcAg10vf4862.png”);
System.out.println(fileInfo);
}
## 三、FastDFS+Nginx(单点部署)事例 ### 3.1.服务器规划 > > 跟踪服务器(**Tracker Server**):ip01 > 存储服务器(**Storage Server**):ip02 > 操作系统:**CentOS7** > 用户:**root** > 数据存储目录:`/fastdfs/tracker` > 安装包: > `FastDFS_v5.08.tar.gz`:FastDFS源码 > `libfastcommon-master.zip`:(从 FastDFS 和 FastDHT 中提取出来的公共 C 函数库) > `fastdfs-nginx-module-master.zip`:storage节点http服务nginx模块 > `nginx-1.10.0.tar.gz`:Nginx安装包 > `ngx_cache_purge-2.3.tar.gz`:图片缓存清除Nginx模块(集群环境会用到) > > > 下载完成后,将压缩包解压到`/usr/local/src`目录下 ### 3.2.所有tracker和storage节点都执行如下操作 1、安装所需的依赖包
yum install make cmake gcc gcc-c++
2、安装libfatscommon
cd /usr/local/src
#安装unzip 命令: yum install -y unzip zip
unzip libfastcommon-master.zip
cd libfastcommon-master
#编译、安装
./make.sh
./make.sh install
3、安装FastDFS
cd /usr/local/src
tar -xzvf FastDFS_v5.08.tar.gz
cd FastDFS
./make.sh
./make.sh install
采用默认安装方式,相应的文件与目录如下:
1> 服务脚本:
/etc/init.d/fdfs_storaged
/etc/init.d/fdfs_trackerd
2> 配置文件(示例配置文件):
ll /etc/fdfs/
-rw-r–r-- 1 root root 1461 1月 4 14:34 client.conf.sample
-rw-r–r-- 1 root root 7927 1月 4 14:34 storage.conf.sample
-rw-r–r-- 1 root root 7200 1月 4 14:34 tracker.conf.sample
3> 命令行工具(/usr/bin目录下)
-rwxr-xr-x 1 root root 260584 1月 4 14:34 fdfs_appender_test
-rwxr-xr-x 1 root root 260281 1月 4 14:34 fdfs_appender_test1
-rwxr-xr-x 1 root root 250625 1月 4 14:34 fdfs_append_file
-rwxr-xr-x 1 root root 250045 1月 4 14:34 fdfs_crc32
-rwxr-xr-x 1 root root 250708 1月 4 14:34 fdfs_delete_file
-rwxr-xr-x 1 root root 251515 1月 4 14:34 fdfs_download_file
-rwxr-xr-x 1 root root 251273 1月 4 14:34 fdfs_file_info
-rwxr-xr-x 1 root root 266401 1月 4 14:34 fdfs_monitor
-rwxr-xr-x 1 root root 873233 1月 4 14:34 fdfs_storaged
-rwxr-xr-x 1 root root 266952 1月 4 14:34 fdfs_test
-rwxr-xr-x 1 root root 266153 1月 4 14:34 fdfs_test1
-rwxr-xr-x 1 root root 371336 1月 4 14:34 fdfs_trackerd
-rwxr-xr-x 1 root root 251651 1月 4 14:34 fdfs_upload_appender
-rwxr-xr-x 1 root root 252781 1月 4 14:34 fdfs_upload_file
### 3.3.配置tracker服务器
1> 复制tracker样例配置文件,并重命名
cp /etc/fdfs/tracker.conf.sample /etc/fdfs/tracker.conf
2> 修改tracker配置文件
vim /etc/fdfs/tracker.conf
修改的内容如下:
disabled=false # 启用配置文件
port=22122 # tracker服务器端口(默认22122)
base_path=/fastdfs/tracker # 存储日志和数据的根目录
其它参数保留默认配置, 具体配置解释可参考官方文档说明:[FastDFS配置文件详解](https://bbs.csdn.net/topics/618540462)
3> 创建base\_path指定的目录
mkdir -p /fastdfs/tracker
4> 防火墙中打开tracker服务器端口( 默认为 22122)
vi /etc/sysconfig/iptables
附加:若`/etc/sysconfig` 目录下没有iptables文件可随便写一条`iptables`命令配置个防火墙规则:如:
iptables -P OUTPUT ACCEPT
然后用命令:`service iptables save` 进行保存,默认就保存到 `/etc/sysconfig/iptables` 文件里。这时既有了这个文件。防火墙也可以启动了。接下来要写策略,也可以直接写在`/etc/sysconfig/iptables` 里了。
添加如下端口行:
-A INPUT -m state --state NEW -m tcp -p tcp --dport 22122 -j ACCEPT
重启防火墙
service iptables restart
5> 启动tracker服务器
/etc/init.d/fdfs_trackerd start
初次启动,会在`/fastdfs/tracker`目录下生成`logs、data`两个目录。
drwxr-xr-x 2 root root 4096 1月 4 15:00 data
drwxr-xr-x 2 root root 4096 1月 4 14:38 logs
检查FastDFS Tracker Server是否启动成功:
ps -ef | grep fdfs_trackerd
![在这里插入图片描述](https://img-blog.csdnimg.cn/b25bc84bf05741689141f0342b75f42d.png)
### 3.4.配置storage服务器
1> 复制storage样例配置文件,并重命名
cp /etc/fdfs/storage.conf.sample /etc/fdfs/storage.conf
2> 编辑配置文件
vi /etc/fdfs/storage.conf
修改的内容如下:
disabled=false # 启用配置文件
port=23000 # storage服务端口
base_path=/fastdfs/storage # 数据和日志文件存储根目录
store_path0=/fastdfs/storage # 第一个存储目录
tracker_server=ip01:22122 # tracker服务器IP和端口
http.server_port=8888 # http访问文件的端口
其它参数保留默认配置, 具体配置解释可参考官方文档说明:[FastDFS配置文件详解](https://bbs.csdn.net/topics/618540462)
3> 创建基础数据目录
mkdir -p /fastdfs/storage
4> 防火墙中打开storage服务器端口( 默认为 23000)
vi /etc/sysconfig/iptables
#添加如下端口行:
-A INPUT -m state --state NEW -m tcp -p tcp --dport 23000 -j ACCEPT
重启防火墙
service iptables restart
5> 启动storage服务器
/etc/init.d/fdfs_storaged start
初次启动,会在`/fastdfs/storage`目录下生成logs、data两个目录。
drwxr-xr-x 259 root root 4096 Mar 31 06:22 data
drwxr-xr-x 2 root root 4096 Mar 31 06:22 logs
检查FastDFS Tracker Server是否启动成功:
[root@gyl-test-t9 ~]# ps -ef | grep fdfs_storaged
root 1336 1 3 06:22 ? 00:00:01 /usr/bin/fdfs_storaged /etc/fdfs/storage.conf
root 1347 369 0 06:23 pts/0 00:00:00 grep fdfs_storaged
### 3.5.文件上传测试(ip01)
1> 修改Tracker服务器客户端配置文件
cp /etc/fdfs/client.conf.sample /etc/fdfs/client.conf
vim /etc/fdfs/client.conf
修改以下配置,其它保持默认
base_path=/fastdfs/tracker
tracker_server=ip01:22122
2> 执行文件上传命令
#/usr/local/src/test.png 是需要上传文件路径
/usr/bin/fdfs_upload_file /etc/fdfs/client.conf /usr/local/src/test.png
返回文件ID号:`group1/M00/00/00/tlxkwlhttsGAU2ZXAAC07quU0oE095.png` (能返回以上文件ID,说明文件已经上传成功) ### 3.6.在所有storage节点安装fastdfs-nginx-module 1>fastdfs-nginx-module作用: > > FastDFS 通过 Tracker 服务器,将文件放在 Storage 服务器存储,但是同组存储服务器之间需要进入 文件复制,有同步延迟的问题。假设 Tracker 服务器将文件上传到了 ip01,上传成功后文件 ID 已经返回给客户端。此时 FastDFS 存储集群机制会将这个文件同步到同组存储 ip02,在文件还 没有复制完成的情况下,客户端如果用这个文件 ID 在 ip02 上取文件,就会出现文件无法访问的 错误。而 fastdfs-nginx-module 可以重定向文件连接到源服务器取文件,避免客户端由于复制延迟导致的 文件无法访问错误。(解压后的 fastdfs-nginx-module 在 nginx 安装时使用) > > > 2> 解压 `fastdfs-nginx-module_v1.16.tar.gz`
cd /usr/local/src
tar -xzvf fastdfs-nginx-module_v1.16.tar.gz
3> 修改 `fastdfs-nginx-module` 的 config 配置文件
cd fastdfs-nginx-module/src
vi config
将
CORE_INCS=“$CORE_INCS /usr/local/include/fastdfs /usr/local/include/fastcommon/”
修改为:
CORE_INCS=“$CORE_INCS /usr/include/fastdfs /usr/include/fastcommon/”
4>上传当前的稳定版本 Nginx(`nginx-1.10.0.tar.gz`)到`/usr/local/src` 目录
5>安装编译 Nginx 所需的依赖包
yum install gcc gcc-c++ make automake autoconf libtool pcre* zlib openssl openssl-devel
6>编译安装 Nginx (添加 fastdfs-nginx-module 模块)
cd /usr/local/src/
tar -zxvf nginx-1.10.0.tar.gz
cd nginx-1.10.0
./configure --add-module=/usr/local/src/fastdfs-nginx-module/src
make && make install
比对 nginx下Makefile
default: build
clean:
rm -rf Makefile objs
build:
$(MAKE) -f objs/Makefile
install:
$(MAKE) -f objs/Makefile install
modules:
$(MAKE) -f objs/Makefile modules
upgrade:
/usr/local/nginx/sbin/nginx -t
kill -USR2 'cat /usr/local/nginx/logs/nginx.pid'
sleep 1
test -f /usr/local/nginx/logs/nginx.pid.oldbin
kill -QUIT 'cat /usr/local/nginx/logs/nginx.pid.oldbin'
7>复制 `fastdfs-nginx-module` 源码中的配置文件到`/etc/fdfs` 目录,并修改
cp /usr/local/src/fastdfs-nginx-module/src/mod_fastdfs.conf /etc/fdfs/
vi /etc/fdfs/mod_fastdfs.conf
8>修改以下配置:
connect_timeout=10
base_path=/tmp
tracker_server=ip01:22122
storage_server_port=23000
group_name=group1
url_have_group_name = true
store_path0=/fastdfs/storage
9> 复制 FastDFS 的部分配置文件到/etc/fdfs 目录
cd /usr/local/src/FastDFS/conf
cp http.conf mime.types /etc/fdfs/
10> 在/fastdfs/storage 文件存储目录下创建软连接,将其链接到实际存放数据的目录
ln -s /fastdfs/storage/data/ /fastdfs/storage/data/M00
11>配置 Nginx
user nobody;
worker_processes 1;
events {
worker_connections 1024;
}
http {
include mime.types;
default_type application/octet-stream;
sendfile on;
keepalive_timeout 65;
server {
listen 8888;
server_name localhost;
location ~/group([0-9])/M00 {
ngx_fastdfs_module;
}
error_page 500 502 503 504 /50x.html;
location = /50x.html {
root html;
}
}
}
A、8888 端口值是要与`/etc/fdfs/storage.conf` 中的 http.server\_port=8888 相对应, 因为 http.server\_port 默认为 8888,如果想改成 80,则要对应修改过来。
B、Storage 对应有多个 group 的情况下,访问路径带 group 名,如\*\*/group1/M00/00/00/xxx\*\*, 对应的 Nginx 配置为:
location ~/group([0-9])/M00 {
ngx_fastdfs_module;
}
C、如查下载时如发现老报 404,将 `nginx.conf` 第一行 user nobody 修改为 `user root` 后重新启动。
12> 防火墙中打开 Nginx 的 8888 端口
vi /etc/sysconfig/iptables
添加:
-A INPUT -m state --state NEW -m tcp -p tcp --dport 8888 -j ACCEPT
#重启防火墙
service iptables restart
启动 Nginx
/usr/local/nginx/sbin/nginx
(重启 Nginx 的命令为:/usr/local/nginx/sbin/nginx -s reload)
13>通过浏览器访问测试时上传的文件
http://ip:port/group1/M00/00/00/tlxkwlhttsGAU2ZXAAC07quU0oE095.png
or
http://ip/group1/M00/00/00/tlxkwlhttsGAU2ZXAAC07quU0oE095.png
## 四、FastDFS集群部署(实现高可用(HA)) ![在这里插入图片描述](https://img-blog.csdnimg.cn/d74db793d82e43c5b9ee0145b5f65428.png?x-oss-process=image/watermark,type_ZHJvaWRzYW5zZmFsbGJhY2s,shadow_50,text_Q1NETiBA55m95aSn6ZSF,size_20,color_FFFFFF,t_70,g_se,x_16) ### 4.1.准备 1.服务器规划: > > 跟踪服务器1【主机】(Tracker Server):192.100.139.121 > 跟踪服务器2【备机】(Tracker Server):192.100.139.122 > 存储服务器1(Storage Server):192.100.139.121 > 存储服务器2(Storage Server):192.100.139.123 > 存储服务器3(Storage Server):192.100.139.124 > > > 操作系统:CentOS7 用户:root 数据存储目录: | 应用 | 安装目录 | | --- | --- | | Nginx | /opt/nginx | | Fastdfs | /usr/bin | | Keepalived | /usr/local | | 安装包 | /home/yxgly/resourcese /usr/local/src | | Tracker\_data | /fastdfs/tracker | | Storage\_data | /fastdfs/storage | 2.安装包 > > `FastDFS_v5.08.tar.gz`:FastDFS源码 > `libfastcommon-master.zip`:(从 FastDFS 和 FastDHT 中提取出来的公共 C 函数库) > `fastdfs-nginx-module-master.zip`:storage节点http服务nginx模块 > `nginx-1.10.0.tar.gz`:Nginx安装包 > `ngx_cache_purge-2.3.tar.gz`:图片缓存清除Nginx模块(集群环境会用到) > > > 下载完成后,将压缩包解压到/usr/local/src目录下 ### 4.2.所有tracker和storage节点都执行如下操作 1、安装所需的依赖包
yum install make cmake gcc gcc-c++
2、安装libfatscommon
cd /usr/local/src
#安装unzip 命令: yum install -y unzip zip
unzip libfastcommon-master.zip
cd libfastcommon-master
编译、安装
./make.sh
./make.sh install
3、安装FastDFS
cd /usr/local/src
tar -xzvf FastDFS_v5.08.tar.gz
cd FastDFS
./make.sh
./make.sh install
采用默认安装方式,相应的文件与目录检查如下:
1> 服务脚本:
/etc/init.d/fdfs_storaged
/etc/init.d/fdfs_trackerd
2> 配置文件(示例配置文件):
ll /etc/fdfs/
-rw-r–r-- 1 root root 1461 1月 4 14:34 client.conf.sample
-rw-r–r-- 1 root root 7927 1月 4 14:34 storage.conf.sample
-rw-r–r-- 1 root root 7200 1月 4 14:34 tracker.conf.sample
3> 命令行工具(/usr/bin目录下)
ll /usr/bin/fdfs_*
-rwxr-xr-x 1 root root 260584 1月 4 14:34 fdfs_appender_test
-rwxr-xr-x 1 root root 260281 1月 4 14:34 fdfs_appender_test1
-rwxr-xr-x 1 root root 250625 1月 4 14:34 fdfs_append_file
-rwxr-xr-x 1 root root 250045 1月 4 14:34 fdfs_crc32
-rwxr-xr-x 1 root root 250708 1月 4 14:34 fdfs_delete_file
-rwxr-xr-x 1 root root 251515 1月 4 14:34 fdfs_download_file
-rwxr-xr-x 1 root root 251273 1月 4 14:34 fdfs_file_info
-rwxr-xr-x 1 root root 266401 1月 4 14:34 fdfs_monitor
-rwxr-xr-x 1 root root 873233 1月 4 14:34 fdfs_storaged
-rwxr-xr-x 1 root root 266952 1月 4 14:34 fdfs_test
-rwxr-xr-x 1 root root 266153 1月 4 14:34 fdfs_test1
-rwxr-xr-x 1 root root 371336 1月 4 14:34 fdfs_trackerd
-rwxr-xr-x 1 root root 251651 1月 4 14:34 fdfs_upload_appender
-rwxr-xr-x 1 root root 252781 1月 4 14:34 fdfs_upload_file
### 4.3.配置tracker服务器
1、复制tracker样例配置文件,并重命名
cp /etc/fdfs/tracker.conf.sample /etc/fdfs/tracker.conf
2、修改tracker配置文件
vim /etc/fdfs/tracker.conf
修改的内容如下:
disabled=false # 启用配置文件
port=22122 # tracker服务器端口(默认22122)
base_path=/fastdfs/tracker # 存储日志和数据的根目录
store_group=group1
其它参数保留默认配置, 具体配置解释可参考官方文档说明:[FastDFS配置文件详解](https://bbs.csdn.net/topics/618540462)
3、创建base\_path指定的目录
mkdir -p /fastdfs/tracker
4、防火墙中打开tracker服务器端口( 默认为 22122)
vi /etc/sysconfig/iptables
附加:若/etc/sysconfig 目录下没有iptables文件可随便写一条iptables命令配置个防火墙规则:如:
iptables -P OUTPUT ACCEPT
然后用命令:`service iptables save` 进行保存,默认就保存到 /etc/sysconfig/iptables 文件里。这时既有了这个文件。防火墙也可以启动了。接下来要写策略,也可以直接写在`/etc/sysconfig/iptables` 里了。
添加如下端口行:
-A INPUT -m state --state NEW -m tcp -p tcp --dport 22122 -j ACCEPT
重启防火墙
service iptables restart
5、启动tracker服务器
/etc/init.d/fdfs_trackerd start
初次启动,会在/fastdfs/tracker目录下生成logs、data两个目录。
drwxr-xr-x 2 root root 4096 1月 4 15:00 data
drwxr-xr-x 2 root root 4096 1月 4 14:38 logs
检查FastDFS Tracker Server是否启动成功:
ps -ef | grep fdfs_trackerd
### 4.4.配置storage服务器
1、复制storage样例配置文件,并重命名
cp /etc/fdfs/storage.conf.sample /etc/fdfs/storage.conf
2、编辑配置文件
vi /etc/fdfs/storage.conf
修改的内容如下:
disabled=false # 启用配置文件
port=23000 # storage服务端口
base_path=/fastdfs/storage # 数据和日志文件存储根目录
store_path0=/fastdfs/storage # 第一个存储目录
tracker_server=192.100.139.121:22122 # tracker服务器IP和端口
tracker_server=192.100.139.122:22122 #tracker服务器IP2和端口[Microsof1]
http.server_port=8888 # http访问文件的端口
其它参数保留默认配置, 具体配置解释可参考官方文档说明:[FastDFS配置文件详解](https://bbs.csdn.net/topics/618540462)
3、创建基础数据目录
mkdir -p /fastdfs/storage
4、防火墙中打开storage服务器端口( 默认为 23000)
vi /etc/sysconfig/iptables
#添加如下端口行:
-A INPUT -m state --state NEW -m tcp -p tcp --dport 23000 -j ACCEPT
重启防火墙
service iptables restart
注:集群环境下
**追踪+存储节点**操作**步骤一、步骤二、步骤三**
**存储节点**只做存储则只操作**步骤三**
5、启动storage服务器
/etc/init.d/fdfs_storaged start
初次启动,会在/fastdfs/storage目录下生成logs、data两个目录。
drwxr-xr-x 259 root root 4096 Mar 31 06:22 data
drwxr-xr-x 2 root root 4096 Mar 31 06:22 logs
检查FastDFS Tracker Server是否启动成功:
[root@gyl-test-t9 ~]# ps -ef | grep fdfs_storaged
root 1336 1 3 06:22 ? 00:00:01 /usr/bin/fdfs_storaged /etc/fdfs/storage.conf
root 1347 369 0 06:23 pts/0 00:00:00 grep fdfs_storaged
### 4.5.文件上传测试(ip01)
1、修改Tracker服务器客户端配置文件
cp /etc/fdfs/client.conf.sample /etc/fdfs/client.conf
vim /etc/fdfs/client.conf
修改以下配置,其它保持默认
base_path=/fastdfs/tracker
tracker_server=192.100.139.121:22122 # tracker服务器IP和端口
tracker_server=192.100.139.122:22122 #tracker服务器IP2和端口
还有兄弟不知道网络安全面试可以提前刷题吗?费时一周整理的160+网络安全面试题,金九银十,做网络安全面试里的显眼包! 王岚嵚工程师面试题(附答案),只能帮兄弟们到这儿了!如果你能答对70%,找一个安全工作,问题不大。 对于有1-3年工作经验,想要跳槽的朋友来说,也是很好的温习资料! 【完整版领取方式在文末!!】 ***93道网络安全面试题*** ![](https://img-blog.csdnimg.cn/img_convert/6679c89ccd849f9504c48bb02882ef8d.png) ![](https://img-blog.csdnimg.cn/img_convert/07ce1a919614bde78921fb2f8ddf0c2f.png) ![](https://img-blog.csdnimg.cn/img_convert/44238619c3ba2d672b5b8dc4a529b01d.png) 内容实在太多,不一一截图了 ### 黑客学习资源推荐 最后给大家分享一份全套的网络安全学习资料,给那些想学习 网络安全的小伙伴们一点帮助! 对于从来没有接触过网络安全的同学,我们帮你准备了详细的学习成长路线图。可以说是最科学最系统的学习路线,大家跟着这个大的方向学习准没问题。 #### 1️⃣零基础入门 ##### ① 学习路线 对于从来没有接触过网络安全的同学,我们帮你准备了详细的**学习成长路线图**。可以说是**最科学最系统的学习路线**,大家跟着这个大的方向学习准没问题。 ![image](https://img-blog.csdnimg.cn/img_convert/acb3c4714e29498573a58a3c79c775da.gif#pic_center) ##### ② 路线对应学习视频 同时每个成长路线对应的板块都有配套的视频提供: ![image-20231025112050764](https://img-blog.csdnimg.cn/874ad4fd3dbe4f6bb3bff17885655014.png#pic_center) **网上学习资料一大堆,但如果学到的知识不成体系,遇到问题时只是浅尝辄止,不再深入研究,那么很难做到真正的技术提升。** **[需要这份系统化资料的朋友,可以点击这里获取](https://bbs.csdn.net/topics/618540462)** **一个人可以走的很快,但一群人才能走的更远!不论你是正从事IT行业的老鸟或是对IT行业感兴趣的新人,都欢迎加入我们的的圈子(技术交流、学习资源、职场吐槽、大厂内推、面试辅导),让我们一起学习成长!**
Copyright © 2003-2013 www.wpsshop.cn 版权所有,并保留所有权利。