关于Nginx的一些你不得不知道的内容(基本介绍),内容比较多建议收藏哦 爱被打了一巴掌 2022-10-12 00:47 73阅读 0赞 因为Nginx在我们项目中的地位是越来越重要了,所以最近话时间整理了下Nginx的内容了,希望对各位小伙伴有帮助哦! ![在这里插入图片描述][resize_m_lfit_w_962_pic_center] # Nginx基本介绍 # 发音:Engine X 源码:https://github.com/nginx/nginx ## 1. 1. Nginx诞生历史 ## ### 1. 1. 1.感受一下Nginx的地位 ### 从1995年以来的市场占有率变化,可以看到最近几年Nginx已经超过Apache成 为 Web Server 霸主。 https://news.netcraft.com/archives/category/web-server-survey/ ![在这里插入图片描述][watermark_type_ZmFuZ3poZW5naGVpdGk_shadow_10_text_aHR0cHM6Ly9ibG9nLmNzZG4ubmV0L3FxXzM4NTI2NTcz_size_16_color_FFFFFF_t_70] 截止2020年12月,全球排名前1000的网站, 46%在用Nginx。Nginx的诞生和蓬勃发展,可以说是顺应了互联网时代的历史潮流。 ### 1.1.2.什么是C10K问题 ### 我们以中国的互联网发展历史为例,来感受一下互联网环境和趋势的变化: 1994年,北京接入互联网,门户和搜索大行其道,代表公司:网易、新浪、搜狐 百度。 2000年,岀现互联网泡沫,社交电商游戏风头正盛,代表公司:腾讯QQ、新浪博 2009年,3G牌照发布;2013年,4G牌照发布,智能手机普及率越来越高,中国全面进入移动互联网时代,代表公司:微信、微博、小米、滴滴、美团、饿了么、字节 跳动。20多年的时间里面,网络对于生活的渗透越来越全面,中国以及全球网民的数量越 来越多,计算机的计算效率越来越高、存储空间越来越大、网速越来越快、体积越来越 小。 也就是在2000年以后,互联网用户数量持续增加,网站的活跃用户也大大增加,如 何支撑上万个用户同时访问成了一个突出的问题。Dan Kegel发表了著名的C10K问题 的论文,也就是单机1万个并发连接的问题(Concurrency 10K) o http://www.kegel.com/c1 Ok.html 在这里面,Dan说升级硬件代价太大了,必须从软件设计的层面来解决。 在这样的时代背景中,在2000年前后的节点,Nginx (Engine X)诞生了。 https://www.nginx.com/people/igor-sysoev/ ### 1. 1. 3. Nginx 的诞生 ### 官网:http://nginx.org 2000年左右,时年42岁的俄罗斯系统管理员IgorSysoev开始启动Nginx项目。 2002年十月Sysoev发布了第一段公共简码,它是用C语言编写的。2004年Nginx 开源了。 Nginx轻松地解决了 C10K的问题,单机性能可以达到5W左右的并发,慢慢地流 行起来。 2011年,Igor Sysoev成立了商业公司,12年开始为企业提供商业支持,13年发 布了商业版本的Nginx Pluso我们一般说的Nginx版本指的是开源的版本,域名是 nginx.org。商业版本的 Nginx 域名是 nginx.com。 在2019年5月,美国公司F5 Networks以6.7亿美元的价格收购了 Nginx公司。 有的同学可能有所耳闻,F5是一种硬件负载均衡器,价格昂贵,动辄几十万上百万,很 多银行在用。 19年12月Nginx之父俄罗斯程序员Igor Sysoev被警方带走,他的老东家 Rambler集团起诉了他,声称其拥有NginxWeb服务器代码的完全所有权。主要争议点 就在于,Nginx是Sysoev在Rambler上班的时候开发的,所以是属于公司的。当然后 面因证据不足被释放了。 ## 1.2.Nginx与其他Web服务器对比 ## Nginx是一个轻量级的HTTP服务器(HTTP Server) o当然除了 HTTP, Nginx 也支持SMTP、POP3和IMAP协议。还可以通过模块支持TCP。 和 Apache (全名 Apache HTTP Server Project , https://httpd.apache.org/) 一样,它们都是用来负责处理和响应用户请求的。Apache在零几年的时候非常流行, LAMP (Linux+Apache+MySQL+PHP)中的 A就是Apacheo Nginx和Apache的最大的区别就是Nginx能支持更大的并发量。 **HTTP Server和Tomcat有什么区别?** **注意**,Tomcat是Application Server。一般我们说的应用服务器(Application Server)是用来存放和运行系统程序的服务器,负责处理程序中的业务逻辑,如Tomcat、 Weblogic、Jboss (现在大多数应用服务器也包含了 web服务器的功能)。 HTTP服务器一般是用来访问静态的资源,而应用服务器可以动态生成资源内容,比如 Java 的 Servleto Nginx也可以通过模块开发来提供应用功能,Tomcat也可以直接提供HTTP服务, 通常用在内网和不需要流控等小型服务的场景(小型的应用服务器,不追求性能的业务, 用不到Nginx)因为HTTP服务器跑在应用服务器的前面,所以也叫做代理服务器。 一般来说HTTP服务器和应用服务器是一起使用的。比如运行多个Tomcat,通过 Nginx实现**负载均衡**。或者把静态资源放在Nginx,动态资源放在Tomcat,实现**动静分离**。 [resize_m_lfit_w_962_pic_center]: /images/20221005/04ffa61f6d564ae5911c825fa66949a2.png [watermark_type_ZmFuZ3poZW5naGVpdGk_shadow_10_text_aHR0cHM6Ly9ibG9nLmNzZG4ubmV0L3FxXzM4NTI2NTcz_size_16_color_FFFFFF_t_70]: /images/20221005/3875a295eff540689d44cb931c3198a8.png
还没有评论,来说两句吧...