1.1 nginx 是什么?

是一个高性能的web服务器和反向代理服务器

http://www.nginx.cn/

nginx中文手册

1.2
nginx的优点

1 支持高并发:能支持几万并发连接(特别是静态小文件业务环境)

2 资源消耗少:
在三万并发连接下,开启10个nginx线程消耗的内存不到200MB

3 可以做HTTP反向代理及加速缓存、既负载均衡功能、内置对RS节点服务器健康检查功能、这相当于Haproxy软件或LVS的功能

4 具备squid 等专业缓存软件等的缓存功能

5 支持异步网络I/O事件横行epoll(linux2.6+)

1.3
nginx的应用场景

Nginx作为Web服务器的主要应用场景:

   1)使用Nginx运行HTML、JS、CSS、小图片等静态数据(此功能类似lighttpd软件)。

   2)Nginx结合FastCGI运行PHP等动态程序(例如使用fastcgi_pass方式)。

   3)Nginx结合tomcat/resin等支持Java动态程序(常用proxy_pass方式)。

1.4
正向代理、反向代理、负载均衡

正向代理 由内向外
代替局域网内pc,请求外部应用服务

反向代理 由外向内
代替外部的用户 请求内部的应用服务器

负载均衡 转发给内部的web服务器

1.5
为什么Nginx总体性能比Apache高?

Nginx使用最新的epoll(Linux2.6内核)和kqueue(freebsd)异步网络I/O模型,

而Apache则使用的是传统的select模型。

目前Linux下能够承受高并发访问的Squid、Memcached软件都采用的是epoll模型

第一个比喻:

假设你在大学读书,住的宿舍楼有很多房间,你的朋友要来找你。select版宿管大妈就会带着你的朋友到各房间挨个去找,直到找到你为止。而epoll版宿管大妈会先记下每位入住同学的房间号,你的朋友来找你时,只需告诉你的朋友你住在哪个房间即可,不用亲自带着你的朋友满宿舍楼找人了。如果同时来了100个人,都要找自己住这栋楼的同学,select版和epoll版宿管大妈,谁的效率更高,就很明显了。

第二个比喻:

select的调用复杂度是线性的,即O(n)。举个例子,一个保姆照看照看一群孩子,如果把孩子是否需要尿尿比作网络I/O事件,select的作用就好比这个保姆挨个询问每个孩子"你要尿尿吗?”如果孩子回答是,保姆则把孩子领出来放到另外一个地方。当所有孩子询问完之后,保姆领着这些要尿尿的孩子去上厕所(处理网络I/O事件).在epoll机制下,保姆不再需要挨个询问每个孩子是否需要尿尿。取而代之的是,如果孩子需要尿尿,他就自己主动站到事先约定好的地方,而保姆的职责就是查看事先约定好的地方是否有孩子。如果有小孩,则领着孩子去上厕所(网络事件处理)。因此,epoll的这种机制,能够高效地处理成千上万的并发连接,并且性能不会随着连接数増加而下降太多。

1.5.1
IO的介绍

IO 简单了解就是计算机的读写

IO的类型(关注消息通知机制)

同步IO

调用方向被调用方发起请求 被调用方接受请求时不立即返回消息 但一旦返回
则返回最终结果

异步IO

调用方向被调用方发起请求 被调用方接收到请求后返回确认信息,但不是最终结果; 请求处理完后,通过通知机制通知调用者

IO模型的介绍

比如cat 查看一个数据由进程通知内核 内核将数据从磁盘加载至内核内存
内核空间将数据cp到进程内存。此时IO过程分为两步, ①数据从磁盘加载至内核内存
② 从内核内存cp一份至进程内存

阻塞IO : 进程在IO操作中
为挂起状态,进入不可中断睡眠状态 既阻塞IO

非阻塞IO:进程在IO操作①中
可执行其他操作 但是需要不断查看内核是否操作成功,既忙等待状态,随后进入进入IO②操作中,又为阻塞状态

多路复用IO:进程在IO操作中,加入select机制 通过select 同时处理多个IO 但是有上限1024 当并发超过1024后,又为阻塞状态

事件驱动式IO: 加入通知机制 通知机制分为水平触发(多次通知),边缘触发(只通知一次)。进程在IO操作中,内核将数据加载至内核内存后,就通知进程。

