java分布式商城项目环境搭建6-CentOS7.6搭建Nginx & FastDFS 整体架构

一、 Nginx 介绍

1.1 Nginx 简介

Nginx 是一款自由的、 开源的、 高性能的 HTTP 服务器和反向代理服务器; 同时也是一个 IMAP、 POP3、 SMTP 代理服务器; Nginx 可以作为一个 HTTP 服务器进行网站的发布处理,另外 Nginx 可以作为反向代理进行负载均衡的实现。
Nginx 同 Apache 一样都是一种 WEB 服务器。 基于 REST 架构风格, 以统一资源描述符(Uniform Resources Identifier)URI 或者统一资源定位符(Uniform Resources Locator)URL 作为沟通依据, 通过 HTTP 协议提供各种网络服务。
然而, 这些服务器在设计之初受到当时环境的局限, 例如当时的用户规模, 网络带宽,产品特点等局限并且各自的定位和发展都不尽相同。 这也使得各个 WEB 服务器有着各自鲜明的特点。
Apache 的发展时期很长, 而且是毫无争议的世界第一大服务器。 它有着很多优点: 稳定、 开源、 跨平台等等。 它出现的时间太长了, 它兴起的年代, 互联网产业远远比不上现在。
所以它被设计为一个重量级的。 它不支持高并发的服务器。 在 Apache 上运行数以万计的并发访问, 会导致服务器消耗大量内存。 操作系统对其进行进程或线程间的切换也消耗了大量的 CPU 资源, 导致 HTTP 请求的平均响应速度降低。
这些都决定了 Apache 不可能成为高性能 WEB 服务器, 轻量级高并发服务器 Nginx 就应运而生了。
俄罗斯的工程师 Igor Sysoev,他在为 Rambler Media 工作期间,使用 C 语言开发了 Nginx。Nginx 作为 WEB 服务器一直为 Rambler Media 提供出色而又稳定的服务。

二 Nginx 安装配置

2.1 安装 Nginx 依赖环境

1、 gcc 安装

# yum install gcc-c++

2、 PCRE pcre-devel 安装

# yum install -y pcre pcre-devel

3、 zlib 安装

# yum install -y zlib zlib-devel

4、 OpenSSL 安装

# yum install -y openssl openssl-devel
2.2 安装 Nginx

1、 下载 nginx

# wget -c https://nginx.org/download/nginx-1.12.1.tar.gz

2、 解压

# tar -zxvf nginx-1.12.1.tar.gz
# cd nginx-1.12.1
解压后的nginx

3、 使用默认配置

# ./configure

4、 编译、 安装

# make
# make install

5、 启动 nginx

# cd /usr/local/nginx/sbin/
# ./nginx

其它命令

# ./nginx -s stop
# ./nginx -s quit
# ./nginx -s reload

#2.3 配置 Nginx 访问 FastDFS 文件

1、 访问文件(修改 nginx.conf)

# vim /usr/local/nginx/conf/nginx.conf

添加如下行, 将 /group1/M00 映射到 /homse/fastdfs/file/data

location /group1/M00 {
alias /home/fastdfs/file/data;
}

修改配置

2、 测试访问文件
http://47.100.224.4/group1/M00/00/00/rBOr_1zqWcSASGLfAALpMV3ZLVg841.jpg
能够下载文件, 则说明 nginx 安装配置成功了! ! !
访问图片

三 Nginx 配置 FastDFS 模块

3.1 fastdfs-nginx-module 模块说明

FastDFS 通过 Tracker 服务器, 将文件放在 Storage 服务器存储, 但是同组存储服务器之间需要进行文件复制, 有同步延迟的问题。
假设 Tracker 服务器将文件上传到了 192.168.78.128, 上传成功后文件 ID 已经返回给客户端。 此时 FastDFS 存储集群机制会将这个文件同步到同组存储 192.168.78.129, 在文件还没有复制完成的情况下, 客户端如果用这个文件 ID 在 192.168.78.129 上取文件,就会出现文件无法访问的错误。 而 fastdfs-nginx-module 可以重定向文件链接到源服务器取文件,避免客户端由于复制延迟导致的文件无法访问错误。

3.2 fastdfs-nginx-module 安装配置

1、 下载 fastdfs-nginx-module

最新版的 master 与当前 nginx 有些版本问题, 所以这里选择下载。

# wget https://github.com/happyfish100/fastdfs-nginx-module/archive/5e5f3566bbfa57418b5506aaefbe107a42c9fcb1.zip

2、 解压, 重命名

解压

# unzip 5e5f3566bbfa57418b5506aaefbe107a42c9fcb1.zip

重命名

# mv fastdfs-nginx-module-5e5f3566bbfa57418b5506aaefbe107a42c9fcb1 fastdfs-nginx-module-master

3、 配置 Nginx, 在 nginx 中添加模块

先停掉 nginx 服务

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

进入解压包目录

# cd /Downloads/nginx-1.12.1/

添加模块

# ./configure --add-module=../fastdfs-nginx-module-master/src

重新编译、 安装

# make
# make install

4、 查看 Nginx 的模块

# /usr/local/nginx/sbin/nginx -V
添加模块

5、 复制 fastdfs-nginx-module 源码中的配置文件到/etc/fdfs 目录, 并修改

# cd /Downloads/fastdfs-nginx-module-master/src
# cp mod_fastdfs.conf /etc/fdfs/

修改如下配置, 其它默认

# 连接超时时间
connect_timeout=10
# Tracker Server
tracker_server=192.168.78.128:22122
# StorageServer 默认端口
storage_server_port=23000
# 如果文件 ID 的 uri 中包含/group**, 则要设置为 true
url_have_group_name = true
# Storage 配置的 store_path0 路径, 必须和 storage.conf 中的一致
store_path0=/home/fastdfs/file

