Nginx功能
Nginx能做什么
1、静态网站服务(类似apache2,但性能更优秀)
2、使用模块来对访问进行限制(限速限流、资源缓存、资源压缩、location、日志)
3、负载均衡器(四层代理<传输层>,七层代理<应用层>),适用于不同环境的负载均衡调度算法
4、网站的动静资源分离代理。其中的静态资源可用于业务扩展时上传到专用的cdn服务
5、集群,多层代理,实现业务的高可用和高并发
Nginx搜索方式
1、先匹配域名,再匹配端口。若域名匹配不上,则按照IP访问来查找资源,如果还查找不到,则返回404
Nginx平滑升级
前提条件:nginx通过service来进行代理,而不是通过nginx来直接启动,这样的无法进行平滑升级。

平滑升级的过程:
1、旧版本Nginx照常运行,并根据旧版本的安装配置,编译新版本的Nginx
2、将新版本运行起来,但此时用户请求依旧访问旧版本
3、将旧版本的worker停止运行,但保留master进程。同时所有请求给到新版本处理,保持这种状态直到确认没用问题
4、停止旧版本的master进程,此时只有新版本继续运行
具体步骤
1、下载新版本的nginx包,解压并进入到其中
yum -y install gcc pcre-devel openssl-devel zlib-devel wget
wget https://nginx.org/download/nginx-1.24.0.tar.gz
# 安装基础需求,为之后的编译做准备.下载新版本的Nginx包
2、使用nginx -V查看老版本使用的安装参数
[root@centos7 nginx-1.24.0]#nginx -V
nginx version: nginx/1.24.0
built by gcc 4.8.5 20150623 (Red Hat 4.8.5-44) (GCC)
built with OpenSSL 1.0.2k-fips 26 Jan 2017
TLS SNI support enabled
configure arguments: --prefix=/apps/nginx --user=nginx --group=nginx --with-http_ssl_module --with-http_v2_module --with-http_realip_module --with-http_stub_status_module --with-http_gzip_static_module --with-pcre --with-stream --with-stream_ssl_module --with-stream_realip_module
# 此时的安装参数为
--prefix=/apps/nginx --user=nginx --group=nginx --with-http_ssl_module --with-http_v2_module --with-http_realip_module --with-http_stub_status_module --with-http_gzip_static_module --with-pcre --with-stream --with-stream_ssl_module --with-stream_realip_module
3、运行命令,编译新版本的nginx二进制文件
# 示例环境,操作时以实际为准
./configure --prefix=/apps/nginx --user=nginx --group=nginx --with-http_ssl_module --with-http_v2_module --with-http_realip_module --with-http_stub_status_module --with-http_gzip_static_module --with-pcre --with-stream --with-stream_ssl_module --with-stream_realip_module
# 整理完后运行make,但不要运行make install.make install会将老版本所有数据全部覆盖,会直接导致Nginx服务停止
make
# 检查编译后的版本是否正确
objs.nginx -v
4、备份旧版本,并将新版本nginx程序覆盖过去
# 这是测试环境,一切以实际环境为准
cp /apps/nginx/sbin/nginx /usr/local/sbin/nginx.old
cp -f ./objs/nginx /apps/nginx/sbin/
y