Nginx 官网提供的三种类型的版本:
- Mainline: 主线开发版本,汇集了最新的功能和错误修复,但稳定性可能略差。
- Stable : 当前稳定版本,经过了完全的测试,建议在正式生产环境中使用,
- Legacy : 历史稳定版本,有特殊需求的话可以采用
安装Nginx
注意:我使用的是,腾讯的服务器,centos 32位版本,nginx 使用的是1.12.0
准备工作
只要系统里有的GCC(或者其他编译器),Nginx就可以编译安装,但几个基本的重要的功能依赖于第三方库Zlib : 实现gzip 压缩解压功能
- pcre : 实现配置文件里的正则表达式解析功能
openssl : 实现SSL功能
在Ubuntu 里安装:(这里讨论 SSl协议,所以 不需要Openssl)
sudo apt-get install libz-dev libpcre3-dev
在Centos 安装:
yum install zlib zlib-devel # 安装zlib 库
yum install pcre pcre-devel # 安装pcre库
两种安装方式:
快速安装
Nginx 是以源代码方式发布的,所以可以直接去官网下载源代码形式的安装包:
wget http://nginx.org/download/nginx-1.12.0.tar.gz #使用wget下载
tar xvfz nginx-1.12.0.tar.gz #解压缩
在Ngin 目录下执行下面的命令既可快速安装Nginx:
./configure #编译器的配置工作
make #编译
sudo make install #安装
这是最简单的安装方式,没有任何定制参数,Nginx 将会安装到默认的/usr/local/nginx/目录,可执行文件是/usr/local/sbin/nginx ,默认配置文件是/usr/local/nginx/conf/nginx.conf。
运行命令:
启动和停止Nginx 需要root身份,或者使用sudo。
Nginx命令很多,更加详细的命令说明可以使用 -h/-? 参数查看,或者可以去网上查询
. 不带参数简单执行程序就可以启动Nginx 服务,这将使用默认的配置文件
#在安装目录 /usr/local/nginx/sbin/ 执行
./nginx #使用默认的配置文件来启动Nginx
#也可以使用 -c 参数指定配置文件来启动Nginx,这种方式允许我们启动多个Nginx实现例:
./nginx -c x.conf #指定配置文件x.conf 启动Nginx
#指定工作目录, -p path是-c 的增强版,用来设置工作目录,可以指定完整的Nginx环境
./nginx -p /var/nginx #将Nginx的工作目录为/var/nginx
#-s signal 参数可以快速地停止或者重启Nginx,signal值可以是stop,quit,reload或reopen:
./nginx -s stop #强制立即停止Nginx服务
./nginx -s quit #处理完当前所有的链接后再停止Nginx
./nginx -s reload #重启Nginx ,重新加载配置文件
./nginx -s reopen #重新打开日志文件
注意:如果使用了 -c /-p 参数启动了Nginx ,那么在使用-s 时,也必须使用-c / -p 参数,告诉Nginx 使用的是那个配置文件,否则会运行失败
#eg: 在使用x.conf 配置文件启动的Nginx 后重启Nginx ,必须指定配置文件;使用 -p 启动Nginx 后停止Nginx ,仍然要使用-p 参数
./nginx -s reload -c x.conf
./nginx -s stop -p /var/nginx
可以使用-t 来测试配置文件是否正确
nginx -t #检查默认的配置文件
nginx -t -c x.conf #检查指定的配置文件
-v或 -V参数可以显示Nginx版本信息,,他不需要root 权限,两则的区别是-V可以显示更多的信息,包括GCC版本,操作系统的版本,configure参数等定制信息:
…….
验证安装
如果已经成功启动了Nginx 服务,那我们怎么验证Nginx 是否正常工作?我们可以使用Wget 或者curl 这样的工具来验证
Nginx 的默认配置文件开启了localhost:80 服务,在/usr/local/nginx/html 下面放一写示例静态html 文件,curl测试命令:
curl -v -o /dev/null http://localhost/index.html
如果Nginx正在运行,那面curl 的部门输出可能会是如下:
上面的信息,就是http 请求头的内容。
我们也可以使用ps命令配合grep 可以看到所有的nginx 进程,也可以验证Nginx 是否正常运行:
从ps 的输出我们可以看到当前共有三个Nginx 进程,其中进程号为13897,14074 的是master进程,16898 号进程是worker进程。
如果Nginx没有正常运行,我们可以查看他的错误日志以排除故障,默认位置是 /usr/local/nginx/logs/error.log
定制安装
make 前执行configure 是Nginx 的重要组成部件,它检查各种系统参数、命令行参数和依赖库,根据这些参数生成定制的Makefile和一些C源码文件,没有他就无法正确编译Nginx。
虽然configure只是一个标准的Shell 脚本,但其内部逻辑十分复杂,为了支持各种操作系统,编译器和CPU做了大量的工作,具体的我也不懂,后面继续研究
– prefix=PATH:
配置Nginx安装的部署的根目录,也就是工作目录,默认值是:/usr/local/nginx/ ,
可以将它改为其他路径,这样我们就可以在一个系统里面配置不同用途的Nginx ,类似的选项有 --sbin-path 、
--conf-path等。例如:
``` ./configure --prefix=/var/nginx #这里讲Nginx安装到/var/nginx
```
2.–with-xxx_module, –without-xxx_module:
这是一系列近50个模块的配置选项,用来决定在Nginx 里启用或者禁止那些自带的功能模块,我们可以根据自身的实际情况来定制Nginx的功能,例如:
./configure \
--with-http_fiv_module \ #支持fiv 视频文件
--without-http_gzip_module #不适用gzip 压缩解压功能
3
3. –with-debug:
启用Nginx调试模式,可以让运行日志里打印更多的调试信息。
4. –with-ld-opt=OPTIONS:
这个是指定编译链接时的额外选项,启用了Nginx调试模式,可以让Nginx在运行日志里打印出更多的调试信息
./configure --with-ld-opt="-ljemalloc" #链接jemalloc库
这里不出一下:安装yum install zlip zlip-devel 失败,
要先安装 GCC编译器,或者其他编译器, yum install gcc