nginx-gridfs是一个nginx的扩展模块,用于支持直接访问MongoDB的GridFS文件系统上的文件并提供 HTTP 访问

1,安装nginx,下载好安装包nginx和nginx-gridfs,此次安装采用nginx1.12.2.

mkdir -p /data/soft/nginx-mongodb/   # 创建文件夹存储安装包和图片,把文件上传到这里
cd /data/soft/nginx-mongodb/yum update
yum -y wget git
# 安装依赖包wget http://nginx.org/download/nginx-1.14.2.tar.gz
# 下载nginx1.14.2# 下载 nginx-gridfs,链接:https://pan.baidu.com/s/1cup-KtIYtaAEqCaZp2dTbA ,提取码:23hf

2,安装Nginx依赖包并编译安装

yum -y install pcre-devel openssl-devel zlib-devel git gcc gcc-c++
cd /data/soft/nginx-mongodb/
tar xzvf nginx-1.14.2.tar.gz
cd nginx-1.14.2
./configure --prefix=/usr/local/nginx   --with-openssl=/usr/include/openssl --add-module=/data/soft/nginx-mongodb/nginx-gridfs
vi /data/soft/nginx-mongodb/nginx-1.14.2/objs/Makefile
# Makefile文件内容去掉"-Werror"
make -j8 && make install -j8

注:如遇报错去掉nginx-1.14.2/objs/Makefile里的-Werror,再次编译即可

3.配置nginx.conf,注:配置中的IP改成你自己的

