一.安装准备
安装环境:Linux CentOS7 64位
Nginx官网下载 http://nginx.org/en/download.html ,目前最新版本是1.13.8,此处使用的版本是1.12.2。
Nginx安装需要依赖如下3个组件:
gzip 模块需要 zlib 库 ( 下载: http://www.zlib.net/ )
rewrite 模块需要 pcre 库 ( 下载: http://www.pcre.org/ )
ssl 功能需要 openssl 库 ( 下载: http://www.openssl.org/ )
所以总共下载的内容为:
这些压缩包加压后的目录我都放在 /usr/local/src 目录下。
如果没有安装c++编译环境,还得安装,通过yum install gcc-c++完成安装。
二.安装和启动
安装过程中用到的几个命令:
make是用来编译的,它从Makefile中读取指令,然后编译。
make install是用来安装的,它也从Makefile中读取指令,安装到指定的位置。
configure命令是用来检测你的安装平台的目标特征的。它定义了系统的各个方面,包括nginx的被允许使用的连接处理的方法,比如它会检测你是不是有CC或GCC,并不是需要CC或GCC,它是个shell脚本,执行结束时,它会创建一个Makefile文件。
安装步骤:
1.安装pcre1
2
3
4[root@server01 ~]# cd /usr/local/src/pcre-8.40/
[root@server01 pcre-8.40]# ./configure
[root@server01 pcre-8.40]# make
[root@server01 pcre-8.40]# make install
2.安装openssl1
2
3
4[root@server01 ~]# cd /usr/local/src/openssl-1.1.0g
[root@server01 pcre-8.40]# ./config
[root@server01 pcre-8.40]# make
[root@server01 pcre-8.40]# make install
3.安装zlib1
2
3
4[root@server01 ~]# cd /usr/local/src/zlib-1.2.11
[root@server01 pcre-8.40]# ./configure
[root@server01 pcre-8.40]# make
[root@server01 pcre-8.40]# make install
4.安装Nginx1
2
3
4[root@server01 ~]# cd /usr/local/src/nginx-1.12.2
[root@server01 pcre-8.40]# ./configure
[root@server01 pcre-8.40]# make
[root@server01 pcre-8.40]# make install
安装完成后,可以通过执行 /usr/local/nginx/sbin/nginx 这个脚本启动nginx服务器。
发现报错了:
error while loading shared libraries: libpcre.so.1: cannot open shared object file: No such file or directory
经网上查询,这是linux的通病
1 | [root@localhost nginx]# cd /usr/local/src/nginx |
先找到libpcre.so.1所在位置,然后做个软链接就可以了。
查看是否已启动:
通过浏览器访问:
看到这个就说明nginx安装并启动成功。
Nginx常用的几个命令
- nginx -v: 显示 nginx 的版本信息。
- nginx -V: 显示 nginx 的版本信息,编译器版本和配置参数。
- nginx -s stop: 快速关闭Nginx,可能不保存相关信息,并迅速终止web服务。
- nginx -s quit: 平稳关闭Nginx,保存相关信息,有安排的结束web服务。这是一种优雅的关闭方式。
- nginx -s reload: 重新加载配置文件。因改变了Nginx相关配置,需要重新加载,这是Nginx配置的平滑更新。
为了让主进程重新读取配置文件,应该向主进程发送一个HUP信号,主进程一旦接收到重新加载配置的的信号,它就检查配置文件语法的有效性,然后试图应用新的配置,即打开新的日志文件和新的socket 监听,如果失败,它将回滚配置更改并继续使用旧的配置,如果成功了,它开启新的工作进程,并给旧的工作进程发消息让它们优雅的关闭,旧的工作进程接收到关闭信号后,不再接收新的请求,如果已有请求正在处理,等当前请求处理完毕后关闭,如果没有请求正在处理,则直接关闭。 - nginx -s reopen: 重启日志文件。在备份日志文件时常用,由于nginx是通过inode指向日志文件的,inode和文件名无关,所以即使把日志文件重命名,nginx还是将日志文件写入原文件,只有用上面的命令重新开启日志文件才能将日志写入新的日志文件。
- nginx -c ${FILE_NAME}: 为 Nginx 指定一个配置文件,来代替缺省的。
- nginx -t: 不运行,而仅仅测试配置文件。nginx 将检查配置文件的语法的正确性,并尝试打开配置文件中所引用到的文件。