Nginx 其实就是一款轻量级的 Web 服务器、反向代理服务器,由于它的内存占用少,启动极快,高并发能力强,在互联网项目中广泛应用。

那么你可能会问了:“不是说 Nginx 吗?怎么又扯出来一个 Web 服务器呢?啥是服务器?”。别着急,在学习 Nginx 之前你还真得知道什么是服务器这个概念,下面我们先来看下到底啥是服务器。

啥是服务器

WEB服务器

我们上面唠叨了一下什么是服务器。下面我们说一下啥是 Web 服务器,在上面我们也说了 Nginx 其实就是一个 轻量级的 Web 服务器,那么什么是 Web 服务器呢?我们平时可以打开浏览器访问微博的网站,获取各种娱乐圈各种劲爆消息。这个看似简单的行为,背后有隐藏了那些细节呢?

哈哈,当然了,一个成熟的 Web 服务器肯定还有其他各种各样的功能,但是原理都是一样。所以,一定要淡定,学会 Web 服务器并没有想象中的那么困难。

WEB服务器的分类

其实,现在的市面上面有很多类似于 Nginx 的 Web 服务器,如下图:

 几款服务器比较

从这两张图中可以看到,Nginx 开发者数量已经明显的超过了其他 Web Server 开发者数量,独占鳌头。在 Web Server 市场使用率中,Nginx 的占有率一直在稳步的上升,超过了 IIS,与 Apache 的差距越来越小。所以,使用和学习 Nginx 已经成为每一个后端工程师必备的技能了。好了,铺垫了这么多,下面我们正式来看下 Nginx 倒底是个什么东西。

Nginx简介

Nginx是由战斗民族的一位名叫 Igor Sysoev 的程序猿开发的,开源、高性能的 HTTP 服务器和反向代理服务器,也可以作为一个 IMAP/POP3 代理服务器。也就是说,Nginx不仅可以托管网站,进行HTTP服务处理,还可以作为反向代理服务器。Nginx 出现的初衷是为了解决著名的 C10K 问题而出现的。和传统的 Web Server 不一样,Nginx 使用了异步事件处理机制架构。这种架构可以轻松高效地处理大量的请求,并且非常的节省内存。高性能是Nginx最大的优点。

啥?不知道什么是C10K问题,我严重怀疑你是从外星球来的,来,看这里。不知道什么是异步事件处理机制?没关系,我会在后面的小节中分析的,包学会。

为什么选择Nginx

如果没有亲身体验过这种痛苦,你是无法理解的这是多么痛的领悟。

Nginx能干啥

百度网盘面试题资源分享链接:https://pan.baidu.com/s/1XDWqO3iUK2ZC1Uo1PBwFfg

提取码:urtq

整理了一些资料,包括但不限于:分布式架构、高可扩展、高性能、高并发、服务器性能调优、TP6,laravel,YII2,Redis,Swoole、Swoft、Kafka、Mysql优化、shell脚本、Docker、微服务、Nginx等多个知识点高级进阶干货获取点击链接加入群聊【swoole学习2群】:

正在跳转

