创建fastdfs_nginx容器及nginx配置

创建fastdfs_nginx容器及nginx配置

拉取镜像,创建容器

# 拉取镜像
sudo docker pull ubuntu:18.04
# 创建容器,创建容器时必须使用image:tag,标签不可缺少
sudo docker run -itd --network=host --name fastdfs_nginx -v /home/moluo/store_path/:/home/store_path ubuntu:18.04

进入容器,修改源

sudo docker exec -it fastdfs_nginx bash
cp /etc/apt/sources.list /etc/apt/sources.list.bak # 备份
exit    # 退出容器

# 直接当前操作系统里面的源文件复制到容器内部(容器中没有vi/vim)
sudo docker cp /etc/apt/sources.list fastdfs_nginx:/etc/apt/sources.list

我的操作系统的apt源使用了阿里源

deb http://mirrors.aliyun.com/ubuntu/ bionic main restricted universe multiverse
deb http://mirrors.aliyun.com/ubuntu/ bionic-security main restricted universe multiverse
deb http://mirrors.aliyun.com/ubuntu/ bionic-updates main restricted universe multiverse
deb http://mirrors.aliyun.com/ubuntu/ bionic-proposed main restricted universe multiverse
deb http://mirrors.aliyun.com/ubuntu/ bionic-backports main restricted universe multiverse
deb-src http://mirrors.aliyun.com/ubuntu/ bionic main restricted universe multiverse
deb-src http://mirrors.aliyun.com/ubuntu/ bionic-security main restricted universe multiverse
deb-src http://mirrors.aliyun.com/ubuntu/ bionic-updates main restricted universe multiverse
deb-src http://mirrors.aliyun.com/ubuntu/ bionic-proposed main restricted universe multiverse
deb-src http://mirrors.aliyun.com/ubuntu/ bionic-backports main restricted universe multiverse

下载编译安装nginx

# 进入容器安装nginx
sudo docker exec -it fastdfs_nginx bash
# 更新源
apt-get update

# 安装nginx相关依赖
apt-get install build-essential libtool
apt-get install libpcre3 libpcre3-dev
apt-get install zlib1g-dev
apt-get install openssl

下载nginx

# 到官网下载nginx源码包
# 如果容器内部没有wget命令,则安装命令: apt-get install wget
cd /
wget http://nginx.org/download/nginx-1.15.9.tar.gz
tar -zxvf nginx-1.15.9.tar.gz

# 下载fastdfs-nginx-module
wget https://github.com/happyfish100/fastdfs-nginx-module/archive/V1.20.tar.gz
tar -zxvf V1.20.tar.gz fastdfs-nginx-module-1.20

下载编译安装libfastcommon

wget https://github.com/happyfish100/libfastcommon/archive/V1.0.43.tar.gz
tar -zxvf V1.0.43.tar.gz libfastcommon-1.0.43
cd libfastcommon-1.0.43
./make.sh
./make.sh install

下载编译安装fastdfs

wget https://github.com/happyfish100/fastdfs/archive/V5.04.tar.gz
tar -zxvf V5.04.tar.gz  fastdfs-5.04
cd fastdfs-5.04
./make.sh
./make.sh install

编译安装nginx

cd /nginx-1.15.9
./configure --add-module=../fastdfs-nginx-module-1.20/src/
make
make install

nginx出现错误解决

# make命令编译报错
# 1.错误提示:
# /usr/local/include/fastdfs/fdfs_define.h:15:27: 致命错误:common_define.h:没有那个文件或目录
# 解决方法:
# 修改文件 /fastdfs-nginx-module-1.20/src/config 第6,15行
apt install vim
vim /fastdfs-nginx-module-1.20/src/config
:set nu
ngx_module_incs="/usr/include/fastdfs /usr/include/fastcommon/"
CORE_INCS="$CORE_INCS /usr/include/fastdfs /usr/include/fastcommon/"

# 2.错误提示:
# 'FDFSHTTPParams' has no member named 'support_multi_range'
# 解决方案:
# 打开报错的文件 /fastdfs-nginx-module-1.20/src/common.c 的1245行
vim /fastdfs-nginx-module-1.20/src/common.c
:set nu
:1245
# 原来代码:
   (pContext->range_count > 1  && !g_http_params.support_multi_range))
# 修改为
   (pContext->range_count > 1 ))
# 再重新执行刚才nginx的编译 make && make install

