nginx的三个主要应用场景
1.静态资源服务
通过本地文件系统提供服务
2.反向代理服务
强大的性能
缓存
负载均衡
3.API服务
openResty
nginx的优点
1.高并发,高性能
2.可扩展性好
3.高可靠性
4.热部署
5.BSD许可证
nginx的组成
1.nginx二进制可执行文件,由各模块源码编译出的一个文件
2.nginx.conf配置文件,控制nginx行为
3.access.log访问日志,记录每一条http请求信息
4.error.log 错误日志,定位问题
下载编译nginx
下载文件
1.wget http://nginx.org/download/nginx-1.14.0.tar.gz
目录说明
auto目录:编译时判定系统,特效等等
changes:版本说明
changes.ru:俄罗斯版本说明
conf:一个示例文件,配置时的示例
configure:编译的可执行文件
contrib:可以把里面的vim文件拷贝到自己的目录中,nginx配置文件显示高亮
html:提供了2个html 文件,发生500错误的文件会重定向到这个文件,一个是nginx欢迎文件。
man:提供了一些帮助
src:源代码
编译
查看支持哪些参数 ./configure --help | more
这里面主要分了几大块
1.路径:一些依赖或者生成的文件存放的目录
2.确定使用,不使用哪些模块,前缀是with or without
with前缀的,默认不会编译进nginx的,可以使用with指定编译进去
--without,默认会编译进nginx的,可以使用--without指定不编译进去
3.一些特殊参数,加一些特殊的模块或者参数,指定一些依赖的东西
开始配置
这里我们使用默认参数,指定nginx的安装目录
如果没有任何报错,那么nginx就是配置成功了。会生成一些中间文件,存放在nginx的原目录中的objs里
这里面最主要的是ngx_modules.c文件,这里指定了哪些模块被编译进nginx了。
执行编译make
如果没有任何错误,可以看到生成的文件在objs里
返回上级目录,执行make
安装
最后可以在前面指定的安装目录中看到安装好的nginx文件
sbin下是nginx的二进制文件
nginx配置语法
1.配置文件由指令与指令块构成
2.每条指令以;分号结尾,指令与参数间以空格符合分隔
3.指令块以{} 大括号将多条指令组织在一起
4.include语句允许组合多个配置文件以提升可维护性
5.使用#号添加注释,提高可读性
6.使用$符号使用变量
7.部分指令的参数支持正则表达式
nginx命令行
重载
./nginx -s reload 热加载配置
热部署
更换新版本的nginx,先备份下旧的nginx二进制文件
将新的烤过来,然后热部署
kill -USR2 pid (nginx的进程id),启动新的master进程,但是新的请求都会访问新的master
然后kill -WINCH pid ,通知nginx优雅的关闭旧nginx worker进程,但旧master此时还在。
这个旧master不会自动退出的,如果我们发现新版本的nginx有问题,想要回退,那么可以reload起来旧的worker进程
再把新master的重新执行下上面的kill。
日志切割
手动不方便,可以写个bash脚本,放到crontab中定时执行