几个点认识Nginx服务器的更多相关文章

  1. Nginx 服务器 之Nginx与tomcat实现负载均衡

      本文讲解我们如何使用Nginx做反向带服务器,实现nginx与tomcat服务器集群做负载均衡. 一.nginx与tomcat实现负载均衡 1.在/usr/local/ngnix/conf  创建 ...

  2. Nginx服务器 之反向代理与负载均衡

    一.反向代理 正向代理: 客户端要获取的资源就在服务器上,客户端请求的资源路径就是最终响应资源的服务器路径,这就是正向代理.正向代理的特点:就是我们明确知道要访问哪个网站地址. 反向代理: 客户端想获 ...

  3. 把域名绑定到某个项目,以nginx服务器为例

    一:登陆域名服务器平台,把域名解析到项目对应的IP上面. 二:配置nginx服务器 1./etc/nginx/conf.d/ 在服务器该目录下,添加.conf文件,如命名为:www.demo.com. ...

  4. 在阿里云服务器(ECS)上从零开始搭建nginx服务器

    本文介绍了如何在阿里云服务器上从零开始搭建nginx服务器.阿里云服务器(ECS)相信大家都不陌生,感兴趣的同学可以到http://www.aliyun.com/product/ecs去购买,或到体验 ...

  5. nginx入门篇----nginx服务器基础配置

    1.nginx.conf文件结构...                         #全局块  events{  ...  }  http                      #http块{ ...

  6. --with-http_realip_module选项(后台Nginx服务器记录原始客户端的IP地址 )

    转自:http://blog.itpub.net/27043155/viewspace-734234/ 通过这个模块允许我们改变客户端请求头中客户端IP地址值(例如,X-Real-IP 或 X-For ...

  7. 【转】Nginx服务器的反向代理proxy_pass配置方法讲解

    [转]Nginx服务器的反向代理proxy_pass配置方法讲解 转自:http://www.jb51.net/article/78746.htm 就普通的反向代理来讲Nginx的配置还是比较简单的, ...

  8. Linux下安装Nginx服务器

    安装Nginx之前,首先要安装好编译环境gcc和g++,然后以CentOS为例安装Nginx,安装Nginx需要PRCE库.zlib库和ssl的支持,除了ssl外其他的我们都是去官网下载: Nginx ...

  9. nginx服务器设置url的优雅链接

    对于LNMP这样架构的网站来说,一般都是基于php框架开发,php框架一般都会讲究优雅链接,比如Laravel,CodeIgniter,ThinkPHP等都是支持这种链接模式的,在服务器配置上也叫作u ...

  10. nginx服务器绑定域名和设置根目录的方法

    nginx服务器绑定域名以及设置根目录非常方便,首先进入nginx安装目录,然后执行 vim conf/nginx.conf 打开nginx的配置文件,找到 server { ..... ..... ...

随机推荐

  1. forkjoin及其性能分析,是否比for循环快?

    最近看了网上的某公开课,其中有讲到forkjoin框架.在这之前,我丝毫没听说过这个东西,很好奇是什么东东.于是,就顺道研究了一番. 总感觉这个东西,用的地方很少,也有可能是我才疏学浅.好吧,反正问了 ...

  2. python的break、continue、pass

    break break可以用来立即退出循环语句(包括else)continue continue可以用来跳过当次循环注意:break和continue都是只对离他最近的循环起作用 pass pass是 ...

  3. 《C# 爬虫 破境之道》:第二境 爬虫应用 — 第三节:处理压缩数据

    续上一节内容,本节主要讲解一下Web压缩数据的处理方法. 在HTTP协议中指出,可以通过对内容压缩来减少网络流量,从而提高网络传输的性能. 那么问题来了,在HTTP中,采用的是什么样的压缩格式和机制呢 ...

  4. python的logging模块使用方法

    logging模块 logging模块是Python内置的日志模块,用来生成程序的日志.一条日志对应一个事件的发生,一个事件一般包括:事件发生时间.事件发生位置.事件内容.事件严重程度-日志级别.(还 ...

  5. 有关lightning页面中页面加载时间计数器颜色分别表示的时间范围的问题

    之所以要转载这篇文章的原因是,有一次调查lightning中右上角有个页面加载时间控件颜色分别代表多少时间范围的问题,搜索查阅了很多资料和文件,最终在一篇有关Lighthouse前端性能优化测试工具的 ...

  6. 出现An App ID with Identifier 'com.XXX.XXX’ is not available. Please enter a different string.

    解决方法: 1.移除钥匙串中的开发证书,重新导入, 完全关闭Xcode; 2.再次打开Xcode,通过 Preferences - View Details - download 新的证书: 3.选择 ...

  7. 钝化 会钝化 订单审批流程 码一会er

    先放一张订单审批流程图.预则立嘛

  8. GP工作室——系统设计

    团队作业第二次--系统设计 问题 答案 这个作业属于哪个课程 软件工程 这个作业要求在哪里 作业要求 团队名称 GP工作室 这个作业的目标 对项目软件进行更为详细的系统性设计 按照本游戏的设计要求,我 ...

  9. 图解kubernetes调度器SchedulerExtender扩展

    在kubernetes的scheduler调度器的设计中为用户预留了两种扩展机制SchdulerExtender与Framework,本文主要浅谈一下SchdulerExtender的实现, 因为还有 ...

  10. 使用Python写的WingPro7 Pyside2 和 PyQt5插件

    pyside2的 import wingapi import subprocess pyside2_uic = "pyside2-uic" pyside2_qrc = " ...