# 3.错误提示
In file included from ../fastdfs-nginx-module-1.20/src//common.c:26:0,
                 from ../fastdfs-nginx-module-1.20/src//ngx_http_fastdfs_module.c:6:
/usr/include/fastdfs/fdfs_define.h:15:10: fatal error: common_define.h: No such file or directory
# 拷贝common_define.h到相应目录
cp /usr/include/fastcommon/common_define.h /fastdfs-nginx-module-1.20/src/
# 修改完错误后继续编译 make && make install

修改nginx相关配置

cp -r /fastdfs-5.04/conf/* /etc/fdfs/
cp /fastdfs-nginx-module-1.20/src/mod_fastdfs.conf /etc/fdfs

# 修改ngxinx 配置文件
vim /usr/local/nginx/conf/nginx.conf
server {
        # 1. 修改端口
        listen       8888;
        server_name  localhost;

        #charset koi8-r;

        #access_log  logs/host.access.log  main;
        # 2. 路径识别
        location ~/group([0-9])/M00 {
        # root /var/fdfs/storage_path;
            ngx_fastdfs_module;
        }

启动nginx

# 启动nginx
/usr/local/nginx/sbin/nginx

# 启动以后,退出容器
exit

nginx启动错误

# 如果nginx启动出现错误
/usr/local/nginx/sbin/nginx: error while loading shared libraries: libfdfsclient.so: cannot open shared object file: No such file or directory

# 查找libfdfsclient.so
find / -name libfdfsclient.so
/usr/lib64/libfdfsclient.so
/fastdfs-5.04/client/libfdfsclient.so

# 发现/usr/lib目录中没有libfdfsclient.so
cp /usr/lib64/libfdfsclient.so /usr/lib/libfdfsclient.so
# 请确保/usr/lib和/usr/lib64中都有libfastcommon.so和libfdfsclient.so目录,如果没有的话,相互拷贝过来

# 重启nginx
/usr/local/nginx/sbin/nginx -s reload

nginx已经启动,但无法获取资源,nginx运行时只有master进程没有work进程

# 查看日志
vim /usr/local/nginx/logs/error.log
# 错误
[2020-01-10 16:06:47] ERROR - file: client_func.c, line: 112, conf file "/etc/fdfs/mod_fastdfs.conf", host "tracker" is invalid
2020/01/10 16:06:47 [alert] 55#0: worker process 74 exited with fatal code 2 and cannot be respawned
2020/01/10 16:18:06 [notice] 107#0: signal process started

# 修改/etc/fdfs/mod_fastdfs.conf 第40、62行
vim /etc/fdfs/mod_fastdfs.conf
:set nu
tracker_server=192.168.11.46:22122    # 改为自己的ip
store_path0=/home/store_path

再修改配置

# 修改storage.conf
vim /etc/fdfs/storage.conf
base_path=/home/store_path
store_path0=/home/store_path
tracker_server=192.168.11.46:22122  # 改为自己的ip
http.server_port=8888

# 修改tracker.conf
vim /etc/fdfs/tracker.conf
base_path=/home/tracker_data

# 修改mod_fastdfs.conf(前面已修改则不用修改了)
vim /etc/fdfs/mod_fastdfs.conf
tracker_server=192.168.11.46:22122      # 改为自己的ip
store_path0=/home/store_path
url_have_group_name = true              # 请求路径是否携带组信息 

将nginx重启后将会有master和work两个进程,此时如果tracker和storage都启动了的话,即可通过浏览器访问nginx代理的资源

原文地址:https://www.cnblogs.com/sincere-ye/p/12179270.html

时间: 2024-11-07 01:57:34

创建fastdfs_nginx容器及nginx配置的相关文章

docker创建自己的镜像并配置nginx

前言 最近在研究docker,记录一下如何创建一个属于自己的镜像 本次使用linux版本为centos7.4(centos6也可以使用docker,只不过有部分功能只有7才有) 本次创建的镜像为centos系统中搭建nginx 一.统一环境 系统版本 [[email protected] ~]# cat /etc/redhat-release CentOS Linux release 7.4.1708 (Core) 内核版本 [[email protected] ~]# uname -r 3.1

HAProxy、Nginx 配置 HTTP/2 完整指南

HAProxy.Nginx 配置 HTTP/2 完整指南 基于最近对HTTP/2的争论和它的优势,是时候升级底层架构了.这篇文章将会介绍如何在安装和配置HAProxy和Ngnix(使用ssl终端).为了简化流程,我建议你准备好使用Docker镜像. 如果你想跳过安装环节或你只对配置环节感兴趣,可以跳至配置部分. 我为什么需要关注HTTP/2? 这里有一些介绍HTTP/2益处的文章-而且我鼓励你去读一读.下面我将重点介绍我认为比较重要的几点. HTTP/2的主要优势: 使用二进制数据(不像HTTP

Docker的安装和镜像管理并利用Docker容器实现nginx的负载均衡、动静分离

Docker的安装 一.Docker的概念 Docker 是一个开源的应用容器引擎,让开发者可以打包他们的应用以及依赖包到一个可移植的容器中,然后发布到任何流行的 Linux 机器上,也可以实现虚拟化.容器是完全使用沙箱机制,相互之间不会有任何接口. 二.安装Docker 1.检查内核版本 # uname -r      查看当前linux得版本信息 Docker要求CentOS7最低内核版本为3.1版本 2. 关闭防火墙和selinux # systemctl stop firewalld #

Linux中以单容器部署Nginx+ASP.NET Core

引言 正如前文提到的,强烈推荐在生产环境中使用反向代理服务器转发请求到Kestrel Http服务器,本文将会实践将Nginx --->ASP.NET Core 部署架构容器化的过程. Nginx->ASP.NET Coe部署架构容器化 在Docker中部署Nginx--->ASP.NETCore 有两种选择, 第一种是在单容器内部署Nginx+ASP.NET Core, 这是本文着重要讲述的,另外一种是以独立容器分别部署Nginx和ASP.NET Core,容器之间通过Docker内建

Nginx配置80端口和443端口

Docker配置Nginx uwsgi配置,以下实验共用同一个uwsgi,只做微调 准备:服务器ssl证书,前端后端都要有证书,这是https协议需要 证书可以单独放一个目录中,也可以放到配置文件目录下/etc/nginx/ssl # 这是为http协议 前端的settings.js请求文件内容为:http://www.testname.top:8080 后端的prod.py文件中 CORS_ORIGIN_WHITELIST为:http://www.testname.top # 这是为https

12.17 Nginx负载均衡;12.18 ssl原理;12.19 生产ssl密钥对;12.20 Nginx配置ssl

扩展: 针对请求的uri来代理 http://ask.apelearn.com/question/1049 根据访问的目录来区分后端web http://ask.apelearn.com/question/920 12.17 Nginx负载均衡 1. 安装dig命令: [[email protected] ~]# yum install -y bind-utils 2. 用dig获取qq.com的ip地址: [[email protected] ~]# dig qq.com 3. 创建ld.co

LNMP架构应用实战——Nginx配置虚拟主机

LNMP架构应用实战--Nginx配置虚拟主机        前面介绍了nginx服务的安装与配置文件,今天介绍下它的另一种实用配置--"虚拟主机",每个虚拟主机可以是一个独立的网站,可以具有独立的域名,同一台服务器上的不同的虚拟主机之间是独立的,用户访问不同虚拟主机如同访问不同的服务器一样,因此它不需要为一个单独的WEB站点提供单独一个nginx服务器和一个单独的nginx进程 1.nginx虚拟主机简单介绍 同apache服务一样,它也有三种不同的虚拟主机,基于域名的虚拟主机.基于

Nginx 配置

Nginx 配置 不论是本地开发,还是远程到 Server 开发,还是给提供 demo 给人看效果,我们时常需要对 Nginx 做配置,Nginx 的配置项相当多,如果考虑性能配置起来会比较麻烦.不过,我们往往只是需要一个静态 Server,或者一个反向代理 Server,这对 Nginx 来说小菜一碟. 本文将给大家介绍 Nginx 配置的基本知识,不想细看的同学可以直接跳到最后一个例子. 简介 Nginx 的安装就不解释了,方便起见,建议在各平台可以直接执行对应安装命令: # CentOS

nginx 配置详解

Nginx是一款轻量级的Web 服务器/反向代理服务器及电子邮件(IMAP/POP3)代理服务器,并在一个BSD-like 协议下发行.由俄罗斯的程序设计师Igor Sysoev所开发,供俄国大型的入口网站及搜索引擎Rambler(俄文:Рамблер)使用.其特点是占有内存少,并发能力强,事实上nginx的并发能力确实在同类型的网页服务器中表现较好,中国大陆使用nginx网站用户有:京东.新浪.网易.腾讯.淘宝等. 一.event模型 传统的基于进程和线程的模型在处理并发连接的时候针对每个连接