nginx访问fastdfs和html,FastDFS 整合 Nginx 访问上传的图片文件(五)

一、整合 Nginx 访问上传的图片文件

1、下载 fastdfs-nginx-module 模块

版本不对应可能会给接下来的安装带来各种问题。fastdfs V5.11 对应 fastdfs-nginx-module V1.20

fastdfs V5.10 对应 fastdfs-nginx-module V1.19# 下载 V1.20 版本

wget https://github.com/happyfish100/fastdfs-nginx-module/archive/V1.20.tar.gz

# 解压

tar -zxvf V1.20.tar.gz

2、修改 fastdfs-nginx-module配置文件

在我编译 nginx 模块时,出现如下 fatal error: common_define.h 错误

bc7fdfc03a181785f939cc7c3cabcadc.gif/usr/include/fastdfs/fdfs_define.h:15:10: fatal error: common_define.h: 没有那个文件或目录

#include "common_define.h"

^~~~~~~~~~~~~~~~~

compilation terminated.

make[1]: *** [objs/Makefile:1187:objs/addon/src/ngx_http_fastdfs_module.o] 错误 1

make[1]: 离开目录“/home/liurenkui/文档/MyLibrary/nginx-1.14.2”

make: *** [Makefile:8:build] 错误 2

经过查询发现这个问题并非偶然。在 Github 的 issue 上也有人提出这个问题,幸运的是找到了解决方法。

编辑 fastdfs-nginx-module-1.20/src/config 文件。通过关键字 ngx_module_incs 和 CORE_INCS 找到下面两行。ngx_module_incs="/usr/local/include"

CORE_INCS="$CORE_INCS /usr/local/include"

修改为ngx_module_incs="/usr/include/fastdfs /usr/include/fastcommon/"

CORE_INCS="$CORE_INCS /usr/include/fastdfs /usr/include/fastcommon/"

3、安装 Nginx

如果早先已经安装了 Nginx 服务器,建议先进行删除,重新编译安装一次。

(1)安装 nginx 所需的依赖 lib# 安装 gcc 依赖库

sudo apt install gcc

# 安装 pcre 依赖库

sudo apt install libpcre3 libpcre3-dev

# 安装 zlib 依赖库

sudo apt install zlib1g-dev

# 安装 ssl 依赖库

apt-get install openssl

(2)安装 nginx 并整合 fastdfs-nginx-module 模块# 下载 Nginx

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

# 解压

tar -zxvf nginx-1.14.2.tar.gz

# 进入目录

cd nginx-1.14.2/

# 配置 nginx 安装位置 和 fastdfs-nginx-module-1.20/src 依赖模块的路径

./configure --prefix=/usr/local/nginx --add-module=/MySoftware/FastDFS/fastdfs-nginx-module-1.20/src

# 编译 nginx

make

# 安装

sudo make install

安装完毕后,发现启动 nginx 服务并不能正常使用。因为接下来还需要对 nginx 做一些配置。

4、拷贝并修改 mod_fastdfs.conf 配置文件# 进入解压的 fastdfs-nginx-module-1.20 目录

cd fastdfs-nginx-module-1.20/

# 将 mod_fastdfs.conf 文件拷贝到 /etc/fdfs/ 目录

sudo cp src/mod_fastdfs.conf /etc/fdfs/

# 编辑

vim /etc/fdfs/mod_fastdfs.conf

编辑 mod_fastdfs.conf 文件内容,重点修改几个属性connect_timeout=10                  # 超时时间

base_path=/home/liurenkui/MyOpt/fastdfs/storage     # 保存日志目录

tracker_server=172.16.119.129:22122         # tracker 服务器

storage_server_port=23000               # storage 服务器端口

url_have_group_name=true                # url包含组名

store_path0=/home/liurenkui/MyOpt/fastdfs/storage_data  # 存储目录

5、拷贝 http.conf 和 mime.types 文件# 进入解压的 fastdfs-5.11 目录

cd fastdfs-5.11/conf

# 拷贝到 /etc/fdfs/ 目录

sudo cp http.conf mime.types /etc/fdfs/

6、配置 M00 软连接

在 /home/liurenkui/MyOpt/fastdfs/storage_data/ 文件存储目录下创建软连接,将其链接到实际存放数据的目录。sudo ln -s /home/liurenkui/MyOpt/fastdfs/storage_data/data/ /home/liurenkui/MyOpt/fastdfs/storage_data/data/M00

bc7fdfc03a181785f939cc7c3cabcadc.gif

7、修改 nginx.conf 配置文件

修改 /usr/local/nginx/conf/nginx.conf 配置文件,找到如下代码段server {

listen       80;

server_name  localhost;

#charset koi8-r;

#access_log  logs/host.access.log  main;

location / {

root   html;

index  index.html index.htm;

}

...

}

修改监听端口 listen 8888,并新增一个 location 节点。server {

listen       8888;

server_name  localhost;

#charset koi8-r;

#access_log  logs/host.access.log  main;

location / {

root   html;

index  index.html index.htm;

}

location ~/group([0-9])/M00 {

root /home/liurenkui/MyOpt/fastdfs/storage_data/data;

ngx_fastdfs_module;

}

...

}

