创建fastdfs_nginx容器及nginx配置
内容导读
互联网集市收集整理的这篇技术教程文章主要介绍了创建fastdfs_nginx容器及nginx配置,小编现在分享给大家,供广大互联网技能从业者学习和参考。文章包含5541字,纯文字阅读大概需要8分钟。
内容图文
创建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
内容总结
以上是互联网集市为您收集整理的创建fastdfs_nginx容器及nginx配置全部内容,希望文章能够帮你解决创建fastdfs_nginx容器及nginx配置所遇到的程序开发问题。 如果觉得互联网集市技术教程内容还不错,欢迎将互联网集市网站推荐给程序员好友。
内容备注
版权声明:本文内容由互联网用户自发贡献,该文观点与技术仅代表作者本人。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如发现本站有涉嫌侵权/违法违规的内容, 请发送邮件至 gblab@vip.qq.com 举报,一经查实,本站将立刻删除。
内容手机端
扫描二维码推送至手机访问。