Nginx安装;Nginx服务器启停与版本升级(平滑升级);Nginx自定义安装后配置成系统服务;Nginx命令配置到系统环境

Nginx提供的基本功能:基本HTTP服务、高级HTTP服务、邮件服务;Nginx常用的功能模块 ===================================================================================== Nginx的功能特性及常用功能 Nginx提供的基本功能服务从大体上归纳为"基本HTTP服务"、“高级HTTP服务”和"邮件服务"等三大类。 基本HTTP服务 Nginx可以提供基本HTTP服务,可以作为HTTP代理服务器和反向代理服务器,支持通过缓存加速访问,可以完成简单的负载均衡和容错,支持包过滤功能,支持SSL等。 处理静态文件、处理索引文件以及支持自动索引; 提供反向代理服务器,并可以使用缓存加上反向代理,同时完成负载均衡和容错; 提供对FastCGI、memcached等服务的缓存机制,,同时完成负载均衡和容错; 使用Nginx的模块化特性提供过滤器功能。Nginx基本过滤器包括gzip压缩、ranges支持、chunked响应、XSLT、SSI以及图像缩放等。其中针对包含多个SSI的页面,经由FastCGI或反向代理,SSI过滤器可以并行处理。 支持HTTP下的安全套接层安全协议SSL. 支持基于加权和依赖的优先权的HTTP/2 高级HTTP服务 支持基于名字和IP的虚拟主机设置 支持HTTP/1.0中的KEEP-Alive模式和管线(PipeLined)模型连接 自定义访问日志格式、带缓存的日志写操作以及快速日志轮转。 提供3xx~5xx错误代码重定向功能 支持重写(Rewrite)模块扩展 支持重新加载配置以及在线升级时无需中断正在处理的请求 支持网络监控 支持FLV和MP4流媒体传输 邮件服务 Nginx提供邮件代理服务也是其基本开发需求之一,主要包含以下特性: 支持IMPA/POP3代理服务功能 支持内部SMTP代理服务功能 --------------------------------------------------------------------------------------------- Nginx常用的功能模块 静态资源部署 Rewrite地址重写 正则表达式 反向代理 负载均衡 轮询、加权轮询、ip_hash、url_hash、fair Web缓存 环境部署 高可用的环境 用户认证模块... Nginx的核心组成 nginx二进制可执行文件 nginx.conf配置文件 error.log错误的日志记录 access.log访问日志记录
Nginx安装

环境准备;Nginx源码简单安装;yum安装;Nginx源码自定义安装;nginx卸载 =================================================================================== 环境准备 yum install -y gcc pcre pcre-devel zlib zlib-devel openssl openssl-devel -------------------------------------------------------------------- 通过Nginx源码简单安装 (1)进入官网查找需要下载版本的链接地址,然后使用wget命令进行下载 wget http://nginx.org/download/nginx-1.16.1.tar.gz (2)建议大家将下载的资源进行包管理 mkdir -p nginx/core mv nginx-1.16.1.tar.gz nginx/core (3)解压缩 tar -xzf nginx-1.16.1.tar.gz (4)进入资源文件中,发现configure ./configure (5)编译 make (6)安装 make install ------------------------------------------------------------------------------------- 通过yum安装 (1)安装yum-utils sudo yum install 1 -y yum-utils (2)添加yum源文件 vim /etc/yum.repos.d/nginx.repo [nginx-stable] name=nginx stable repo baseurl=http://nginx.org/packages/centos/$releasever/ $basearch/ gpgcheck=1 enabled=1 gpgkey=https://nginx.org/keys/nginx_signing.key module_hotfixes=true [nginx-mainline] name=nginx mainline repo baseurl=http://nginx.org/packages/mainline/centos/$re leasever/$basearch/ gpgcheck=1 enabled=0 gpgkey=https://nginx.org/keys/nginx_signing.key module_hotfixes=true (3)查看是否安装成功 yum 1 list | grep nginx (4)使用yum进行安装 yum install -y nginx (5)查看nginx的安装位置 whereis nginx 源码简单安装和yum安装的差异: ./nginx -V #可以看到yum安装相比简单安装增加了很多配置 ------------------------------------------------------------------------------------- 通过Nginx源码复杂安装(自定义安装) 其实安装方式和简单安装是一样的,只不过在执行configure脚本时,添加一些参数 ./configure --prefix=/usr/local/nginx \ --sbin-path=/usr/local/nginx/sbin/nginx \ --modules-path=/usr/local/nginx/modules \ --conf-path=/usr/local/nginx/conf/nginx.conf \ --error-log-path=/usr/local/nginx/logs/error.log \ --http-log-path=/usr/local/nginx/logs/access.log \ --pid-path=/usr/local/nginx/logs/nginx.pid \ --lock-path=/usr/local/nginx/logs/nginx.lock --prefix=PATH 指向Nginx的安装目录,默认值为/usr/local/nginx --sbin-path=PATH 指向(执行)程序文件(nginx)的路径,默认值为<prefix>/sbin/nginx --modules-path=PATH 指向Nginx动态模块安装目录,默认值为<prefix>/modules --conf-path=PATH 指向配置文件(nginx.conf)的路径,默认值为<prefix>/conf/nginx.conf --error-log-path=PATH 指向错误日志文件的路径,默认值为<prefix>/logs/error.log --http-log-path=PATH 指向访问日志文件的路径,默认值为<prefix>/logs/access.log --pid-path=PATH 指向Nginx启动后进行ID的文件路径,默认值为<prefix>/logs/nginx.pid --lock-path=PATH 指向Nginx锁文件的存放路径,默认值为<prefix>/logs/nginx.lock ------------------------------------------------------------------------------------- nginx卸载 步骤一:需要将nginx的进程关闭 ./nginx -s stop 步骤二:将安装的nginx进行删除 rm -rf /usr/local/nginx 步骤三:将安装包之前编译的环境清除掉 make clean

