前往小程序,Get更优阅读体验!
立即前往
首页
学习
活动
专区
工具
TVP
发布
社区首页 >专栏 >部署 Nginx

部署 Nginx

原创
作者头像
ruochen
发布2021-12-04 09:57:59
1.3K0
发布2021-12-04 09:57:59
举报

安装环境依赖

CentOS

代码语言:txt
复制
yum install git gcc gcc-c++ make automake autoconf libtool pcre pcre-devel zlib zlib-devel openssl-devel wget vim -y

Debian

代码语言:txt
复制
apt-get -y install git gcc g++ make automake autoconf libtool pcre2-utils libpcre2-dev zlib1g zlib1g-dev openssl libssh-dev wget vim

注意:以下涉及的所有安装包如果下载不下来,建议先下载到本地,再上传到服务器部署

安装 libfastcommon

代码语言:txt
复制
wget https://github.com/happyfish100/libfastcommon/archive/V1.0.7.tar.gz
代码语言:txt
复制
tar -xvf libfastcommon-1.0.7.tar.gz
代码语言:txt
复制
cd libfastcommon-1.0.7
代码语言:txt
复制
./make.sh
代码语言:txt
复制
./make.sh install

libfastcommon.so

安装到了/usr/lib64/libfastcommon.so,但fastDFS主程序设置的lib目录是/usr/local/lib,所以需要创建软链接

代码语言:txt
复制
ln -s /usr/lib64/libfastcommon.so /usr/local/lib/libfastcommon.so
代码语言:txt
复制
ln -s /usr/lib64/libfastcommon.so /usr/lib/libfastcommon.so
代码语言:txt
复制
ln -s /usr/lib64/libfdfsclient.so /usr/local/lib/libfdfsclient.so
代码语言:txt
复制
ln -s /usr/lib64/libfdfsclient.so /usr/lib/libfdfsclient.so

安装 & 配置 FastDFS

代码语言:txt
复制
wget https://github.com/happyfish100/fastdfs/archive/refs/tags/V5.05.tar.gz
代码语言:txt
复制
tar -xvf fastdfs-5.05.tar.gz
代码语言:txt
复制
cd fastdfs-5.05/
代码语言:txt
复制
./make.sh && ./make.sh install

注意:FastDFS 默认安装方式安装后启动路径为

代码语言:txt
复制
/etc/init.d/fdfs_storaged 
代码语言:txt
复制
/etc/init.d/fdfs_trackerd 

FastDFS 服务脚本设置的 bin 目录是 /usr/local/bin, 但实际命令安装在 /usr/bin/

代码语言:txt
复制
#创建软链接
代码语言:txt
复制
ln -s /usr/bin/fdfs_trackerd   /usr/local/bin
代码语言:txt
复制
ln -s /usr/bin/fdfs_storaged   /usr/local/bin
代码语言:txt
复制
ln -s /usr/bin/stop.sh         /usr/local/bin
代码语言:txt
复制
ln -s /usr/bin/restart.sh      /usr/local/bin

配置 FastDFS tracker

代码语言:txt
复制
#进入/etc/fdfs目录,复制FastDFS样例配置文件tracker.conf.sample,并重命名为tracker.conf
代码语言:txt
复制
cp tracker.conf.sample tracker.conf
代码语言:txt
复制
mkdir -p fastdfs/tracker_data
代码语言:txt
复制
vim /etc/fdfs/tracker.conf
代码语言:txt
复制
# Annotation start-----------------------------------------------
代码语言:txt
复制
# 配置文件是否不生效,false 为生效
代码语言:txt
复制
disabled=false
代码语言:txt
复制
#后面为绑定的IP地址 (常用于服务器有多个IP但只希望一个IP提供服务)。如果不填则表示所有的
代码语言:txt
复制
bind_addr=10.200.14.55
代码语言:txt
复制
# 提供服务的端口
代码语言:txt
复制
port=22122
代码语言:txt
复制
# Tracker 数据和日志目录地址(根目录必须存在,子目录会自动创建)
代码语言:txt
复制
base_path=/home/dingfuxiao/fastdfs/tracker_data
代码语言:txt
复制
# HTTP 服务端口
代码语言:txt
复制
http.server_port=80
代码语言:txt
复制
# Annotation end -----------------------------------------------
代码语言:txt
复制
#启动Tracker 
代码语言:txt
复制
/etc/init.d/fdfs_trackerd start
代码语言:txt
复制
#监听端口 22122 (Tracker服务安装成功)
代码语言:txt
复制
netstat -nvlpt|grep fdfs

配置 FastDFS Storage