6、 复制 FastDFS 的部分配置文件到/etc/fdfs 目录

# cd /Downloads/fastdfs-5.05/conf/
# cp anti-steal.jpg http.conf mime.types /etc/fdfs/

7、 配置 nginx, 修改 nginx.conf

# vim /usr/local/nginx/conf/nginx.conf

修改配置, 其它的默认
在 80 端口下添加 fastdfs-nginx 模块

location ~/group([0-9])/M00 {
ngx_fastdfs_module;
}
修改配置

注意:
listen 80 端口值是要与 /etc/fdfs/storage.conf 中的 http.server_port=80 (前面改成 80 了)
相对应。 如果改成其它端口, 则需要统一, 同时在防火墙中打开该端口。
location 的配置, 如果有多个 group 则配置 location ~/group([0-9])/M00 , 没有则不用配group。
8、 在/home/fastdfs/file 文件存储目录下创建软连接, 将其链接到实际存放数据的目录

# ln -s /home/fastdfs/file/data/ /home/fastdfs/file/data/M00

9、 启动 nginx

# /usr/local/nginx/sbin/nginx

打印处如下就算配置成功

启动成功

10、 测试
能下载文件就算安装成功。 注意和第三点中直接使用 nginx 路由访问不同的是, 这里配置 fastdfs-nginx-module 模块, 可以重定向文件链接到源服务器取文件。
http://47.100.224.4/group1/M00/00/00/rBOr_1zqWcSASGLfAALpMV3ZLVg841.jpg
到此, FastDFS&Nginx 分布式文件系统搭建完成! 庆祝一下……

最后编辑于
©著作权归作者所有,转载或内容合作请联系作者
  • 序言:七十年代末,一起剥皮案震惊了整个滨河市,随后出现的几起案子,更是在滨河造成了极大的恐慌,老刑警刘岩,带你破解...
    沈念sama阅读 203,772评论 6 477
  • 序言:滨河连续发生了三起死亡事件,死亡现场离奇诡异,居然都是意外死亡,警方通过查阅死者的电脑和手机,发现死者居然都...
    沈念sama阅读 85,458评论 2 381
  • 文/潘晓璐 我一进店门,熙熙楼的掌柜王于贵愁眉苦脸地迎上来,“玉大人,你说我怎么就摊上这事。” “怎么了?”我有些...
    开封第一讲书人阅读 150,610评论 0 337
  • 文/不坏的土叔 我叫张陵,是天一观的道长。 经常有香客问我,道长,这世上最难降的妖魔是什么? 我笑而不...
    开封第一讲书人阅读 54,640评论 1 276
  • 正文 为了忘掉前任,我火速办了婚礼,结果婚礼上,老公的妹妹穿的比我还像新娘。我一直安慰自己,他们只是感情好,可当我...
    茶点故事阅读 63,657评论 5 365
  • 文/花漫 我一把揭开白布。 她就那样静静地躺着,像睡着了一般。 火红的嫁衣衬着肌肤如雪。 梳的纹丝不乱的头发上,一...
    开封第一讲书人阅读 48,590评论 1 281
  • 那天,我揣着相机与录音,去河边找鬼。 笑死,一个胖子当着我的面吹牛,可吹牛的内容都是我干的。 我是一名探鬼主播,决...
    沈念sama阅读 37,962评论 3 395
  • 文/苍兰香墨 我猛地睁开眼,长吁一口气:“原来是场噩梦啊……” “哼!你这毒妇竟也来了?” 一声冷哼从身侧响起,我...
    开封第一讲书人阅读 36,631评论 0 258
  • 序言:老挝万荣一对情侣失踪,失踪者是张志新(化名)和其女友刘颖,没想到半个月后,有当地人在树林里发现了一具尸体,经...
    沈念sama阅读 40,870评论 1 297
  • 正文 独居荒郊野岭守林人离奇死亡,尸身上长有42处带血的脓包…… 初始之章·张勋 以下内容为张勋视角 年9月15日...
    茶点故事阅读 35,611评论 2 321
  • 正文 我和宋清朗相恋三年,在试婚纱的时候发现自己被绿了。 大学时的朋友给我发了我未婚夫和他白月光在一起吃饭的照片。...
    茶点故事阅读 37,704评论 1 329
  • 序言:一个原本活蹦乱跳的男人离奇死亡,死状恐怖,灵堂内的尸体忽然破棺而出,到底是诈尸还是另有隐情,我是刑警宁泽,带...
    沈念sama阅读 33,386评论 4 319
  • 正文 年R本政府宣布,位于F岛的核电站,受9级特大地震影响,放射性物质发生泄漏。R本人自食恶果不足惜,却给世界环境...
    茶点故事阅读 38,969评论 3 307
  • 文/蒙蒙 一、第九天 我趴在偏房一处隐蔽的房顶上张望。 院中可真热闹,春花似锦、人声如沸。这庄子的主人今日做“春日...
    开封第一讲书人阅读 29,944评论 0 19
  • 文/苍兰香墨 我抬头看了看天上的太阳。三九已至,却和暖如春,着一层夹袄步出监牢的瞬间,已是汗流浃背。 一阵脚步声响...
    开封第一讲书人阅读 31,179评论 1 260
  • 我被黑心中介骗来泰国打工, 没想到刚下飞机就差点儿被人妖公主榨干…… 1. 我叫王不留,地道东北人。 一个月前我还...
    沈念sama阅读 44,742评论 2 349
  • 正文 我出身青楼,却偏偏与公主长得像,于是被迫代替她去往敌国和亲。 传闻我的和亲对象是个残疾皇子,可洞房花烛夜当晚...
    茶点故事阅读 42,440评论 2 342