异步IO:加入select机制 通知机制(边缘触发) 并且是内核将IO操作完成后 数据已经在进程内存了 再通知进程

1.6
nginx的安装

linux系统安装软件方法:

1)yum install nginx -y(rpm包,自动解决所有依赖软件)

简单,没法定制。

2)rpm -ivh rpm包(自己解决所有依赖软件)

简单,没法定制,没法自动解决所有依赖软件

3)编译安装(c语言)

可以定制,编译过程复杂,时间长。

./configure 配置

make 编译

make install 安装

4)利用源码制作符合企业需求的rpm软件包,放到yum仓库里,最后yum安装。

简单,可以随意定制。

rpm包定制

http://blog.oldboyedu.com/autodeploy-rpm/

yum仓库搭建

http://blog.oldboyedu.com/autodeploy-yum/

mkdir /home/oldboy/tools

cd /home/oldboy/tools

wget
http://nginx.org/download/nginx-1.14.0.tar.gz

tar xf nginx-1.14.0.tar.gz

cd nginx-1.14.0

====================================

useradd -s /sbin/nologin www -M

yum install pcre pcre-devel -y

yum install openssl openssl-devel  -y

====================================

./configure 
--user=www --group=www --prefix=/application/nginx-1.14.0/
--with-http_stub_status_module 
--with-http_ssl_module --with-pcre

make

make istall

ln -s /application/nginx-1.14.0/
/application/nginx

echo $? 返回0代表步骤正确。

验证:

[root@web01 nginx-1.14.0]# ls
/application/nginx/

conf 
html  logs  sbin

[root@web01 nginx-1.14.0]#
/application/nginx/sbin/nginx

[root@web01 nginx-1.14.0]# lsof -i :80

COMMAND 
PID USER   FD   TYPE DEVICE SIZE/OFF NODE NAME

nginx  
8898 root    6u  IPv4 
23954      0t0  TCP *:http (LISTEN)

nginx  
8899  www    6u 
IPv4  23954      0t0 
TCP *:http (LISTEN)

[root@web01 nginx-1.14.0]# wget 10.0.0.7

--2018-06-22 12:36:30--  http://10.0.0.7/

Connecting to 10.0.0.7:80... connected.

HTTP request sent, awaiting response... 200
OK

Length: 612 [text/html]

Saving to: “index.html”

OVER.

--prefix=PATH 
路径

--user=USER   
用户

--group=GROUP 

--with-pcre   
伪静态

--with-http_stub_status_module 状态

--with-http_ssl_module      加密 443

nginx介绍1的更多相关文章

  1. Nginx 介绍和安装

    Nginx ("engine x") 是一个高性能的 HTTP 和 反向代理 服务器,也是一个 IMAP/POP3/SMTP 代理服务器. Nginx 是由 Igor Sysoev ...

  2. LNMP架构介绍、MySQL和PHP安装、Nginx介绍

     6月6日任务  12.1 LNMP架构介绍12.2 MySQL安装12.3/12.4 PHP安装12.5 Nginx介绍 扩展Nginx为什么比Apache Httpd高效:原理篇 http://w ...

  3. Nginx介绍和使用

    Nginx介绍和使用 一.介绍 Nginx是一个十分轻量级并且高性能HTTP和反向代理服务器,同样也是一个IMAP/POP3/SMTP代理服务器. 二.特性 HTTP服务器 反向代理服务器 简单的负载 ...

  4. nginx介绍及相关实验

    一.nginx介绍 1.nginx简介 Nginx是一个高性能的HTTP和反向代理web服务器,同时也提供了IMAP/POP3/SMTP 服务.Nginx 是由伊戈尔·赛索耶夫为俄罗斯访问量第二的 R ...

  5. Linux centosVMware LNMP架构介绍、MySQL安装、PHP安装、Nginx介绍

    一. LNMP架构介绍 和LAMP不同的是,提供web服务的是Nginx 并且php是作为一个独立服务存在的,这个服务叫做php-fpm Nginx直接处理静态请求,动态请求会转发给php-fpm   ...

  6. 三十六、www服务nginx介绍

    一.Nginx介绍 ,相对于LAMP经典组合而言,LNMP是近几年来流行的组合.(linux+nginx+mysql+php) Nginx是一个开源www服务软件,是俄罗斯人开发的,本身是一款静态ww ...

  7. nginx介绍及其原理

    nginx介绍及其原理 nginx是一款轻量级的Web服务器/反向代理服务器及电子邮件(IMAP/POP3)代理服务器,并在一个BSD-like协议下发行. nginx由俄罗斯程序设计师lgor Sy ...

  8. Nginx介绍,安装,配置

    引言 为什么要学习Nginx 问题一: 客户端到底要将请求发送给哪台服务器? 问题二: 如果所有客户端的请求都发送给了服务器1,那另一台岂不是废了 问题三: 客户端发送的请求可能是申请动态资源的,也可 ...

  9. Nginx介绍

    原文:http://www.aosabook.org/en/nginx.html 作者: Andrew Alexeev nginx(发音"engine x")是俄罗斯软件工程师Ig ...

  10. nginx介绍(三) 配置篇

    3. nginx配置 nginx配置系统受益于Igor Sysoev(nginx创始人)在Apache(阿帕奇软件基金会)的经历.Igor Sysoev洞察出可扩展的配置系统对于一个web服务器来说是 ...