代码语言:txt
复制
# 进入/etc/fdfs目录,复制FastDFS样例配置文件storage.conf.sample,并重命名为storage.conf
代码语言:txt
复制
cp storage.conf.sample storage.conf
代码语言:txt
复制
mkdir -p /fastdfs/storage
代码语言:txt
复制
vim /etc/fdfs/storage.conf
代码语言:txt
复制
# Annotation start-----------------------------------------------
代码语言:txt
复制
# 配置文件是否不生效,false 为生效
代码语言:txt
复制
disabled=false 
代码语言:txt
复制
# 指定此 storage server 所在 组(卷)
代码语言:txt
复制
group_name=group1
代码语言:txt
复制
#storage server 服务端口
代码语言:txt
复制
port=23000
代码语言:txt
复制
#心跳间隔时间,单位为秒 (这里是指主动向 tracker server 发送心跳)
代码语言:txt
复制
heart_beat_interval=30
代码语言:txt
复制
#Storage 数据和日志目录地址(根目录必须存在,子目录会自动生成)
代码语言:txt
复制
base_path=/fastdfs/storage
代码语言:txt
复制
#存放文件时 storage server 支持多个路径。这里配置存放文件的基路径数目,通常只配一个目录。
代码语言:txt
复制
store_path_count=1
代码语言:txt
复制
#逐一配置 store_path_count 个路径,索引号基于 0
代码语言:txt
复制
#如果不配置 store_path0,那它就和 base_path 对应的路径一样
代码语言:txt
复制
store_path0=/fastdfs/storage
代码语言:txt
复制
# FastDFS 存储文件时,采用了两级目录。这里配置存放文件的目录个数。 
代码语言:txt
复制
# 如果本参数只为 N(如: 256),那么 storage server 在初次运行时,会在 store_path 下自动创建 N * N 个存放文件的子目录。
代码语言:txt
复制
subdir_count_per_path=256
代码语言:txt
复制
# tracker_server 的列表 ,会主动连接 tracker_server
代码语言:txt
复制
# 有多个 tracker server 时,每个 tracker server 写一行
代码语言:txt
复制
tracker_server=10.200.14.48:22122
代码语言:txt
复制
# 允许系统同步的时间段 (默认是全天) 。一般用于避免高峰同步产生一些问题而设定。
代码语言:txt
复制
sync_start_time=00:00
代码语言:txt
复制
sync_end_time=23:59
代码语言:txt
复制
# 访问端口
代码语言:txt
复制
http.server_port=9888
代码语言:txt
复制
# Annotation end -----------------------------------------------
代码语言:txt
复制
#启动storage
代码语言:txt
复制
$ /etc/init.d/fdfs_storaged start
代码语言:txt
复制
#监听端口23000 (storage 启动成功)
代码语言:txt
复制
$ netstat -nvlpt|grep fdfs

配置 FastDFS clinet

代码语言:txt
复制
# 进入/etc/fdfs 目录,复制 FastDFS样例配置文件client.conf.sample,并重命名为client.conf
代码语言:txt
复制
cp client.conf.sample client.conf
代码语言:txt
复制
mkdir -p /fastdfs/tracker
代码语言:txt
复制
# Annotation start-----------------------------------------------
代码语言:txt
复制
connect_timeout=30
代码语言:txt
复制
network_timeout=60
代码语言:txt
复制
base_path=/fastdfs/tracker
代码语言:txt
复制
tracker_server=10.200.14.48:22122
代码语言:txt
复制
log_level=info
代码语言:txt
复制
use_connection_pool = false
代码语言:txt
复制
connection_pool_max_idle_time = 3600
代码语言:txt
复制
load_fdfs_parameters_from_tracker=false
代码语言:txt
复制
use_storage_id = false
代码语言:txt
复制
storage_ids_filename = storage_ids.conf
代码语言:txt
复制
http.tracker_server_port=80
代码语言:txt
复制
# Annotation end -----------------------------------------------

上传测试

在Tracker服务器上执行上传test.txt

代码语言:txt
复制
/usr/bin/fdfs_upload_file /etc/fdfs/client.conf test.txt
代码语言:txt
复制
# Annotation start-----------------------------------------------
代码语言:txt
复制
group1/M00/00/00/CsgOMGBZXsKAdzdTAAAAIHbqaGc362.txt   //上传成功后返回文件ID号
代码语言:txt
复制
# Annotation end -----------------------------------------------
代码语言:txt
复制
#上传成功后,在Tracker & Storage可见
代码语言:txt
复制
ls /fastdfs/storage/data/00/00/CsgOMGBZXsKAdzdTAAAAIHbqaGc362.txt
代码语言:txt
复制
# Annotation start-----------------------------------------------
代码语言:txt
复制
/fastdfs/storage/data/00/00/CsgOMGBZXsKAdzdTAAAAIHbqaGc362.txt
代码语言:txt
复制
# Annotation end -----------------------------------------------

集成Nginx

Nginx 整合 FastDFS 时 Nginx 需要添加 fastdfs-nginx-module 模块。直接通过

Github:[https://github.com/happyfish100/fastdfs-nginx-

module](https://links.jianshu.com/go?to=https%3A%2F%2Fgithub.com%2Fhappyfish100%2Ffastdfs-

nginx-module) 下载压缩包或者使用 git

命令下载,或者通过资源地址:https://sourceforge.net/projects/fastdfs/files/

下载。下载以后,上传资源 fastdfs-nginx-module_v1.16.tar.gz 至服务器 /usr/local/src 目录后并解压。

