准备工作
Linux操作系统
需要内核为Linux 2.6 及以上版本的操作系统,因为2.6以上才支持epoll,而在Linux上使用select或poll来解决事件的多路复用,是无法解决高并发压力问题
可以使用 uname -e 命令来查询Linux内核版本
必备软件
以下只是完成web服务器最基本功能 所必需的。
1)GCC编译器 yum install -y gcc
2)G++编译器 yum install -y gcc-c++
3) PCRE库 yum install -y pcre pcre-devel
4)zlib库 yum install -y zlib zlib-devel
5)OpenSSL yum install -y openssl openssl-devel
磁盘目录
(1)Nginx源代码存放目录
(2)该目录用于放置在configure命令执行后所生成的源文件及目录,以及make命令执行后生成的目标文件和最终连接成功的二进制文件,默认情况下,configure
命令会将该目录命名为objs,并放在Nginx源代码目录下
部署目录
该目录存放实际Nginx服务运行期间所需要的二进制文件、配置文件等。默认情况下,为/usr/local/nginx
日志文件存目录
日志文件通常会比较大,当研究Nginx的底层架构时,需要打开debug级别的日志,会导致日志文件的大小增长得极快,需要预先分配一个拥有更大磁盘空间的目录
Linux内核参数的wdwx
略。。。。。
获取Nginx源码
可以在官网获取Nginx源码包,下载后放置到准备好的Nginx源代码目录中,然后解压。例如:
tar -zxvf nginx-x.x.x.x.tar.gz
编译安装Nginx
最简单的安装方式是:进入解压后的nginx-x-x-x目录后执行以下3行命令:
./configure
make
make install
configure 命令做了大量的幕后工作,包括检测操作系统内核和已经安装的软件,参数的解析,中间的目录的生成以及根据各种参数生成一些C源码文、Makefile文件等。
make命令根据configure命令生成的Makefile文件编译Nginx工程,并生成目标文件、最终二进制文件。
make install 命令根据configure执行时的参数将Nginx部署到指定的安装目录,包括相关目录的建立和二进制文件、配置文件的复。
configure详解
使用help命令可以查看configure包含的参数 :./configure --help
路径相关的参数
编译相关的参数
依赖软件的相关参数
模块相关的参数
事件模块
默认即编译进入Nginx的HTTP模块
默认不会编译进Nginx的模块
mail和其他参数
Nginx的基本命令
默认方式启动
直接执行Nginx 二进制程序,例如:
/usr/local/nginx/sbin/nginx
这时,会读取默认路径下的配置文件:/usr/local/nginx/conf/nginx.conf
另行指定配置文件启动
/usr/local/nginx/sbin/nginx -c /xxx/xxx/nginx.conf
另行指定 安装目录的启动方式
/usr/local/nginx/sbin/nginx -p /usr/local/nginx
另行指定全局配置项的启动方式
可以通过-g参数临时指定一些全局配置项,以使新的配置项生效
/usr/local/nginx/sbin/nginx -g "pid /var/nginx/test.pid;"
上述命令会把pid文件写到/var/nginx/test.pid中
测试配置信息是否有错误
在不启动Nginx的情况下,使用-t参数测试配置文件是否有错误:
/usr/local/nginx/sbin/nginx -t
显示版本或编译阶段的参数
/usr/local/nginx/sbin/nginx -v/-V
快速停止服务
/usr/local/nginx/sbin/nginx -s stop
处理完当前所有请求再停止服务
/usr/local/nginx/sbin/nginx -s quit
使运行中的Nginx重读配置项并生效
/usr/local/nginx/sbin/nginx -s reload
日志文件回滚
/usr/local/nginx/sbin/nginx -s reopen