在CentOS7中安装nginx1.9 + nginx-gridfs

来源:互联网 发布:网络大学考试平台答案 编辑:程序博客网 时间:2024/06/06 03:12
                                                在CentOS7中安装nginx1.9 + nginx-gridfs

同学们好,老司机又来了! 今天我安装了下 nginx-gridfs ,nginx-gridfs作为nginx的一个模块,其作用就不谈了,主要是连接mongoDB的Gridfs
访问其中存储的文件,我的环境是CentOS7,以前安装了nginx1.9,想加装一下nginx-gridfs模块(我安装的版本是version 0.8),但是nginx不能动态加载第三方模块,需要重新编译才行
那么问题来了,下面我将自己摸索到的安装步骤共享出来(注意,这是我亲测的可以用的安装方法,不要拿其他那些复制链贴的来和我比较)


1、安装编译时依赖的包  yum install cmake
                       yum install make
                       yum install gcc
                       yum install gcc-c++
                       yum install ncurses
                       yum install ncurses-devel
                       yum install perl-Data-Dumper
                       yum install libicu-devel
                       yum install libquadmath-devel
                       yum install python-devel
                       yum install bzip2-devel
                       yum install bison
                   yum install gcc-c++  
               yum install pcre
                       yum install pcre-devel  
                      yum install zlib
               yum install zlib-devel  
               yum install openssl
               yum install openssl--devel



2、创建nginx组nginx用户(请创建系统级的用户)

   groupadd -r nginx
   useradd nginx nginx

3、在你自己管理app的文件夹下面创建一个nginx的目录,方便以后管理nginx,以及nginx的第三方模块
   并下载nginx1.9,下载完成后解压
(我是在/usr下面创建的,目录没什么关系,只要在编译的时候设置好路径就可以了)
 
   cd /usr
   mkdir nginx && cd nginx
   wget http://nginx.org/download/nginx-1.9.6.tar.gz
   tar -zfx  nginx-1.9.6.tar.gz

4、下载nginx-gridfs,这是一个第三方模块,github上面有的是一个开源项目,请到正规的github上面下载(我指定的)
   https://github.com/mdirolf/nginx-gridfs,我安装nginx-gridfs也是参考上面的说明的
   cd /usr/nginx
   git clone https://github.com/mdirolf/nginx-gridfs.git
   cd nginx-gridfs
   git checkout v0.8
   git submodule init
   git submodule update

5、好了,准备工作完成了下面就该是编译nginx的时候了,设置预编译参数
   
   创建编译参数所需的文件夹
   cd /var/tmp
   mkdir nginx && cd nginx
   mkdir client_body
   mkdir proxy
   mkdir fastcgi
   mkdir uwsgi
   mkdir scgi
 
   进入nginx目录设置预编译参数
   cd /usr/nginx/nginx-1.9.6
   ./configure \
   --prefix=/usr/nginx/nginx-1.9.6 \
   --sbin-path=/usr/sbin/nginx \
   --conf-path=/etc/nginx/nginx.conf \
   --error-log-path=/usr/nginx/nginx-1.9.6/logs/error.log \
   --http-log-path=/usr/nginx/nginx-1.9.6/logs/access.log \
   --pid-path=/var/run/nginx/nginx.pid \
   --lock-path=/var/lock/nginx.lock \
   --user=nginx \
   --group=nginx \
   --with-http_ssl_module \
   --with-http_dav_module \
   --with-http_flv_module \
   --with-http_realip_module \
   --with-http_addition_module \
   --with-http_xslt_module \
   --with-http_stub_status_module \
   --with-http_sub_module \
   --with-http_random_index_module \
   --with-http_degradation_module \
   --with-http_secure_link_module \
   --with-http_gzip_static_module \
   --with-http_perl_module \
   --with-debug \
   --with-file-aio \
   --with-mail \
   --with-mail_ssl_module \
   --http-client-body-temp-path=/var/tmp/nginx/client_body \
   --http-proxy-temp-path=/var/tmp/nginx/proxy \
   --http-fastcgi-temp-path=/var/tmp/nginx/fastcgi \
   --http-uwsgi-temp-path=/var/tmp/nginx/uwsgi \
   --http-scgi-temp-path=/var/tmp/nginx/scgi \
   --with-stream \
   --with-ld-opt=-Wl,-E \
   --add-module=/usr/nginx/nginx-gridfs \
 
 (这些参数是干什么的我就不解释了,大家可以自己去百度下,或者看得懂英文的直接去官网看,官网的说明才是最正确的)
   --add-module=/usr/nginx/nginx-gridfs  ##这个是设置nginx-gridfs的路径
   --sbin-path=/usr/sbin/nginx  ##这个设置编译之后nginx命令放在哪
   --conf-path=/etc/nginx/nginx.conf   ##这个设置配置文件路径
 
  大家如果以后忘了这些参数,可以执行 nginx -V 查看
   
   
6、编译之前先对上一步生成的Makefile进行修改(不然编译的时候有可能会报错)
   cd /usr/nginx/nginx-1.9.6/objs
   vim Makefile
   删除前面几行的 -Werror

   cd /usr/nginx/nginx-1.9.6
   make
   make install

7、配置nginx-gridfs 模块
   
   location /uploade/{
            gridfs test
            field=_id
            type=objectid;
            mongo 127.0.0.1:27017;
   }
            gridfs test  ##mongodb的数据库名
            field=_id    ##访问方式  有两种_id 和 filename
            type=objectid;  关键字的类型 objectid、string、int
            mongo 127.0.0.1:27017; mongo的IP:port
   至于更详细的配置请自行百度
 
8、接下去启动nginx
   cd /usr/sbin
   nginx

   关闭nginx 我是通过kill -9 来执行的,懒得写脚本了
0 0
原创粉丝点击