cat /proc/cpuinfo     # 查看CPU核数,根据核数配置Nginx的worker_processes数量
rm -rf /usr/local/nginx/conf/nginx.conf
vi /usr/local/nginx/conf/nginx.conf
#/usr/local/nginx/conf/nginx.conf添加下面内容,注意!将IP换成实际的访问IP
###############################################################################
user  root;
worker_processes  4;error_log  logs/error.log;pid        logs/nginx.pid;events {worker_connections  1024;
}http {include       mime.types;default_type  application/octet-stream;sendfile        on;keepalive_timeout  65;server {listen       80;server_name  localhost;location / {root   html;index  index.html index.htm;}error_page   500 502 503 504  /50x.html;location = /50x.html {root   html;}}server {listen       800;server_name  192.168.240.113;location /file/ {gridfs FILEDBroot_collection=fsfield=filenametype=stringuser=foopass=bar;mongo 192.168.240.113:20000;access_log  logs/gridfs.access.log;error_log   logs/gridfs.error.log;}
}
##########################################################################

4,    安装mongodb

cat /etc/redhat-release  # 查看系统版本信息,下载相对应的安装包 ,请一定一定耀下载2.6.9版本。。。不支持其他版本!
wget http://downloads.mongodb.org/linux/mongodb-linux-x86_64-rhel70-2.6.9.tgz

下载好安装包,此次安装版本mongodb-linux-x86_64-rhel70-2.6.9.tgz,请一定一定耀下载2.6.9版本。。。不支持其他版本!

#解压:
cd /data/soft/nginx-mongodb
tar xzvf mongodb-linux-x86_64-rhel70-2.6.9.tgz -C /usr/local/
#创建所需目录并授权:
cd /usr/local
mv mongodb-linux-x86_64-rhel70-2.6.9 mongodb_file
cd mongodb_file
mkdir data
mkdir log
mkdir etc
chown -R 777 data log etc
touch /usr/local/mongodb_file/log/mongo.log
chown -R 777 /usr/local/mongodb_file/log/mongo.log
#添加配置文件:
cd etc
vi mongodb.conf
################################################################################
dbpath=/usr/local/mongodb_file/data
logpath=/usr/local/mongodb_file/log/mongo.log
logappend=true
journal=true
quiet=true
fork=true
port=20000
auth=true
bind_ip = 0.0.0.0
################################################################################

5.    启动mongodb

/usr/local/mongodb_file/bin/mongod -f /usr/local/mongodb_file/etc/mongodb.conf
/usr/local/mongodb_file/bin/mongo --port=20000
use admin
db.createUser({user: "foo",pwd: "bar",roles: [ { role: "userAdminAnyDatabase", db: "admin" }]})
db.auth('foo','bar')
use FILEDB
db.createUser({user: "foo",pwd: "bar",roles: [ { role: "readWrite", db: "FILEDB" }]})
exit

至此,环境搭建完成。
测试nginx请求mongodb,注:配置中的IP改成你自己的

mongodb上传图片:

/usr/local/mongodb_file/bin/mongofiles put --host 192.168.240.113 -u foo -p bar --port 20000 --db FILEDB --local /data/soft/nginx-mongodb/2.jpg --type jpg
# 注意文件名称千万不能有减号!!!

检查是否成功存储2.jpg:注:配置中的IP改成你自己的

/usr/local/mongodb_file/bin/mongofiles get --host 192.168.240.113 -u foo -p bar --port 20000 --db FILEDB --local /data/soft/nginx-mongodb/2.jpg --type jpg

6,启动nginx
检查配置:

/usr/local/nginx/sbin/nginx -t

启动Nginx:

/usr/local/nginx/sbin/nginx

检查进程跟端口,一定要确保worker_processes的子进程要启动成功!!

ps -ef|grep nginx 

nginx访问,注意!将IP换成实际的访问IP:注:配置中的IP改成你自己的
http://192.168.240.113:800/file/1.jpg (file为nginx配置)

Linux利用nginx-gridfs搭建部署Nginx和MongoDB文件服务器,支持用户密码验证!相关推荐

  1. windows和Linux利用Python快速搭建一个网站

    windows和Linux利用Python快速搭建一个网站 一.windows 步骤1:安装Python3(自行百度) 步骤2:在cmd窗口输入ipconfig查看本机ip地址,IPV4那一行.如:1 ...

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

    正如 前文提到的,强烈推荐在生产环境中使用反向代理服务器转发请求到Kestrel Http服务器,本文将会实践将Nginx --->ASP.NET Core 部署架构容器化的过程. Nginx- ...

  3. Linux环境下安装及部署Nginx教程

    一.安装教程 1.官网下载地址:nginx: download 2.下载教程: 1)选择Stable version版本下载到本地(该版本为Linux版本),下载完成后直接在本地解压后放入linux系 ...

  4. Win10下的WSL(Linux子系统)开发环境搭建(PHP+Nginx+Mysql+Composer)

    上篇文章我们已经设置好了Ubuntu的基本配置 现在我们开始正式搭建PHP的一些相关环境 上篇教程 安装PHP 首先我们需要添加PHP的PPA软件源运行如下命令: sudo add-apt-repos ...

  5. Linux LNMP源码架构部署 | Nginx服务 | Mysql服务 | php服务 | 论坛源码编译安装 | 超详细

    | Nginx服务 | Mysql服务 | php服务 | 论坛源码编译安装 | ➤安装 Nginx 服务 ➤1.关闭防火墙和安全机制 ➤2.卸载自带的httpd服务 ➤3.安装依赖包 ➤4.创建运行 ...

  6. 【Linux】在Ubuntu下部署nginx——nginx的安装与卸载

    介绍 这里是小编成长之路的历程,也是小编的学习之路.希望和各位大佬们一起成长! 以下为小编最喜欢的两句话: 要有最朴素的生活和最遥远的梦想,即使明天天寒地冻,山高水远,路远马亡. 一个人为什么要努力? ...

  7. Linux利用源码包升级Nginx到1.23.1用以解决nginx安全漏洞问题

    目录 背景 准备工作 升级 验证 背景 升级nginx到1.23.1用以解决以下下安全漏洞问题 NGINX 环境问题漏洞(CVE-2019-20372) NGINX 环境问题漏洞(CVE-2020-1 ...

  8. ev3编码软件linux,利用官方固件搭建EV3自制系统

    3      制作流程3.1   MINI-SD卡的准备 EV3 MINI-SD卡的启动需要按照如下的规范: 两个分区 第一个分区50M,文件系统是FAT,用于放置linux内核文件 第二个分区最好大 ...

  9. 理论+实操:部署nginx+apache动静分离

    文章目录 一:nginx动静分离介绍 1.1 nginx的静态处理能力很强,但是动态处理能力不足,因此,在企业中常用动静分离技术 1.2 针对PHP的动静分离 1.3 在nginx的配置中,是通过lo ...

最新文章

  1. linux服务器上nginx日志访问量统计命令
  2. linux 和windows 下golang安装
  3. excel单元格调用mysql数据_Excel 使用单元格的值 查询MySQL数据库并返回数据给相应的单元格...
  4. 1.9 归一化输入-深度学习第二课《改善深层神经网络》-Stanford吴恩达教授
  5. 弹性式分布数据集RDD——Pyspark基础 (二)
  6. 怎样才算得上合格的程序员
  7. 经验分享:Web前端入门要怎么开始学?
  8. [NOIP2015]金币
  9. 敏捷开发基础篇(一)-流程与角色基本概念
  10. Egret入门学习日记 --- 第九篇(书中 2.7~2.8节 内容)
  11. 什么是dispatchEvent?
  12. 人人商城小程序下单付款报错:“服务器暂时无法处理您的请求,请稍后再试”
  13. python绘制国际象棋规则口诀_python图形工具turtle绘制国际象棋棋盘,
  14. gvim 安装pathogen
  15. html5手机端纵向时间轴,html5触屏手机端响应式时间轴内容切换特效
  16. android打电话的intent,如何在Android中使用intent打电话?
  17. 中国中老年服装市场投资前景分析及供需格局研究预测报告
  18. 一年中的最后一天说说_2018最后一天感言说说 怎么发朋友圈告别2018年
  19. C语言三个点“...“符号含义之数组批量赋相同值
  20. 网络兼职正规网站,做兼职的来看看,防止被骗!

热门文章

  1. Springboot 整合 swagger
  2. CF1045G AI robots(动态开点线段树)
  3. Spring Security源码分析四:Spring Social实现微信社交登录
  4. 洛谷 P2689 东南西北【模拟/搜索】
  5. 最小生成树prim (c++ 已大改)
  6. Android Sqlite
  7. SSH2 后端编程思路总结
  8. OpenscenGraph中控制swapbuffer的方法(用于多机大屏幕同步显示机制)
  9. Qt4小技巧——QTextEdit自动滚屏
  10. 禁止进入activity后EditText自动获得焦点的方法