(一)安装nginx前的准备

安装nginx需要安装openssl和pcre,具体安装步骤请参考nginx安装的相关博文

(二)nginx和nginx-gridfs 联合编译安装

nginx-gridfs 源码下载(包含Mongo-C-Driver可用的下载链接):地址 http://files.cnblogs.com/de0319gh/nginx-gridfs.zip

nginx和nginx-gridfs 联合编译安装三个步骤:

(1)./configure --prefix=/usr/local/nginx --with-openssl=/usr/include/openssl --with-http_stub_status_module --add-module=/home/cdh/Downloads/mdirolf-nginx-gridfs

(2)make        (3)make install

(三)nginx-gridfs 配置

配置的语法说明:

gridfs db_name [root_collection] [field] [type] [user] [pass];

mongo mongodb url;

[root_collection]: 选择collection,如root_collection=blog, mongod就会去找blog.files与blog.chunks两个块,默认是fs

[field]:查询字段,保证mongdb里有这个字段名,支持_id, filename, 可省略, 默认是_id

[type]:解释field的数据类型,支持objectid, int, string, 可省略, 默认是int

[user]:用户名, 可省略

[pass]:密码, 可省略

配置示例:

(1)指定db为my_app,其他均为默认,默认服务器为本地

location /gridfs/ { gridfs my_app; }

(2)

location /gridfs/ {
gridfs my_app field=filename type=string;
mongo 127.0.0.1:;
}

(3)用于副本集

location /gridfs/ {
gridfs my_app field=filename type=string;
mongo "foo"
10.7.2.27:
10.7.2.28:;
}

(4)完整配置

location /gridfs/ {
gridfs my_app
root_collection=pics
field=_id
type=int
user=foo
pass=bar;
mongo 127.0.0.1:;
}

(四)注意点

(1)在测试配置时要记住不要将nginx的文件过期缓存时间配置开启了,最好是在配置好服务器以后再做这个工作,否则很容易造成配置错误的假象。

(2)要保证系统启动过程中,MongoDB比nginx先启动,否则nginx-gridfs初始化的时候不能正确链接MOngoDB数据库。

了解CentOS守护进程启动顺序的可以参考 http://wenku.baidu.com/view/f13befcfa1c7aa00b52acb40.html

查看启动顺序 ls /etc/rc3.d

以上内容都时链接到/etc/init.d/目录里的相应守护进程启动脚本,S55nginx 意思时nginx的守护进程启动顺序为55,S85mongod 意思时mongod的启动顺序为85,问题就在mongod比nginx晚启动。
                修改启动顺序,将mongod的启动顺序值改为比nginx小的数:
                mv /etc/rc3.d/S85mongod /etc/rc3.d/S54mongod
                mv /etc/rc5/d/S85mongod /etc/rc5.d/S54mongod
                ok,现在reboot重启解决问题。

(五)nginx-gridfs错误解决

问题描述:

nginx -V检查毫无问题,但是访问所有gridfs内容均报503 Service Temporarily Unavailable,看nginx日志:Mongo connection dropped, could not reconnect。

解决方案:重新clone gridfs,然后不要git submodule init; git submodule update; 而是:

git clone https://github.com/eagleas/mongo-c-driver.git

换了一个别人的mongo-c-driver,重新编译安装nginx即可。

文章出处:https://github.com/mdirolf/nginx-gridfs/issues/52

引用:

To fix the isseu you need the latest master branch of the C driver (the GridFS module uses another branch, which seems to be faulty).

After cloning this repo, do not do 'git submodule init && git subodule update', but instead:
    
git clone https://github.com/eagleas/mongo-c-driver.git

Then compile nginx as usual.

There are one problem is that you must delete the -Werror option of gcc in [nginx-source/objs/MakeFile].
     
If you don't do that, the warning will be treated as errors when you do make.

the log of make below:

cc1: warnings being treated as errors
             /home/Administrator/upload/nginx-gridfs//mongo-c-driver/src/numbers.c
            
gcc -c -pipe -O -W -Wall -Wpointer-arith -Wno-unused-parameter
-Wunused-function -Wunused-variable -Wunused-value -Werror -g --std=c99
-Isrc -I src/core -I src/event -I src/event/modules -I src/os/unix -I
objs  \  -o objs/ngx_modules.o \

关于nginx的卸载

nginx的卸载要看你是怎么装的nginx。RPM装的 用rpm -e卸载
      yum装的用 yum remove卸载 ,源码装的直接删文件就OK.

另外一篇比较好的介绍mongo+nginx-gridfs安装的地址 http://blog.sina.com.cn/s/blog_40e8378d0100oxuy.html

