Nginx 入门介绍

各位同学大家好,非常高兴能够与大家相处在一个互联网平台,从今天开始,给大家讲解 Nginx 高性能 Web 服务器。我是 ItGabbay ,目前在一家互联网公司从事 Java 架构师以及运维工作。

Nginx 高性能 Web 服务器本套课程的内容还是相当比较多的,接下来介绍本套课程所学的内容。

Nginx 入门介绍

Nginx 简介

我相信大家在以前也接触过 Nginx ,如有没有接触过 Nginx 的同学也听说过 Nginx 吧,如果没听过 Nginx ,那也应该听说过 Apache 吧,连 Apache 都没听说过的话,我也不知道该说啥了,好废话少说。

其实 Apache 就是一个 Web 服务器软件,那么什么是 Web 服务器呢,通常我们简称 WWW 服务器。比如说我们的一般上网,通过浏览器访问某个网站等这些服务我们一个把它称为 Web 服务。这个大家应该知道吧。Web 服务器主要提供网上信息浏览服务。WWW 是 Internet 的多媒体信息查询工具,是 Internet 上近年才发展起来的服务,也是发展最快和目前用的最广泛的服务,而且覆盖整个全球互联网。正是因为有了 WWW 工具,才使得仅年来 Internet 迅速发展,且用户数量飞速增长。

那么 WWW 服务器与 Nginx Web 服务器有什么关系呢,可以这么理解,不管是 Nginx 服务器还是 Apache 服务器,它们都是用来发布 WWW 网页的,所有我们把他们统称为 Web 服务器。我们了解了 Nginx 和 Apache 都是用来发布的软件之后,接着我们来深入的学习 Nginx 服务器。

Nginx 是一个高性能的 HTTP 和反向代理服务器,也是一个 IMAP/POP3/SMTP 代理服务器。Nginx 是由伊戈尔·赛索耶夫为俄罗斯访问量第二的 Rambler.ru 站点(俄文:Рамблер )开发的,第一个公开版本 0.1.0 ,是发布于 2004年 10 月 4 日,其将源代码类似 BSD 许可证的形式发布,因它的稳定性、丰富的功能集、示例配置文件和低系统资源的消耗而闻名。

它已经在众多流量很大的俄罗斯网站上使用了很长时间,这些网站包括 Yandex 、Mail.Ru、VKontakte 以及 Rambler。根据 Netcraft 统计,在 2012 年 8 月份,世界上最繁忙的网站中 11.48 % 使用 Nginx 作为服务器或者代理服务器。目前互联网主流公司都在使用 Nginx 服务器,如 360、百度、新浪、腾讯、阿里,以及一些小型的互联网公司。可以这么说,目前只要使用 Linux 系统作为服务器的中国互联网企业,至少有 70 % 的公司都在使用 Nginx 作为自己的 Web 服务器。

那么 Nginx 服务器为什么这么的火呢?Nginx 占用内存少,并发能力非常的强,尤其是 Nginx 处理静态页面的性能非常的强。在我们大部分网站中,包括动态页面和静态页面,动态页面我们可以用后端的一些语言进行处理,比如 Java 、PHP。而前端的静态页面我们可以通过 Nginx 做一个反向代理进行转发。Nginx 在中国乃至整个世界使用量是非常的高。

之前我所在的公司都用到了 Nginx,特别是上量级的服务,都使用 Nginx 来做反向代理转发,一般像搭建 Nocas等服务我们可以使用 Apache 服务器。可以使用 yum 直接进行自动简单安装。

Nginx 有内核和模块组成,其中,内核的设计非常微小和简洁,完成的工作也非常简单,仅仅通过查找配置文件将客户端请求映射到一个 location block (location 是 Nginx 配置中的一个指令,用于 URL 匹配),而在这个 location 中所配置的每个指令将会启动不同的模块去完成相应的工作。

Nginx 相对于 Apache 优点:

高并发响应性能非常的好。曾经官方通过简单的测试,Nginx 处理静态文件并发达到 5 w/s 请求,通过这个数字来看,一天请求的 pv 是多少呢,5w x 3.6k 的 pv ,是不是上亿级别的每秒。通过这个数据来看,Nginx 处理数据是性能是非常的好。

反向代理性能非常强。这是 Nginx 的一个非常牛逼的一个功能。大家都知道,最前端就是一个 Nginx,特别是小型的公司,其前端就是使用一个 Nginx + keepalived 搭建高可用。如果是访问量稍微大一点的可能会 Nginx + keepalived + 搭建

内存和 CPU 占用率低。大概是为 Apache 的 1/5 - 1/10 这样,通过这个数据来看,使用 Nginx 搭建服务器,节省了许多的开销。一个 Nginx 进程可能就占用 几十 M 的内存。

对后端服务有健康检查功能。使用 Nginx 可以对我们的后端语言有很好的检查功能,如 Java、PHP 等后端语言有很好的检查功能,还可以自动进行剔除功能,假设我们后端某台服务器 8080 端口宕机了,这个时候 Nginx 内部有个检查机制,通过这个检查机制,在多少秒之内检查多少次,如何这个端口返回的数据失败或者超时,都会把这个后端服务器零时踢掉,等待这个服务器在下个检查时间恢复之后,在把这个服务器加入进来。所有这样可以做一个动态的进行健康检查。

支持 PHP cgi 方式 和 fastcgi 方式。Apache 支持 PHP cgi 方式 和 fastcgi 方式,同样 Nginx 也支持 PHP cgi 方式 和 fastcgi 方式。而性能如何主要是取决于程序、Nginx 参数的优化等等,如果这些性能优化好了,性能也是非常的强大的。

配置代码简洁且容易上手。使用过 Nginx 的同学都知道,打开 nginx.conf 文件,发现 nginx.conf 中的代码非常的简洁,只要我们初学者了解相关的一些内容,默认启动 Nginx 就可以访问了,就这么个意思。

总结

大体的根同学们讲了一些 Nginx 是什么。让同学们的脑海中对 Nginx 有一个整体的映像,为后期的学习埋下伏笔。Nginx 就是一款 Web 服务器软件,可以用来发布我们的网站,可以做反向代理等等。

感谢大家的阅读,如若有不足,谢谢指出,共同学习,共同成就程序的梦。想学习更多的 Nginx 知识,关注我吧,期待下一期更新吧。

本作品采用《CC 协议》,转载必须注明作者和本文链接
讨论数量: 0
(= ̄ω ̄=)··· 暂无内容!

讨论应以学习和精进为目的。请勿发布不友善或者负能量的内容,与人为善,比聪明更重要!
未填写
文章
1
粉丝
0
喜欢
1
收藏
0
排名:3587
访问:41
私信
所有博文
社区赞助商