在CentOS7中安装nginx1.9 + nginx-gridfs
庞乐池
2023-12-01
在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 来执行的,懒得写脚本了