nginx-gridfs 的安装配置和使用的更多相关文章

  1. nginx,php-fpm的安装配置

    在centos7.2的系统下安装nginx和php-fpm nginx 安装 yum install -y nginx 即可完成安装 配置 由于之前项目使用的是apache,所以项目目录在var/ww ...

  2. Nginx概述及安装配置

    1.概述 Nginx是一款开源的,高性能的Http和反向代理服务器,同时也是一个IMAP.POP3.SMTP代理服务器:Nginx可以作为一个HTTP服务器进行网站的发布处理,也可以作为反向代理进行负 ...

  3. CentOS7下搭建Nginx+PHP7的安装配置

    一.安装编译工具及库文件: yum -y install make zlib zlib-devel gcc-c++ libtool openssl openssl-devel 环境要求 nginx是C ...

  4. nginx+php windows安装配置

    https://blog.csdn.net/zjiang1994/article/details/72876193 https://blog.csdn.net/bruce_wang_janet/art ...

  5. Nginx的基本安装配置

    Centos7安装nginx 升级nginx 升级可能遇到问题(我没有遇到, 参考的另一篇文章描述的) 检查nginx版本, 确认安装成功 nginx配置文件 虚拟主机配置 配置文件中可以用的全局变量 ...

  6. Nginx源码安装配置

    Nginx web服务器简介 Nginx ("engine x") 是一个高性能HTTP 和 反向代理 服务器.IMAP.POP3.SMTP 服务器. Nginx 是由 Igor ...

  7. nginx 源码安装配置详解(./configure)

    在"./configure"配置中,"--with"表示启用模块,也就是说这些模块在编译时不会自动构建,"--without"表示禁用模块, ...

  8. thinkphp nginx+phpcgj安装配置

    环境:mysql-5.6.26             nginx-1.9.4.tar.gz   php-5.6.13 程序框架ThinkPHP 客户要求必须使用nginx + php 1.首先安装n ...

  9. Linux系统下Nginx+PHP 环境安装配置

    一.编译安装Nginx 官网:http://wiki.nginx.org/Install 下载:http://nginx.org/en/download.html # tar -zvxf nginx- ...

  10. [Nginx]Ubuntu18.04 安装配置Nginx1.13.6+FastDFS

    一. 安装fastdfs依赖包 1. 解压缩libfastcommon-master.zip 2. 进入到libfastcommon-master的目录中 3. 执行 ./make.sh 4. 执行 ...

随机推荐

  1. Leetcode 171 Excel Sheet Column Number python

    题目: Given a column title as appear in an Excel sheet, return its corresponding column number. For ex ...

  2. 提升Boolean和out相结合的用户体验

    在我们编写代码的过程中经常有这样的需求,比如添加一条数据,我们想要的结果是如果添加成功了就返回true,如果添加失败了就返回false,在返回false的同时携带错误信息,我们通常的做法是定义这样的方 ...

  3. 微软云基础架构Hyper-scale Datacenter

    每天醒来,可能很多人的习惯都是打开手机,看看微信,刷刷朋友圈,或者看看新闻,去咖啡店,打开电脑搜索一些关键字,观看视频,电视剧--可是你有没有想过你每一次键盘的敲击,每一次微信的语音的发送,数据会流向 ...

  4. mobile web曾经的踩过坑

    兼容性一直是前端工程师心中永远的痛.手机浏览器,因为基本是webkit(blink)内核当道,很多公司,不用考虑IE系的浏览器,所以感觉兼容性上的问题可能会少一些. 但是手机端,虽然出了很多工具,但是 ...

  5. Qt 鼠标样式特效探索样例(一)——利用时间器调用QWidget.move()函数

    Qt 鼠标样式特效探索样例(一)       心血来潮,突然想在Qt里玩一把鼠标样式,想到在浏览网页时,经常看到漂亮的鼠标动画,于是今天摸索着乱写个粗糙的demo,来满足自己的好奇心. 效果图 方案要 ...

  6. mfc窗口,父窗口parentwindow,所有者窗口ownerwindow 区别

    一. parent:创建者,owner:所有者 小玉的父母生下小玉,养到8岁,卖给贾府当丫头小玉的父母是parent,贾府是owner 二. 1.Pop-up窗口: 一个弹出窗口是必须具有WS_POP ...

  7. 重新mysql-server

    apt-get purge mysql-server │apt-get purge mysql-common │rm -rf /var/log/mysql │rm -rf /var/log/mysql ...

  8. exit()与_exit()的区别

    从图中可以看出,_exit 函数的作用是:直接使进程停止运行,清除其使用的内存空间,并清除其在内核的各种数据结构:exit 函数则在这些基础上做了一些小动作,在执行退出之前还加了若干道工序.exit( ...

  9. Linux下的sudo及其配置文件/etc/sudoers的详细配置说明

    http://www.osedu.net/article/linux/2011-01-03/178.html Linux下的sudo及其配置文件/etc/sudoers的详细配置说明 1.sudo介绍 ...

  10. #include <boost/asio.hpp>

    TCP服务端和客户端 TCP服务端 #include <iostream> #include <stdlib.h> #include <boost/asio.hpp> ...