Nginx是异步框架的网页服务器,也可以用作反向代理、负载平衡器和HTTP缓存。该软件由伊戈尔·赛索耶夫创建并于2004年首次公开发布。
2011年成立同名公司以提供支持。2019年3月11日,Nginx公司被F5 Networks以6.7亿美元收购。
Nginx是免费的开源软件,根据类BSD许可证的条款发布。
在安装nginx之前首先需要先安装下面的程序,后面安装执行nginx的时候会用到这些程序。
安装make
在linux中编译和安装程序需要用到make指令,如果系统上面还没安装make则需要先安装。
yum -y install gcc automake autoconf libtool make
安装gcc-c++
编译二进制文件需要gcc,所以先安装gcc-c++,如果已安装就忽略这一步。
yum install gcc gcc-c++
安装pcre
nginx rewrite 依赖pcre,因此需要先安装pcre,如果已安装就忽略这一步。这里我们下载pcre压缩包到/usr/local/src目录里面安装。
wget https://sourceforge.net/projects/pcre/files/pcre/8.43/pcre-8.43.tar.gz
./configure
make & make install
或者直接使用yum安装
yum install -y pcre pcre-devel
安装zlib
nginx gzip使用zlib,安装nginx前也需要安装zlib,如果已安装就忽略这一步。这里我们下载zlib压缩包到/usr/local/src目录里面安装。
wget http://zlib.net/zlib-1.2.11.tar.gz
./configure
make & make install
或者直接使用yum安装
yum install -y zlib zlib-devel
安装nginx
安装nginx可以使用yum源安装,或者下载二进制安装文件在本地编译安装,这里我使用二进制文件安装,可以自定义些配置和模块是否安装。
1.首先去nginx官网下载二进制压缩包
https://nginx.org/en/download.html
官网上有mainline和stable两种版本,分别表示目前最新版本和稳定版本,最新版本包含现在最新的功能,但可能存在未知的bug,生产环境还是建议使用稳定版本。
在centos上下载nginx二进制文件
wget https://nginx.org/download/nginx-1.16.1.tar.gz
这里我下载到usr/local/src目录里面
2.解压刚下载的压缩包
tar -zxvf nginx.1.16.1.tar.gz
解压以后可以看到里面有如下的目录
- CHANGES:nginx版本的修改信息文件,CHANGES.ru为俄文版
- conf:里面是nginx的配置文件,其中nginx.conf是我们主要修改的配置,包括监听,路由,开启关闭模块等配置
- html:nginx自带的页面,如index和错误页面
- objs:编译以后产生的文件,里面是编译后的中间文件
3.编译nginx二进制文件
./configure --prefix=/home/nginx
这里使用nginx的默认配置,我只修改了安装的目录为/home/nginx
然后使用make编译
make
编译以后会产生的文件在objs里面
安装
make install
安装完成后安装文件就在/home/nginx目录里面了,默认监听80端口
请求127.0.0.1:80地址,可以看到输出nginx的html目录里面的index.html页面
这里我修改监听的端口为8090用来测试,nginx的配置文件在conf目录里面的nginx.conf,要修改监听端口只需要修改server的listen字段
进入/home/nginx可看到生成如下的目录
- conf:存放配置文件的目录,主要会用到的是nginx.conf
- html:存放页面的目录,包括index页面和50x的错误页面
- logs:存放日志文件的目录,包括access和error日志
- sbin:存放执行文件的目录,里面有一个nginx的可执行文件,升级会到这里替换这个文件
启动nginx
由于安装nginx的目录在home里面,而nginx引用的lib在usr/local/lib里面,需要将usr/local/lib加到环境变量里面,否则找不到所需的包
export LD_LIBRARY_PATH="$LD_LIBRARY_PATH:/usr/local/lib"
然后启动nginx
/home/nginx/sbin/nginx -t -c /home/nginx/conf/nginx.conf
访问8090端口
到这里nginx就顺利安装完成了,如果修改了配置文件了,可以执行nginx -s reload命令重启nginx服务器使配置生效。