nginx是什么并详细说明工作原理(nginx 配置详解是什么)
本文目录
nginx 配置详解是什么
Nginx是lgor Sysoev为俄罗斯访问量第二的rambler***站点设计开发的。从2004年发布至今,凭借开源的力量,已经接近成熟与完善。
Nginx功能丰富,可作为HTTP服务器,也可作为反向代理服务器,邮件服务器。支持FastCGI、SSL、Virtual Host、URL Rewrite、Gzip等功能。并且支持很多第三方的模块扩展。
Nginx的稳定性、功能集、示例配置文件和低系统资源的消耗让他后来居上,在全球活跃的网站中有*****%的使用比率,大约为2220万个网站。
1、全局块:配置影响nginx全局的指令。一般有运行nginx服务器的用户组,nginx进程pid存放路径,日志存放路径,配置文件引入,允许生成worker process数等。
2、events块:配置影响nginx服务器或与用户的网络连接。有每个进程的最大连接数,选取哪种事件驱动模型处理连接请求,是否允许同时接受多个网路连接,开启多个网络连接序列化等。
***隐藏网址***
***隐藏网址***
5、location块:配置请求的路由,以及各种页面的处理情况。
Nginx常用功能。
1、Http代理,反向代理:作为web服务器最常用的功能之一,尤其是反向代理。
Nginx在做反向代理时,提供性能稳定,并且能够提供配置灵活的转发功能。Nginx可以根据不同的正则匹配,采取不同的转发策略,比如图片文件结尾的走文件服务器,动态页面走web服务器,只要你正则写的没问题,又有相对应的服务器解决方案。
。并且Nginx对返回结果进行错误页跳转,异常判断等。如果被分发的服务器存在异常,他可以将请求重新转发给另外一台服务器,然后自动去除异常服务器。
2、负载均衡
Nginx提供的负载均衡策略有2种:内置策略和扩展策略。内置策略为轮询,加权轮询,Ip hash。扩展策略,就天马行空,只有你想不到的没有他做不到的啦,你可以参照所有的负载均衡算法,给他一一找出来做下实现。
nginx是什么意思
意思是一种服务器。
Nginx (engine x)是一个高性能的HTTP和反向代理web服务器,同时也提供了IMAP/POP3/SMTP服务。Nginx是由伊戈尔·赛索耶夫为俄罗斯访问量第二的Rambler***站点(俄文:Рамблер)开发的,第一个公开版本*****发布于2004年10月4日。
其将源代码以类BSD许可证的形式发布,因它的稳定性、丰富的功能集、示例配置文件和低系统资源的消耗而闻名。2011年6月1日,nginx *****发布。
介绍
Nginx是一款轻量级的Web服务器/反向代理服务器及电子邮件(IMAP/POP3)代理服务器,在BSD-like协议下发行。
其特点是占有内存少,并发能力强,事实上nginx的并发能力确实在同类型的网页服务器中表现较好,中国大陆使用nginx网站用户有:百度、京东、新浪、网易、腾讯、淘宝等。
Nginx可以在大多数UnixLinux OS上编译运行,并有Windows移植版。Nginx的*****稳定版已经于2013年4月24日发布,一般情况下,对于新建站点,建议使用最新稳定版作为生产版本,已有站点的升级急迫性不高。
Nginx:基本原理篇
Nginx的IO通常使用epoll,epoll函数使用了I/O复用模型。与I/O阻塞模型比较,I/O复用模型的优势在于可以同时等待多个(而不只是一个)套接字描述符就绪。Nginx的epoll工作流程如下:
2 . 当一个client连接到来时,所有accept的work进程都会受到通知,但只有一个进程可以accept成功,其它的则会accept失败,Nginx提供了一把共享锁accept_mutex来保证同一时刻只有一个work进程在accept连接,从而解决惊群问题
惊群现象:惊群效应就是当一个fd的事件被触发时,所有等待这个fd的线程或进程都被唤醒。一般都是socket的accept()会导致惊群,很多个进程都block在server socket的accept(),一但有客户端进来,所有进程的accept()都会返回,但是只有一个进程会读到数据,就是惊群。
Nginx 采用accept-mutex来解决惊群问题:当一个请求到达的时候,只有竞争到锁的worker进程才会惊醒处理请求,其他进程会继续等待,结合 timer_solution 配置的最大的超时时间继续尝试获取accept-mutex
I/O 复用接口有select 和 epoll 两种模型,首先介绍一下这两种模型的执行方式:
由于网络响应时间的延迟使得大量TCP连接处于非活跃状态,但调用select()还是会对 所有的socket进行一次线性扫描 ,会
调用一次epoll_wait()获得就绪文件描述符时,返回的并不是实际的描述符,而是一个代表就绪描述符数量的值,拿到这些值去epoll指定的一个数组中依次取得相应数量的文件描述符即可,这里使用内存映射(mmap)技术, 避免了复制大量文件描述符带来的开销。
在select/poll时代,服务器进程每次都把这100万个连接告诉操作系统(从用户态复制句柄数据结构到内核态),让操作系统内核去查询这些套接字上是否有事件发生,轮询完后,再将句柄数据复制到用户态,让服务器应用程序轮询处理已发生的网络事件,这一过程资源消耗较大,因此,select/poll一般只能处理几千的并发连接。
epoll的设计和实现与select完全不同。epoll通过在Linux内核中申请一个简易的文件系统,把原先的select/poll调用分成了3个部分:
调用epoll_create()建立一个epoll对象(在epoll文件系统中为这个句柄对象分配资源)
调用epoll_ctl向epoll对象中添加这100万个连接的套接字
调用epoll_wait收集发生的事件的连接
只需要在进程启动时建立一个epoll对象,然后在需要的时候向这个epoll对象中添加或者删除连接。同时,epoll_wait的效率也非常高,因为调用epoll_wait时,并没有一股脑的向操作系统复制这100万个连接的句柄数据,内核也不需要去遍历全部的连接。
apache 采用的select模型,nginx采用epoll模型,nginx 处理请求是异步非阻塞的,而apache则是阻塞型的,在高并发下nginx 能保持低资源低消耗高性能。在Apache+PHP(prefork)模式下,如果PHP处理慢或者前端压力很大的情况下,很容易出现Apache进程数飙升,从而拒绝服务的现象。
Nginx 常用功能
***隐藏网址***
nginx是什么 nginx是什么
nginx是一款使用c语言开发的高性能的HTTP和反向代理web服务器,具有IMAP/POP3/SMTP的服务。Nginx是异步框架的网页服务器,能用作反向代理、负载平衡器和 HTTP 缓存。
nginx,是俄罗斯的程序设计师伊戈尔·赛索耶夫所开发的,nginx 是免费的开源软件,根据类 BSD 许可证的条款发布。根据官方测试,nginx能够支撑5万并发链接,并且cpu、内存等资源消耗非常低,运行非常稳定。
nginx,它的特点是占有内存少,并发能力强。它的并发能力在同类型的网页服务器中表现也是较好的。在中国大陆,使用nginx网站用户有:百度、腾讯、淘宝、京东、新浪、网易等。
Nginx的功能与特性
Nginx在过去的10年里,作为Web服务器行业里的新生代迅速崛起。Nginx由俄罗斯工程师Igor Sysoev编写,2004年10月4日发布了第一个公众版本:*****一直占据Web服务器行业的第一,但自2008年开始,它的市场份额在潜移默化的转移到Nginx身上。直至今日,据Netcraft的统计显示,全世界排名前100万的网站中有超过27%的网站在使用Nginx作为Web服务器。Nginx迅速在一向稳定的Web服务器行业崛起并站稳跟脚.
1 、静态HTTP服务器
Nginx是一个HTTP服务器,可以将服务器上的静态文件(如HTML、图片)通过HTTP协议展现给客户端。
2、反向代理服务器
客户端请求Nginx,Nginx请求应用服务器,然后将结果返回给客户端,此时Nginx就是反向代理服务器。
3、负载均衡
当网站访问量非常大,将同一个应用部署在多台服务器上,将大量用户的请求分配给多台机器处理。同时带来的好处是,其中一台服务器万一挂了,只要还有其他服务器正常运行,就不会影响用户使用。Nginx可以通过反向代理来实现负载均衡,并能使用3种自带策略及2种第三方策略。
(1)RR(默认,每个请求按时间顺序逐一分配到不同的后端服务器)
(2)权重(指定轮询几率,weight和访问比率成正比,用于后端服务器性能不均的情况)
(3)ip-hash(以上配置会将请求轮询分配到应用服务器,也就是一个客户端的多次请求,有可能会由多台不同的服务器处理(若存在登录session时则需要重复登录)。ip-hash根据客户端ip地址的hash值将请求分配给固定的某一个服务器处理)
(4)fair(第三方 按后端服务器的响应时间来分配请求,响应时间短的优先分配)
(5)url_hash(第三方 按访问url的hash结果来分配请求,使每个url定向到同一个后端服务器,后端服务器为缓存时比较有效。 在upstream中加入hash语句,server语句中不能写入weight等其他的参数,hash_method是使用的hash算法)
4、虚拟主机
有的网站访问量大,需要负载均衡。有的网站,由于访问量太小,需要节省成本,将多个网站部署在同一台服务器上。例如将*****和*****两个网站部署在同一台服务器上,两个域名解析到同一个IP地址,但是用户通过两个域名却可以打开两个完全不同的网站,互相不影响,就像访问两个服务器一样,所以叫两个虚拟主机。
在服务器8080和8081分别开了一个应用,客户端通过不同的域名访问,根据server_name可以反向代理到对应的应用服务器。虚拟主机的原理是通过HTTP请求头中的Host是否匹配server_name来实现的,另外,server_name配置还可以过滤有人恶意将某些域名指向你的主机服务器。
1、IO多路复用epoll
2、轻量级
3、CPU亲和(affinity)
4、sendfile
“nginx”是什么意思
Nginx (engine x) 是一个高性能的HTTP和反向代理web服务器,同时也提供了IMAP/POP3/SMTP服务。Nginx是由伊戈尔·赛索耶夫为俄罗斯访问量第二的Rambler***站点(俄文:Рамблер)开发的,第一个公开版本*****发布于2004年10月4日。
其将源代码以类BSD许可证的形式发布,因它的稳定性、丰富的功能集、简单的配置文件和低系统资源的消耗而闻名。2011年6月1日,nginx *****发布。
反向代理的优势:
1、加快了对内部服务器的访问速度
在内部服务器前放置两台反向代理服务器,分别连接到教育网和公网,这样公网用户就可以直接通过公网线路访问学校服务器,从而避开了公网和教育网之间拥挤的链路。同时反向代理服务器的缓存功能也加快了用户的访问速度。
2、节约了有限的IP资源
校园网内部服务器除使用教育网地址外,也会采用公网的IP地址对外提供服务,公网分配的IP地址数目是有限的,如果每个服务器有分配-个公网地址,那是不可能的,通过反向代理技术很好地解决了IP地址不足的问题。
本文相关文章:
apache和php配置(apache配置文件中怎么配置php)
2026年4月23日 04:00
shiro框架配置文件(shiro框架 配置文件log4j.properties shiro在哪)
2026年4月21日 21:00
修改nginx镜像配置(如何通过java代码来修改nginx中的配置)
2026年4月16日 23:20
windows安装jdk(Windows系统下安装JDK,需要配置哪些系统变量)
2026年4月5日 12:00
android开发环境配置(如何配置android开发环境)
2026年3月30日 21:20
pcre是什么软件(如何在Linux系统中安装配置FastDFS软件)
2026年3月30日 16:00
springboot启动原理总结(springboot自动配置原理)
2026年3月30日 05:00
更多文章:
powerful woman(关于Oprah Winfrey)
2026年4月28日 20:40
美国新冠疫情最新消息今天新增(美国新冠疫情确诊人数有增加吗)
2026年4月28日 20:00
asp财务上代表什么意思(ASP在财务中是什么东西的简写中文名称和英文全称是什么)
2026年4月28日 19:40
structure动词词性的用法(翻译:reboot system now.这句什么意思)
2026年4月28日 19:20