Nginx 对外开放的端口号,必须和 storage.conf 配置文件中的 http.server_port 属性值一样。

8、启动 Nginx 服务器,访问上传的文件内容

(1)启动nginx# 启动 nginx

sudo /usr/local/nginx/sbin/nginx

bc7fdfc03a181785f939cc7c3cabcadc.gif

启动成功会显示 ngx_http_fastdfs_set pid=xxx 字样,这是因为和 fastdfs-nginx-module 模块整合的原因。

(2)访问资源文件

之前介绍过客户端模拟用户上传,成功后返回的 group1/M00/00/00/rBB3gFw_T2CADZ-LAAAXLcZMWT480.jpeg 可以理解为:文件ID。

bc7fdfc03a181785f939cc7c3cabcadc.gif

访问文件格式:http://域名:端口号+文件ID 或 http://IP:端口号+文件ID。

访问地址:http://172.16.119.128:8888/group1/M00/00/00/rBB3gFw_T2CADZ-LAAAXLcZMWT480.jpeg

bc7fdfc03a181785f939cc7c3cabcadc.gif

二、相关启停命令#tracker节点启停

/etc/init.d/fdfs_trackerd start

/etc/init.d/fdfs_trackerd stop

#storage启停

/etc/init.d/fdfs_storaged start

/etc/init.d/fdfs_storaged stop

#nginx启停

/usr/local/nginx/sbin/nginx

/usr/local/nginx/sbin/nginx -s stop

#查看服务进程

ps -ef|grep fdfs

ps -ef|grep nginx

到此全部配置完成!!

三、mod_fastdfs.conf 配置文件介绍# 连接超时,单位:秒

# default value is 30s

connect_timeout=2

# 网络超时,单位:秒

# default value is 30s

network_timeout=30

# 基础路径

base_path=/tmp

# 是否从跟踪服务器加载FastDFS参数

# since V1.12

# default value is false

load_fdfs_parameters_from_tracker=true

# 同 tracker.conf

# 仅当load_fdfs_parameters_from_tracker为false时有效

# since V1.12

# default value is 86400 seconds (one day)

storage_sync_file_max_delay = 86400

# 同 tracker.conf

# 仅当load_fdfs_parameters_from_tracker为false时有效

# default value is false

# since V1.13

use_storage_id = false

# 同 as tracker.conf

# 仅当load_fdfs_parameters_from_tracker为false时有效

# since V1.13

storage_ids_filename = storage_ids.conf

# FastDFS tracker 服务器地址

#  "host:port", host can be hostname or ip address

# 仅当load_fdfs_parameters_from_tracker为true时有效

tracker_server=tracker:22122

# storage server 端口

# the default value is 23000

storage_server_port=23000

# storage server 组名

group_name=group1

# url / uri 包括组名

# 当uri设置为false时,比如 /M00/00/00/xxx

# 设置为true时。比如 ${group_name}/M00/00/00/xxx, such as group1/M00/xxx

# 默认 false

url_have_group_name = false

# 路径(磁盘或挂载点)计数,默认1

# 必须和storage.conf一样

store_path_count=1

# store_path#,基于0,如果store_path0不存在,则其值为base_path

# 路径必须存在

# 必须和storage.conf一样

store_path0=/home/yuqing/fastdfs

#store_path1=/home/yuqing/fastdfs1

# 日志级别

log_level=info

# 设置日志文件名,例如/usr/local/apache2/logs/mod_fastdfs.log

# 输出到stderr为空(apache和nginx error_log文件)

log_filename=

# 当本地文件系统中不存在该文件时的响应模式

## proxy: 从其他存储服务器获取内容,然后发送到客户端

## redirect: 重定向到原始存储服务器(HTTP标头是位置)

response_mode=proxy

# NIC别名前缀,例如Linux中的eth,您可以通过ifconfig -a查看它

# 多个别名用逗号分隔。 空值表示按OS类型自动设置

# 此参数用于获取本地主机的所有IP地址

# 默认值为空

if_alias_prefix=

# 使用“#include”指令包含HTTP配置文件

# NOTE: #include is an include directive, do NOT remove the # before include

#include http.conf

# 支持 flv 格式

# 默认false

# since v1.15

flv_support = true

# flv文件扩展名

# since v1.15

flv_extension = flv

# 设置组计数

# 设置为none以支持此存储服务器上的多组

# 设置为0。仅对单个组,默认 0

# since v1.14

group_count = 0

# group settings for group #1

# since v1.14

# 当在此存储服务器上支持多组时,请取消注释以下部分

#[group1]

#group_name=group1

#storage_server_port=23000

#store_path_count=2

#store_path0=/home/yuqing/fastdfs

#store_path1=/home/yuqing/fastdfs1

# group settings for group #2

# since v1.14

#当支持多组时,取消注释以下部分是必要的

#[group2]

#group_name=group2

#storage_server_port=23000

#store_path_count=1

#store_path0=/home/yuqing/fastdfs

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值