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

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配置)

本文来自互联网用户投稿,该文观点仅代表作者本人,不代表本站立场。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如若转载,请注明出处:http://www.mzph.cn/news/547971.shtml

如若内容造成侵权/违法违规/事实不符,请联系多彩编程网进行投诉反馈email:809451989@qq.com,一经查实,立即删除!

相关文章

安装Exchange 2010 时报错UserMailbox 必须强制使用 Database

安装Exchange 2010 时报错"UserMailbox 必须强制使用 Database"故障描述:在原有Exchange Server 2010 SP1的环境安装新的服务器上报"UserMailbox 必须强制使用 Database。 属性名称: Database"错,详细如下:错误:运行&quo…

三行代码生成验证码并转换成base64

使用 Hutool 工具类 import cn.hutool.captcha.CaptchaUtil; import cn.hutool.captcha.LineCaptcha; import cn.hutool.core.io.FileUtil; import cn.hutool.core.lang.Console; import sun.misc.BASE64Encoder;import java.io.File; import java.io.FileInputStream; import…

android 垂直的开关_安卓布局:如何让这两个按钮水平垂直居中

代码: 代码:android:id"id/linearLayout1" android:layout_width"wrap_content" android:layout_height"wrap_content" android:layout_alignParentBottom"true" android:layout_alignParentLeft"true&quo…

docker 创建容器报: Error response from daemon: C: drive is not shared.

报错 C:\Program Files\Docker\Docker\Resources\bin\docker.exe: Error response from daemon: C: drive is not shared. Please share it in Docker for Windows Settings. See C:\Program Files\Docker\Docker\Resources\bin\docker.exe run --help.这时候我们需要绑定盘符…

CentOS 7 搭建swagger Api文档管理系统

1,系统环境 a,操作系统 CentOS Linux release 7.6.1810 (Core) 64位 b,安装Node.js的npm工具环境: # Node 官网已经把 linux 下载版本更改为已编译好的版本了,我们可以直接下载解压后使用: wget http…

【Jectpack 基础】Jetpack Compose 文本居中的实现方法

在Jetpack Compose中,实现文本居中显示是一个常见的需求。本文将介绍一种简单而有效的方法,通过使用Compose的Modifier和Alignment属性来轻松实现文本的居中显示。 问题背景: 在开发中,我们经常需要将文本在其容器中水平和垂直方…

oracle数据库导入_oracle数据库导入数据

Oracle数据导入导出imp/exp功能:Oracle数据导入导出imp/exp就相当与oracle数据还原与备份。大多情况都可以用Oracle数据导入导出完成数据的备份和还原(不会造成数据的丢失)。Oracle有个好处,虽然你的电脑不是服务器,但是你装了oracle客户端&a…

宽带和流量是分开的吗_为什么现在的手机套餐与宽带越来越贵,只是因为建设5G吗?...

不知道你有没有这样一种感觉,手机的资费越来越高,并且宽带的资费也是开始上涨,随着5G时代的来到,我们现在的现在的的流量使用量也是越来越大,还记得2018的话费套餐最便宜的最低的只要8块钱,而29元能够办理包…

CentOS7 源码编译安装Redis shell脚本

1,系统环境 操作系统 CentOS Linux release 7.6.1810 (Core) 64位 2,执行以下命令完成安装 yum install -y gcc # 安装依赖包wget http://download.redis.io/releases/redis-5.0.5.tar.gz # 下载Redis安装包 tar -xzvf redis-5.0.5.tar.gzcd red…

SpringBoot 集成WebSocket

什么是WebSocket WebSocket 是一种网络通信协议,很多高级功能都需要它。 我们已经有了 HTTP 协议,为什么还需要另一个协议?它能带来什么好处? 因为 HTTP 协议有一个缺陷:通信只能由客户端发起。 如果我们想要服务器给…

大学电路题目怎么搜_长沙理工大学2020真题浅析

长沙理工大学2020年821电路,整体感觉难度还行,和邱版《电路》课后题的平均水平相当。整张卷子由9道填空题和七道大题目构成,填空一题5分,大题一题15分。先说说填空,1是一个等效电阻,当然上来先观察下平衡电…

maven识别包下的xml

<build><resources><resource><directory>src/main/java</directory><includes><include>**/*.xml</include></includes><!-- 不过滤 src/main/java 底下的xml文件 --><filtering>false</f…

CentOS 7 搭建RAP2r Api文档管理系统

1&#xff0c;系统环境 a&#xff0c;操作系统 CentOS Linux release 7.6.1810 (Core) 64位 2&#xff0c;安装npm环境&#xff1a; # Node 官网已经把 linux 下载版本更改为已编译好的版本了&#xff0c;我们可以直接下载解压后使用&#xff1a; wget https://nodejs.org…

转:VMware、微软等四种主要的网络IO虚拟化模型

本文主要为大家简要介绍VMware、Redhat、Citrix、Microsoft主要虚拟化厂商使用的4种主要的虚拟化IO模型(emulation、para-virtualization、pass-through、SR-IOV)。 本文主要为大家穿针引线&#xff0c;信息量比较大&#xff0c;组织排版有限&#xff0c;看官们将就点看着。 网…

axios跨域携带cookie_vue 本地调试跨域---带cookies(axios)

cookise跨域第二期之便捷优雅的本地调试(axios)1、打开config/index.js,在proxyTable中添写如下代码&#xff1a;proxyTable: {/agent: { //使用"/agent"来代替源地址target: https://datacloudtest.mncats365.com, //想要访问的地址secure: true,//如果是https请设置…

CIDR 计算网络地址、子网掩码、广播地址

题干 16.158.165.91/22 这个 CIDR 求一下这个网络的第一个地址、子网掩码和广播地址。 首先我们先计算网络号 /22 可知 前22位为网络位&#xff0c;后10位为主机位。 网络号就是 主机位为0&#xff0c;即 16.158.<101001><01>.91 > 16.158.<101001><0…

CentOS7安装go开发环境

1&#xff0c;系统环境 操作系统 CentOS Linux release 7.6.1810 (Core) 64位 执行以下命令&#xff1a; wget https://dl.google.com/go/go1.12.5.linux-amd64.tar.gz tar -xzvf go1.12.5.linux-amd64.tar.gz -C /usr/local/ mkdir -p /home/gopath cat >> /etc/p…

非递归遍历二叉树

2019独角兽企业重金招聘Python工程师标准>>> http://hi.baidu.com/lcplj123/item/7875233769fd5522b2c0c582 转载于:https://my.oschina.net/u/939893/blog/126138

Vue.js使用矢量图

安装依赖 npm i svg-sprite-loader --save目录结构 创建 svg-icon 组件 <template><svg :class"svgClass" aria-hidden"true"><use :xlink:href"iconName"/></svg> </template><script> export default {…

aix oracle监听配置_Oracel:ORA-12518:监听程序无法分发客户机连接

一、【问题描述】最近&#xff0c;在系统高峰期的时候&#xff0c;会提示如上的错误&#xff0c;致使无法连接到服务器上的数据库。二、【分析过程】1、首先判断是否由于监听配置不正确的原因导致?系统在正常情况下都可以正常的使用&#xff0c;检查监听配置&#xff0c;完全正…