随机推荐

  1. 差分进化算法介绍及matlab实现

    引言 差分进化算法是基于群体智能理论的优化算法,是通过群体内个体间的合作与竞争而产生的智能优化搜索算法,它保留了基于种群的全局搜索策略,采用实数编码.基于差分的简单变异操作和"一对一&quo ...

  2. 从ceph对象中提取RBD中的指定文件

    前言 之前有个想法,是不是有办法找到rbd中的文件与对象的关系,想了很久但是一直觉得文件系统比较复杂,在fs 层的东西对ceph来说是透明的,并且对象大小是4M,而文件很小,可能在fs层进行了合并,应 ...

  3. 如何统计Ceph的RBD真实使用容量

    前言 ceph的rbd一直有个问题就是无法清楚的知道这个分配的空间里面到底使用了多少,这个在Jewel里面提供了一个新的接口去查询,对于老版本来说可能同样有这个需求,本篇将详细介绍如何解决这个问题 查 ...

  4. 02、Spring-HelloWorld

    0. 环境准备 1) jar包 jar包我会帮大家准备好的,所以不用担心找不到Jar包  链接:https://pan.baidu.com/s/1JJcYaspK07JL53vU-q-BUQ 提取码: ...

  5. Win10系统下安装VC6.0教程

    学习一门语言最重要的一步是搭建环境,许多人搭建在搭建环境上撞墙了,就有些放弃的心理了:俗话说,工欲善其事,必先利其器:所以接下来我们进行学习C的第一步下载编程所用的工具;当然也有其它的软件,只不过初学 ...

  6. 5G革命:如何让「数据」实现最大性能?

    壹 早在2000年代中期,H-Store第一次在M.I.T.被我们提出来,VoltDB是H-Store的商业化产品,它表示结构相似的数据会被连续存放到一起.在本文的后续描述中,我们将使用V-H来缩写. ...

  7. ABBYY FineReader中的其他格式

    ABBYY FineReade是一款功能强大的PDF编辑转换器,在内置任务窗口,您可以将 PDF 或图片转换成常见的格式(*.pptx. *.odt. *.html.*.epub.*.fb2.*.rt ...

  8. pdfFactory如何设置限制打印和浏览文档权限

    当我们进行私密文件的分享时,除了要设置密码保护文件内容外,还要注意设置打印限制,防止他人利用打印的方式,进行纸质文件的传播. 在使用pdfFactory安全策略时,我们可以通过设定禁止打印的方式,完全 ...

  9. 循序渐进VUE+Element 前端应用开发(29)--- 高级查询条件的界面设计

    在系统模块中的业务列表展示里面,一般我们都会在列表中放置一些查询条件,如果是表字段不多,大多数情况下,放置的条件有十个八个就可以了,如果是字段很多,而这些条件信息也很关键的时候,就可能放置很多条件,但 ...

  10. ⭐NES.css推荐⭐

    今天发现一个有意思的CSS框架,叫NES.css 官网地址:https://nostalgic-css.github.io/NES.css/ gitHub地址:https://github.com/n ...