用了fastapi还需要nginx_nginx 与 fastdfs 的配置过程,已经越过了许多坑,我跪着进入了欢迎页面。。。...

nginx 与 fastdfs 的配置过程,已经越过了许多坑,我跪着进入了欢迎页面。。。

上面的是 fastdfs 与 nginx 的官网,我从这里面跌跌撞撞的走出来了,下面是我总结出来的一条平坦的路,小伙伴们可以参考参考。

我下面的攻略其实跟官网上的大同小异,那为什么我要重写再记录一下这个过程呢?因为官网里面的步骤是存在着许多坑的,为了帮助大家节省一些不必要浪费的时间,能够快速的完成这个功能的搭建,所以我这么做了。

首先我们需要一台服务器,这里我用的是 VM 虚拟机,ISO 是 CentOS7,使用 XShell 操作终端,Xshell、虚拟机和 CentOS 的安装我就不赘述啦,直接进入正题。

我们进入 Linux 后使用下面的命令查看下当前的 ip

ip addr

找到你的网卡名称对应的 inet 后面的 ip,我这里的是 192.168.1.103,找到了记录一下先,后面我们会用到

安装编译环境

yum install git gcc gcc-c++ make automake autoconf libtool pcre pcre-devel zlib zlib-devel openssl-devel wget vim -y

创建数据存储目录

mkdir /home/dfs

切换到安装目录准备下载安装包

cd /usr/local/src

安装 libfatscommon

git clone https://github.com/happyfish100/libfastcommon.git --depth 1

进入文件

cd libfastcommon/

编译安装

./make.sh && ./make.sh install

完成后回到上一层目录

cd ../

安装 FastDFS

git clone https://github.com/happyfish100/fastdfs.git --depth 1

进入文件

cd fastdfs/

编译安装

./make.sh && ./make.sh install

配置文件准备

cp /usr/etc/fdfs/tracker.conf.sample /etc/fdfs/tracker.conf

cp /usr/etc/fdfs/storage.conf.sample /etc/fdfs/storage.conf

cp /usr/etc/fdfs/client.conf.sample /etc/fdfs/client.conf #客户端文件,测试用

cp /usr/local/src/fastdfs/conf/http.conf /etc/fdfs/ #供nginx访问使用

cp /usr/local/src/fastdfs/conf/mime.types /etc/fdfs/ #供nginx访问使用

注意:如果提示"无法获取某某某,没有那个文件或目录",那么就把 cp 后面的/usr 去掉,直接从/etc 开始写

返回上一级目录

cd ../

安装 fastdfs-nginx-module

git clone https://github.com/happyfish100/fastdfs-nginx-module.git --depth 1

cp /usr/local/src/fastdfs-nginx-module/src/mod_fastdfs.conf /etc/fdfs

返回上一级目录

cd ../

安装 nginx

下载 nginx 压缩包

wget http://nginx.org/download/nginx-1.15.4.tar.gz

解压

tar -zxvf nginx-1.15.4.tar.gz

进入解压后的文件夹

cd nginx-1.15.4/

添加 fastdfs-nginx-module 模块

./configure --add-module=/usr/local/src/fastdfs-nginx-module/src/

编译安装

make && make install

tracker 配置

vim /etc/fdfs/tracker.conf

需要修改的内容如下

port=22122 # tracker服务器端口(默认22122,一般不修改)

# 这里原本为base_path=/home/yuqing/fastdfs,将他改为如下

base_path=/home/dfs # 存储日志和数据的根目录

保存退出

# 按下Esc

输入 :wq! 敲下回车

storage 配置

vim /etc/fdfs/storage.conf

需要修改的内容如下

port=23000 # storage服务端口(默认23000,一般不修改)

# 这里原本为base_path=/home/yuqing/fastdfs,将他改为如下

base_path=/home/dfs # 数据和日志文件存储根目录

# 这里原本为base_path0=/home/yuqing/fastdfs,将他改为如下

store_path0=/home/dfs # 第一个存储目录

# 这里可能会存在两条相同的配置,注释掉一条即可,然后ip改成最开始让记录下来的你的ip,这里因为我的是192.168.1.103,所以我改成了这个

tracker_server=192.168.1.103:22122 # tracker服务器IP和端口

http.server_port=8888 # http访问文件的端口(默认8888,看情况修改,和nginx中保持一致)

client 测试

vim /etc/fdfs/client.conf

需要修改的内容如下

# 这里也是改成与之前相同的

base_path=/home/dfs

# 这里也可能存在两条,注释掉一条即可,ip改成自己的ip