Nginx目录结构 conf:nginx所有配置文件目录 CGI(Common Gateway Interface)通用网关【接口】,主要解决的问题是从客户端发送一个请求和数据,服务端获取到请求和数据后可以调用CGI【程序】处理及相应结果给客户端的一种标准规范。 fastcgi.conf:fastcgi相关配置文件 fastcgi.conf.default:fastcgi.conf的备份文件 fastcgi_params:fastcgi的参数文件 fastcgi_params.default:fastcgi的参数备份文件 scgi_params:scgi的参数文件 scgi_params.default:scgi的参数备份文件 uwsgi_params:uwsgi的参数文件 uwsgi_params.default:uwsgi的参数备份文件 mime.types:记录的是HTTP协议中的Content-Type的值和文件后缀名的对应关系 mime.types.default:mime.types的备份文件 nginx.conf:这个是Nginx的核心配置文件,这个文件非常重要,也是我们即将要学习的重点 nginx.conf.default:nginx.conf的备份文件 koi-utf、koi-win、win-utf这三个文件都是与编码转换映射相关的配置文件,用来将一种编码转换成另一种编码 html:存放nginx自带的两个静态的html页面 50x.html:访问失败后的失败页面 index.html:成功访问的默认首页 logs:记录入门的文件,当nginx服务器启动后,这里面会有 access.log error.log 和nginx.pid三个文件出现。 sbin:是存放执行程序文件nginx nginx是用来控制Nginx的启动和停止等相关的命令。
Nginx服务器启停与版本升级(平滑升级)

Nginx服务器启停命令(Nginx服务的信号控制、Nginx的命令行控制) ================================================================================================= 方式一:Nginx服务的信号控制 kill -signal PID 信号 作用 TERM/INT 立即关闭整个服务 QUIT "优雅"地关闭整个服务 HUP 重读配置文件并使用服务对新配置项生效 USR1 重新打开日志文件,可以用来进行日志切割 USR2 平滑升级到最新版的nginx WINCH 所有子进程不在接收处理新连接,相当于给work进程发送QUIT指令 示例: kill -TERM PID / kill -TERM `cat /usr/local/nginx/logs/nginx.pid` 发送TERM/INT信号给master进程,会将Nginx服务立即关闭。 kill -INT PID / kill -INT `cat /usr/local/nginx/logs/nginx.pid` 发送TERM/INT信号给master进程,会将Nginx服务立即关闭。 kill -QUIT PID / kill -TERM `cat /usr/local/nginx/logs/nginx.pid` 发送QUIT信号给master进程,master进程会控制所有的work进程不再接收新的请求,等所有请求处理完后,在把进程都关闭掉。 kill -HUP PID / kill -TERM `cat /usr/local/nginx/logs/nginx.pid` 发送HUP信号给master进程,master进程会把控制旧的work进程不再接收新的请求,等处理完请求后将旧的work进程关闭掉,然后根据nginx的配置文件重新启动新的work进程 kill -USR1 PID / kill -TERM `cat /usr/local/nginx/logs/nginx.pid` 发送USR1信号给master进程,告诉Nginx重新开启日志文件 kill -USR2 PID / kill -USR2 `cat /usr/local/nginx/logs/nginx.pid` 发送USR2信号给master进程,告诉master进程要平滑升级,这个时候,会重新开启对应的master进程和work进程,整个系统中将会有两个master进程,并且新的master进程的PID会被记录在/usr/local/nginx/logs/nginx.pid 而之前的旧的master进程PID会被记录在/usr/local/nginx/logs/nginx.pid.oldbin 文件中,接着再次发送QUIT信号给旧的master进程,让其处理完请求后再进行关闭 kill -WINCH PID /kill -WINCH`cat /usr/local/nginx/logs/nginx.pid`发送WINCH信号给master进程,让master进程控制不让所有的work进程在接收新的请求了,请求处理完后关闭work进程。注意master进程不会被关闭掉 --------------------------------------------------------------------------------------------------- 方式二:Nginx的命令行控制 通过Nginx安装目录下的sbin下的可执行文件nginx来进行Nginx状态的控制,我们可以通过nginx -h 来查看都有哪些参数 -?和-h: 显示帮助信息 -v: 打印版本号信息并退出 -V: 打印版本号信息和配置信息并退出 -t: 测试nginx的配置文件语法是否正确并退出 -T: 测试nginx的配置文件语法是否正确并列出用到的配置文件信息然后退出 -q: 在配置测试期间禁止显示非错误消息 -s: signal信号,后面可以跟 : stop[快速关闭,类似于TERM/INT信号的作用] quit[优雅的关闭,类似于QUIT信号的作用] reopen[重新打开日志文件类似于USR1信号的作用] reload[类似于HUP信号的作用] -p:prefix, 指定Nginx的prefix路径,(默认为: /usr/local/nginx/) -c:filename, 指定Nginx的配置文件路径,(默认为: conf/nginx.conf) -g: 用来补充Nginx配置文件,向Nginx服务指定启动时应用全局的配置

