链接转换短网址,网站建设和seo,网站建设联系电话,百度搜索引擎链接文章目录 介绍Nginx的优点(1)速度更快、并发更高(2)配置简单#xff0c;扩展性强(3)高可靠性(4)热部署(5)成本低、BSD许可证 Nginx的功能特性及常用功能基本HTTP服务高级HTTP服务邮件服务Nginx常用的功能模块 Nginx环境准备docker安装乌班图安装Nginx目录结构分析方式一:Nginx… 文章目录 介绍Nginx的优点(1)速度更快、并发更高(2)配置简单扩展性强(3)高可靠性(4)热部署(5)成本低、BSD许可证 Nginx的功能特性及常用功能基本HTTP服务高级HTTP服务邮件服务Nginx常用的功能模块 Nginx环境准备docker安装乌班图安装Nginx目录结构分析方式一:Nginx服务的信号控制方式二:Nginx的命令行控制 Nginx服务器版本升级和新增模块 介绍
-Nginx“engine x”一个具有高性能的【HTTP】和【反向代理】的【WEB服务器】同时也是一个【POP3/SMTP/IMAP代理服务器】
名词简介 POP3/SMTP/IMAP
POP3(Post Offic Protocol 3)邮局协议的第三个版本SMTP(Simple Mail Transfer Protocol)简单邮件传输协议IMAP(Internet Mail Access Protocol)交互式邮件存取协议
Nginx的优点
(1)速度更快、并发更高
单次请求或者高并发请求的环境下Nginx都会比其他Web服务器响应的速度更快。一方面在正常情况下单次请求会得到更快的响应另一方面在高峰期(如有数以万计的并发请求)Nginx比其他Web服务器更快的响应请求。Nginx之所以有这么高的并发处理能力和这么好的性能原因在于Nginx采用了多进程和I/O多路复用(epoll)的底层实现。
(2)配置简单扩展性强
Nginx的设计极具扩展性它本身就是由很多模块组成这些模块的使用可以通过配置文件的配置来添加。这些模块有官方提供的也有第三方提供的模块如果需要完全可以开发服务自己业务特性的定制模块。
(3)高可靠性
Nginx采用的是多进程模式运行其中有一个master主进程和N多个worker进程worker进程的数量我们可以手动设置每个worker进程之间都是相互独立提供服务并且master主进程可以在某一个worker进程出错时快速去拉起新的worker进程提供服务。
(4)热部署
现在互联网项目都要求以7*24小时进行服务的提供针对于这一要求Nginx也提供了热部署功能即可以在Nginx不停止的情况下对Nginx进行文件升级、更新配置和更换日志文件等功能。
(5)成本低、BSD许可证
Nginx本身是开源的我们不仅可以免费的将Nginx应用在商业领域而且还可以在项目中直接修改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环境准备
docker安装
制作挂载卷 mkdir -p /mount/docker/nginx/html mkdir -p /mount/docker/nginx/logs mkdir -p /mount/docker/nginx/conf/ 运行容器 docker run -d -p 80:80 --name nginx nginx拷贝配置文件
docker cp nginx:/etc/nginx/nginx.conf /mount/docker/nginx/conf/nginx.conf
docker cp nginx:/etc/nginx/conf.d /mount/docker/nginx/conf.d
docker cp nginx:/usr/share/nginx/html /mount/docker/nginx启动容器
docker run \
-p 80:80 \
--name nginx \
-v /mount/docker/nginx/conf/nginx.conf:/etc/nginx/nginx.conf \
-v /mount/docker/nginx/conf.d:/etc/nginx/conf.d \
-v /mount/docker/nginx/logs:/var/log/nginx \
-v /mount/docker/nginx/html:/usr/share/nginx/html \
-d nginx:latest乌班图安装
#安装
apt-get install nginx
# 查看版本
nginx -v
service nginx startNginx目录结构分析
在使用Nginx之前我们先对安装好的Nginx目录文件进行一个分析在这块给大家介绍一个工具tree通过tree我们可以很方面的去查看centos系统上的文件目录结构当然如果想使用tree工具就得先通过yum install -y tree来进行安装安装成功后可以通过执行tree /usr/local/nginx(tree后面跟的是Nginx的安装目录)获取的结果如下 conf:nginx所有配置文件目录
fastcgi.conf:fastcgi相关配置文件fastcgi.conf.default:fastcgi.conf的备份文件fastcgi_params:fastcgi的参数文件fastcgi_params.default:fastcgi的参数备份文件scgi_params:scgi的参数文件scgi_params.defaultscgi的参数备份文件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启动后我们通过ps -ef | grep nginx命令可以查看到如下内容
从上图中可以看到,Nginx后台进程中包含一个master进程和多个worker进程master进程主要用来管理worker进程包含接收外界的信息并将接收到的信号发送给各个worker进程监控worker进程的状态当worker进程出现异常退出后会自动重新启动新的worker进程。而worker进程则是专门用来处理用户请求的各个worker进程之间是平等的并且相互独立处理请求的机会也是一样的。nginx的进程模型我们可以通过下图来说明下 我们现在作为管理员只需要通过给master进程发送信号就可以来控制Nginx,这个时候我们需要有两个前提条件一个是要操作的master进程一个是信号。
1要想操作Nginx的master进程就需要获取到master进程的进程号ID。获取方式简单介绍两个
方式一通过ps -ef | grep nginx
方式二在讲解nginx的./configure的配置参数的时候有一个参数是--pid-pathPATH默认是/usr/local/nginx/logs/nginx.pid,所以可以通过查看该文件来获取nginx的master进程ID.
2信号
信号作用TERM/INT立即关闭整个服务QUIT优雅地关闭整个服务HUP重读配置文件并使用服务对新配置项生效USR1重新打开日志文件可以用来进行日志切割USR2平滑升级到最新版的nginxWINCH所有子进程不在接收处理新连接相当于给work进程发送QUIT指令
调用命令为kill -signal PID
signal:即为信号PID即为获取到的master线程ID
发送TERM/INT信号给master进程会将Nginx服务立即关闭。
kill -TERM PID / kill -TERM cat /usr/local/nginx/logs/nginx.pid
kill -INT PID / kill -INT cat /usr/local/nginx/logs/nginx.pid发送QUIT信号给master进程master进程会控制所有的work进程不再接收新的请求等所有请求处理完后在把进程都关闭掉。
kill -QUIT PID / kill -TERM cat /usr/local/nginx/logs/nginx.pid发送HUP信号给master进程master进程会把控制旧的work进程不再接收新的请求等处理完请求后将旧的work进程关闭掉然后根据nginx的配置文件重新启动新的work进程
kill -HUP PID / kill -TERM cat /usr/local/nginx/logs/nginx.pid发送USR1信号给master进程告诉Nginx重新开启日志文件
kill -USR1 PID / kill -TERM 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 -USR2 PID / kill -USR2 cat /usr/local/nginx/logs/nginx.pidkill -QUIT PID / kill -QUIT cat /usr/local/nginx/logs/nginx.pid.oldbin发送WINCH信号给master进程,让master进程控制不让所有的work进程在接收新的请求了请求处理完后关闭work进程。注意master进程不会被关闭掉
kill -WINCH PID /kill -WINCHcat /usr/local/nginx/logs/nginx.pid方式二: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服务器版本升级和新增模块