tracker_server=192.168.1.103:22122 #tracker服务器IP和端口

保存退出

按下Esc

输入 :wq! 敲下回车

启动

不关闭防火墙的话无法使用

systemctl stop firewalld.service # 关闭防火墙

systemctl disable firewalld.service #重启后防火墙不会自启动

启动 tracker 服务

/etc/init.d/fdfs_trackerd start

chkconfig fdfs_trackerd on #重启后会自启动tracker服务

启动 storage 服务

/etc/init.d/fdfs_storaged start

chkconfig fdfs_storaged on #重启后会自启动storage服务

查看资源管理器

ps -ef | grep fdfs

此时有包含 fdfs 或者以 fdfs 打头的进程有这两个,说明进程启动成功了

测试

使用 Xftp 连接 CentOS

连接成功后可以随便放一张图片到 CentOS 里面去,以便测试

回到 root 文件夹下

cd ~

# /root/1.png是刚才用来测试的存放的图片的路径

fdfs_upload_file /etc/fdfs/client.conf /root/1.png

得到一串路径

复制这串路径,保存一下,待会儿会用到

配置 nginx 访问

vim /etc/fdfs/mod_fastdfs.conf

需要修改的内容如下

# 原本为false 改为 true

url_have_group_name=true

store_path0=/home/dfs

#原本为tracker_server=tracker:22122 改为如下,ip为自己的ip

tracker_server=192.168.1.103:22122

保存并退出

配置 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

/usr/local/nginx/sbin/nginx

注意:如果重启过CentOS,那么nginx也需要重新启动

随后,在你的浏览器地址栏上输入:192.168.1.103:8080(这里的 ip 为你自己的 ip),就能够与访问到 nginx 的欢迎页面了!

还没有完!还有最后一步测试,将之前记录的图片的路径拷贝到 192.168.1.103:8080 的后面,变成 192.168.1.103:8080/group1/M00/00/···.png 就能够访问到你的图片啦!

本文来自互联网用户投稿,该文观点仅代表作者本人,不代表本站立场。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如若转载,请注明出处:http://www.mzph.cn/news/360701.shtml

如若内容造成侵权/违法违规/事实不符,请联系多彩编程网进行投诉反馈email:809451989@qq.com,一经查实,立即删除!

相关文章

Spring Batch教程–最终指南

这是Spring批处理教程,它是Spring框架的一部分。 Spring Batch提供了可重用的功能,这些功能对于处理大量记录至关重要,包括日志记录/跟踪,事务管理,作业处理统计信息,作业重新启动,跳过和资源管…

Neurocomputing 投稿注意事项

1. *.tex 和 *.bib 都以Manuscript项(Item)提交 (abstract.tex除外)2. abstract.tex以Abstract项(Item)提交3. *.eps以Figure项(Item)提交4. biographies.pdf以Biography of the aut…

箱式图 添加异常值平均值_什么是脏数据?怎样用箱形图分析异常值?终于有人讲明白了...

导读:数据质量分析是数据挖掘中数据准备过程的重要一环,是数据预处理的前提,也是数据挖掘分析结论有效性和准确性的基础。没有可信的数据,数据挖掘构建的模型将是空中楼阁。数据质量分析的主要任务是检查原始数据中是否存在脏数据…

[编程相关]正则表达式Regex语法

--目录-- 0. 前言1. 正则语法2. 正则搜索语法(1)字符集 Character_Classes(2)锚定符 Anchors(3)计数 Quantifiers(4)分组与索引 Group_And_Reference(5)周围 …

窗口程序ImageView(仿QQ图片查看器)

近期一直在学习窗口程序之类的问题,下午正好有机会和大家讨论一下. 程序运行截图: 应用方法: 1、直接把图像文件拖到图标上表现 2、通过命令行方式,示例:ImageView.exe "带全路径的图像文件名称" 3、打开ImageView.exe&…

华为硬件工程师社招机考题库_干货:2016年华为中兴硬件工程师笔试题目与经验...

1。一位工科男在拿到华为实习生offer后的面经干货某211学校,机械学院研究生。不得不说一下,华为的员工们真的是认真做事,因为怕我们担心下班轮不到面试。工作人员特意去休息区告诉我们,不面试完他们不会下班,果然是个爱…

USACO3.15stamps(dp)

对dp很无奈。。枚举所有可能达到的值 dp[i]表示到达i值所用最少的邮票 1 /*2 ID: shangca23 LANG: C4 TASK: stamps5 */6 #include <iostream>7 #include<cstdio>8 #include<cstring>9 #include<stdlib.h> 10 #include<algorithm> …

