200字
高性能web服务Nginx
2025-11-26
2025-11-26

Nginx功能

Nginx能做什么

​ 1、静态网站服务(类似apache2,但性能更优秀)

​ 2、使用模块来对访问进行限制(限速限流、资源缓存、资源压缩、location、日志)

​ 3、负载均衡器(四层代理<传输层>,七层代理<应用层>),适用于不同环境的负载均衡调度算法

​ 4、网站的动静资源分离代理。其中的静态资源可用于业务扩展时上传到专用的cdn服务

​ 5、集群,多层代理,实现业务的高可用和高并发

Nginx搜索方式

1、先匹配域名,再匹配端口。若域名匹配不上,则按照IP访问来查找资源,如果还查找不到,则返回404

Nginx平滑升级

​ 前提条件:nginx通过service来进行代理,而不是通过nginx来直接启动,这样的无法进行平滑升级。

image.png

平滑升级的过程:

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

评论