代码语言:txt
复制
tar -zvxf fastdfs-nginx-module_v1.16.tar.gz -C /usr/local/src

复制配置文件 mod_fastdfs.conf/etc/fdfs 目录中

代码语言:txt
复制
cp /usr/local/src/fastdfs-nginx-module/src/mod_fastdfs.conf  /etc/fdfs/

vim /etc/fdfs/mod_fastdfs.conf 编辑配置文件,主要关注以下部分

代码语言:txt
复制
# tracker 服务器的 IP 和端口
代码语言:txt
复制
tracker_server = 10.200.14.48:22122
代码语言:txt
复制
# url 地址是否包含组名/卷名
代码语言:txt
复制
url_have_group_name = true
代码语言:txt
复制
# 数据组/卷对应的路径地址
代码语言:txt
复制
store_path0 = /fastdfs/storage
代码语言:txt
复制
base_path=/fastdfs

在/fastdfs/storage/data/文件存储目录下创建软连接,将其链接到实际存放数据的目录

代码语言:txt
复制
ln -s /fastdfs/storage/data/ /fastdfs/storage/data/M00

复制 fastdfs 安装包中的两个配置文件 http.confmime.types/etc/fdfs 目录中。

代码语言:txt
复制
cp fastdfs-5.05/conf/http.conf /etc/fdfs/
代码语言:txt
复制
cp fastdfs-5.05/conf/mime.types /etc/fdfs/

下载 Nginx 并解压

代码语言:txt
复制
# 下载 nginx 压缩包
代码语言:txt
复制
wget -P /usr/local/src http://nginx.org/download/nginx-1.18.0.tar.gz
代码语言:txt
复制
# 解压
代码语言:txt
复制
tar -zxvf /usr/local/src/nginx-1.18.0.tar.gz -C /usr/local/src

编译并安装

代码语言:txt
复制
# 切换至 nginx 的解压目录
代码语言:txt
复制
cd /usr/local/src/nginx-1.18.0
代码语言:txt
复制
# 创建 nginx 的安装目录
代码语言:txt
复制
mkdir -p /usr/local/nginx
代码语言:txt
复制
# 解决 fatal error: fdfs_define.h
代码语言:txt
复制
ln -s /usr/include/fast* /usr/local/include/
代码语言:txt
复制
# 解决./configure: error: the HTTP rewrite module requires the PCRE library.
代码语言:txt
复制
apt-get update
代码语言:txt
复制
apt-get install libpcre3 libpcre3-dev
代码语言:txt
复制
# 添加 fastdfs-nginx-module 模块,指定 nginx 的安装路径
代码语言:txt
复制
./configure --add-module=/usr/local/src/fastdfs-nginx-module/src --prefix=/usr/local/nginx/
代码语言:txt
复制
# 编译并安装
代码语言:txt
复制
make && make install
代码语言:txt
复制
# 编译成功测试
代码语言:txt
复制
/usr/local/nginx/sbin/nginx -V
代码语言:txt
复制
# Annotation start-----------------------------------------------
代码语言:txt
复制
nginx version: nginx/1.18.0
代码语言:txt
复制
built by gcc 6.3.0 20170516 (Debian 6.3.0-18+deb9u1)
代码语言:txt
复制
configure arguments: --add-module=/usr/local/src/fastdfs-nginx-module/src --prefix=/usr/local/nginx/
代码语言:txt
复制
# Annotation end -----------------------------------------------
配置nginx

vim /usr/local/nginx/conf/nginx.conf 编辑配置文件,关于 Nginx

启动用户的问题请根据自身实际环境进行配置,参考配置

代码语言:txt
复制
 location ~/group[0-9]/ {
代码语言:txt
复制
    ngx_fastdfs_module;
代码语言:txt
复制
 }

启动 Nginx:/usr/local/nginx/sbin/nginx

http://10.200.14.48:4246/group1/M00/00/00/CsgOMGBZXsKAdzdTAAAAIHbqaGc362.txt查看内容

原创声明:本文系作者授权腾讯云开发者社区发表,未经许可,不得转载。

如有侵权,请联系 cloudcommunity@tencent.com 删除。

原创声明:本文系作者授权腾讯云开发者社区发表,未经许可,不得转载。

如有侵权,请联系 cloudcommunity@tencent.com 删除。

评论
作者已关闭评论
0 条评论
热度
最新
推荐阅读
目录
  • 安装环境依赖
  • 安装 libfastcommon
  • 安装 & 配置 FastDFS
    • 配置 FastDFS tracker
      • 配置 FastDFS Storage
        • 配置 FastDFS clinet
          • 上传测试
            • 配置nginx
        • 集成Nginx
        相关产品与服务
        文件存储
        文件存储(Cloud File Storage,CFS)为您提供安全可靠、可扩展的共享文件存储服务。文件存储可与腾讯云服务器、容器服务、批量计算等服务搭配使用,为多个计算节点提供容量和性能可弹性扩展的高性能共享存储。腾讯云文件存储的管理界面简单、易使用,可实现对现有应用的无缝集成;按实际用量付费,为您节约成本,简化 IT 运维工作。
        领券
        问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档