Nginx服务器版本升级(平滑升级) 经测试:会同时启用新旧2个版本的nginx进程,在切换前,旧nginx占用监听的端口 需求:Nginx的版本最开始使用的是Nginx-1.14.2,由于服务升级,需要将Nginx的版本升级到Nginx-1.16.1,要求Nginx不能中断提供服务。 环境准备 (1)先准备两个版本的Nginx分别是 1.14.2和1.16.1 (2)使用Nginx源码安装的方式将1.14.2版本安装成功并正确访问 ./configure make && make install (3)将Nginx1.16.1进行参数配置和编译,不需要进行安装。 ./configure make ---------------------------------------------------------------------------------- 方案一:使用Nginx服务信号进行升级 第一步:将1.14.2版本的sbin目录下的nginx进行备份 cd /usr/local/nginx/sbin mv nginx nginxold 第二步:将Nginx1.16.1安装目录编译后的objs目录下的nginx文件,拷贝到原来/usr/local/nginx/sbin 目录下 cd ~/nginx/core/nginx-1.16.1/objs cp nginx /usr/local/nginx/sbin 第三步:发送信号USR2给Nginx的1.14.2版本对应的master进程 第四步:发送信号QUIT给Nginx的1.14.2版本对应的master进程 kill -QUIT `more /usr/local/logs/1 nginx.pid.oldbin` ---------------------------------------------------------------------------------- 方案二:使用Nginx安装目录的make命令完成升级 第一步:将1.14.2版本的sbin目录下的nginx进行备份 cd /usr/local/nginx/sbin mv nginx nginxold 第二步:将Nginx1.16.1安装目录编译后的objs目录下的nginx文件,拷贝到原来/usr/local/nginx/sbin 目录下 cd ~/nginx/core/nginx-1.16.1/objs cp nginx /usr/local/nginx/sbin 第三步:进入到安装目录,执行make upgrade 第四步:查看是否更新成功 ./nginx -v

Nginx自定义安装后配置成系统服务;Nginx命令配置到系统环境 ================================================================================= Nginx自定义安装后配置成系统服务 (1) 在/usr/lib/systemd/system 目录下添加nginx.service,内容如下: vim /usr/lib/systemd/1 system/nginx.service [Unit] Description=nginx web service Documentation=http://nginx.org/en/docs/ After=network.target [Service] Type=forking PIDFile=/usr/local/nginx/logs/nginx.pid ExecStartPre=/usr/local/nginx/sbin/nginx -t -c /usr/local/nginx/conf/nginx.conf ExecStart=/usr/local/nginx/sbin/nginx ExecReload=/usr/local/nginx/sbin/nginx -s reload ExecStop=/usr/local/nginx/sbin/nginx -s stop PrivateTmp=true [Install] WantedBy=default.target (2)添加完成后如果权限有问题需要进行权限设置 chmod 755 /usr/lib/systemd/system/nginx.service (3)使用系统命令来操作Nginx服务 启动: systemctl start nginx 停止: systemctl stop nginx 重启: systemctl restart nginx 重新加载配置文件: systemctl reload nginx 查看nginx状态: systemctl status nginx 开机启动: systemctl enable nginx ------------------------------------------------------------------------ Nginx命令配置到系统环境 (1)修改/etc/profile 文件 vim /etc/profile 在最后一行添加 export PATH=$PATH:/usr/local/nginx/sbin (2)使之立即生效 source /etc/profile (3)执行nginx命令 nginx -V
【推荐】国内首个AI IDE,深度理解中文开发场景,立即下载体验Trae
【推荐】编程新体验,更懂你的AI,立即体验豆包MarsCode编程助手
【推荐】抖音旗下AI助手豆包,你的智能百科全书,全免费不限次数
【推荐】轻量又高性能的 SSH 工具 IShell:AI 加持,快人一步
· 阿里最新开源QwQ-32B,效果媲美deepseek-r1满血版,部署成本又又又降低了!
· 单线程的Redis速度为什么快?
· SQL Server 2025 AI相关能力初探
· AI编程工具终极对决:字节Trae VS Cursor,谁才是开发者新宠?
· 展开说说关于C#中ORM框架的用法!