thinkcmf搭建教程_5分钟快速入门

# 5分钟快速入门[TOC1,5]## 1.创建模板目录在public/themes/目录下创建quick_start目录## 2.添加模板描述文件在public/themes/quick_start目录下创建manifest.json文件&#xff0c;内容如下&#xff1a;{"name": "quick_start","version": &quo…

WAV格式

查看下面文章时,请用记事本打开一个wav格式的文件. WAV格式是微软公司开发的一种声音文件格式&#xff0c;也叫波形声音文件&#xff0c;是最早的数字音频格式&#xff0c;被Windows平台及其应用程序广泛支持。WAV格式支持许多压缩算法&#xff0c;支持多种音频位数、采样频率和…

基于价值的类

在Java 8中&#xff0c;某些类在Javadoc中有一个小注释&#xff0c;说明它们是基于值的类 。 其中包括简短说明的链接&#xff0c;以及有关不使用它们的限制。 这很容易被忽略&#xff0c;如果这样做&#xff0c;则可能会在将来的Java版本中以微妙的方式破坏代码。 为了避免这种…

angular五大服务顺序,angularJS $事件处理程序的触发顺序

I was wondering two things, in the context of angularJS event handling.How is defined the order in which handlers listening to the same event are triggered?Is it a sign of a bad design if you start wondering about this?After reading documentation on angu…

地形 凹陷

地形凹下去&#xff1a;先要设置terrain-flattenheightmap 这个 转载于:https://www.cnblogs.com/wolfsky6/archive/2013/05/29/3106078.html

REST API的演变

每个开发人员都以某种方式接触到API 。 要么为一家大公司集成一个主要系统&#xff0c;或者使用最新的图形库生成一些精美的图表&#xff0c;要么直接与他喜欢的编程语言进行交互。 事实是&#xff0c;API无处不在&#xff01; 它们实际上代表了当今Internet的基本构建块&#…

python爬携程酒店评论_python爬虫爬取携程网的酒店评论数据时,有个请求参数不知道是怎么生成的?...

是下面这个代码生成的&#xff0c;看不懂&#xff1a;,_getElevenValue:function(e){function o(e){for(var o["A","B","C","D","E","F","G","H","I","J","K"…

Oracle MAF中的LOV

我们都喜欢最强大的ADF功能值列表之一。 使用它们&#xff0c;我们可以在ADF应用程序中声明性地轻松构建非常复杂的功能。 一件好事是&#xff0c;我们在Oracle MAF中也有类似的方法。 在ADF BC中&#xff0c;我们在业务服务级别&#xff08;基本上在实体或VO级别&#xff09;定…

怎么移动矩形选框工具选中的东西_ps矩形选框工具怎么用,你值得一看的技巧...

PS是一款非常好用的图片制作软件&#xff0c;我们可以使用矩形选框工具&#xff0c;选择自己需要的区域进行操作&#xff0c;下面小编就教大家ps矩形选框工具怎么用&#xff0c;希望可以帮助到大家。操作方法01首先我们打开PS进入到主界面&#xff0c;如图所示。02之后我们需要…

functionclass[LeetCode]Path Sum II

在本篇文章中,我们主要介绍functionclass的内容,自我感觉有个不错的建议和大家分享下 每日一道理 只有启程&#xff0c;才会到达理想和目的地&#xff0c;只有拼搏&#xff0c;才会获得辉煌的成功&#xff0c;只有播种&#xff0c;才会有收获。只有追求&#xff0c;才会品味堂堂…

Java8中的Mapreduce

Wordcount旨在Mapreduce其余编程世界中的“ Hello world”。 最近&#xff0c;我一直在探索一些更著名的Java 8功能&#xff0c;例如Lambda&#xff0c;Streams和Optionals&#xff0c;所以我认为在Java中简化Wordcount版本会很不错。 Java的Stream和Lambda函数使实现数据处理…

stream 过滤俩个字段_Java8 Stream:2万字20个实例,玩转集合的筛选、归约、分组、聚合...

点波关注不迷路&#xff0c;一键三连好运连连&#xff01;先贴上几个案例&#xff0c;水平高超的同学可以挑战一下&#xff1a;从员工集合中筛选出salary大于8000的员工&#xff0c;并放置到新的集合里。统计员工的最高薪资、平均薪资、薪资之和。将员工按薪资从高到低排序&…

C# 栈的实现

早前写得栈的实现&#xff0c;基本功能都有。 代码&#xff1a; /// <summary>/// 栈/// </summary>public class Stack{private object[] data; //用data数组来储存数据private int size; //栈的大小private int top; //top指针public object this[int…