Nginx grid-fs反向代理访问Mongo中的文件

首先对于一个新的centos系统当然是先装一个输入法(个人习惯)
1、安装中文拼音输入法:
yum install ibus ibus-pinyin

安装pcre:
*如果没有gcc gcc-c++编译器,需要用这个命令安装:yum install -y gcc gcc-c++
安装pcre的命令:./configure --prefix=/usr/local/pcre-8.38
make
make install
安装SSL:
 ./config --prefix=/usr/local/openssl-1.0.2
make
make install
安装zlib:
./configure --prefix=/usr/local/zlib-1.2.8
make
make install

2、安装nginx以及gridfs模块:
    1)、安装git:yum -y install git
    2)、在git上克隆nginx-gridfs的源代码:git clone https://github.com/rc3097/rc3097-nginx-gridfs
    3)、安装带gridfs模块的nginx,安装时才发现,pcre、ssl、zlib不需要安装,配置时其实只需要源码路径,否则报错,命令如下:
./configure --prefix=/usr/local/nginx --with-pcre=../pcre-8.38 --with-openssl=../openssl-1.0.2g --with-zlib=../zlib-1.2.8 --with-http_stub_status_module --add-module=../rc3097-nginx-gridfs
    4)、将nginx加入系统环境变量:
    在/etc/profile最后插入
    export NGINX_HOME=/usr/local/nginx
    export PATH=$PATH:$NGINX_HOME/sbin
    保存,然后执行source /etc/profile
    在控制台上输入nginx -v出现版本信息则安装成功。
3、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:27017;
}
           (3)用于副本集
       location /gridfs/ {
    gridfs my_app field=filename type=string;
    mongo "foo"
          10.7.2.27:27017
          10.7.2.28:27017;
}
            (4)完整配置
       location /gridfs/ {
      gridfs my_app
      root_collection=pics
      field=_id
      type=int
      user=foo
      pass=bar;
      mongo 127.0.0.1:27017;
}
4、启动、停止nginx
    在启动前关闭系统防火墙,service iptables stop,否则会导致其他客户机无法访问80端口的服务(也可以配置iptables,自己去查)
    启动:nginx
    停止:使用ps -ef|grep nginx查看nginx的进程,然后kill掉主进程id 
5、演示
    我的mongo数据库安装在本机,nginx安装在虚拟机,在本地浏览器中输入访问资源的url就可以,这里以图片举例:
    数据库中存放了一张图片:
    Nginx grid-fs反向代理访问Mongo中的文件
    url后面就是图片在数据库中对应的_id,浏览器会马上显示这张图片:
    Nginx grid-fs反向代理访问Mongo中的文件
6、注意点
         (1)在测试配置时要记住不要将nginx的文件过期缓存时间配置开启了,最好是在配置好服务器以后再做这个工作,否则很容易造成配置错误的假象。
         (2)要保证系统启动过程中,MongoDB比nginx先启动,否则nginx-gridfs初始化的时候不能正确链接MOngoDB数据库。