高性能web服务器-nginx(一)

nginx高性能web服务详解

高性能web服务器-nginx(一)_第1张图片

1.1nginx简介

Nginx (engine x) 是一个高性能的 HTTP 和反向代理服务器,也是一个 IMAP/POP3/SMTP 邮件代理服务器。由 Igor Sysoev 于2004年首次发布,其设计目标是解决 C10K 问题,即在一台服务器上同时处理一万个并发连接。Nginx 以其高并发处理能力、低资源消耗和模块化设计而闻名,广泛应用于 Web 服务器、反向代理、负载均衡等场景。

随着信息数据的不断增长及用户体验需求增高:技术关心三个方面:

  • 服务器自身处理性能(信息数据,云计算与大数据理论等工作)

如何更快处理与响应客户端与web服务器之间的问题

  • 服务器的稳定性

如何保证web服务器在大量并发请求中任然进行保持稳定运行(也就是我们所说的服务器、网站等不宕机),产生问题的时候能够进行有效的预防,运行过程中进行减少系统平台资源的压力等问题

  • web服务器的定制特性

部署迅速,快速增加删除与配置功能

主流的web服务器

Apache、Microsoft IIS,Sun、Nginx、Tomcat、Lighttpd等

  • apache:apache
    web服务器在开源的www服务所提供的工具在特性最全并且运行速度最快。缺点是apache设计一进程的基础结构,导致apache处理器环境下降。
  • tomact:一般应用在中小型系统和并发访问用户数量少的场合下使用。缺点是tomact处理html页面功能不如apache服务器,不能满足复杂的业务,tomact体积小,安装与部署方便,系统占用率低
  • nginx:可以做htpp服务器,反向代理,邮件服务器,快速相应静态页面,支持FastCGI、SSL、Virtual Host、URL
    Rewrite、HTTP Basic Auth、Gzip等大量使用功能;并且支持更多的第三方功能模块的扩展。

nginx版本分为:

  • 开发版,稳定版,最新版

HTTP代理和反向代理

nginx服务器提供反向代理服务,转发前端请求性能稳定,向后端转发业务支持相互分离,配置灵活

支持正则表达式,后端返回情况做异常判断,结果若不正常,重新请求另外一台主机,自动替换异常主机,并且支持错误页面跳转功能

负载均衡

将单一的重负载分担多个网络节点进行处理,将每一个节点处理结束后的结果汇总返还给用户,提高网络系统处理能力;另外一个,将大量前端请求并发访问或数据流担到多个后端节点分别处理,减少用户等待时间。

nginx负载服务器:

对大量前段访问和流量进行分流,保证前端用户访问效率

nginx负载策略

  1. 内置策略:轮询,加权轮询,iphash
  • 默认会被编译到nginx内核中
  1. 扩展策略:url hash,fair 模块编译到nginx中
  • 不会编译到nginx内核,需要手动将第三方

轮询:

每个前端请求按照时间顺序,或者策略进行分配到不同的后端节点,若后段节点有问题将自动排除。

加强轮询:

因为后端节点请求的权重,指定后端节点轮询的概率,用于后端性能不均的情况。

ip hash策略,将前端访问的IP进行hash操作,将hash结果分配到不同的后端节点,通过nginx实现,每一个前端访问访问ip会固定访问后端节点,避免前端用户的session在后端多个节点上的共享

扩展策略url hash形式上与ip hash类似,不同之处在于ip hash策略是对前端用户ip进行了hash操作;URL hash是若后端有缓存服务器,提高缓存效率,解决session问题;缺点是,解决了后端节点异常,不能自动排除节点.后端节点出现异常,nginx服务器返回503的错误

扩展fair模块:

该模块将前端请求转发到负载最小的后端节点,nginx通过后端节点对请求的相应时间来判断负载情况;相应时间短的节点负载轻;得出结果就,nginx负载请求转发到选中的负载最轻的几点上

web缓存

nginx服务器类似squid缓存功能;

  1. nginx服务器的web服务器主要由proxy_cache指令(nginx服务器提供反向代理,对后端原服务器返回内容进行URL缓存)
  2. fastcgi_cache指令(用于fastcgi动态程序进行缓存)构成;
  3. 第三方ngn_cache_purge模块(用于清除ngijx服务器上指定的URL缓存)

nginx服务器的多核CPU调度,性能比suid更好,因为nginx不仅模块多,使nginx服务器同时作为负载均衡器和web缓存服务器来进行使用!

1.2 获取nginx服务器

nginx下载官网:http://nginx.org/en/download.html
高性能web服务器-nginx(一)_第2张图片

windows版本安装

在官网安装之后,windows版本上运行的服务效率要低于Linux版本上
,在电脑上下面对每一个目录进行简单的介绍

  1. conf目录存放的是nginx服务器的配置文件(nginx.conf)
  2. docs目录存放nginx服务器文档资料
  3. html目录存放静态网页文件,两个文件与nginx服务器的运行相关
  4. logs目录存放nginx运行服务器日志文件

Linux版本编译与安装

  • 在安装版本之前:需要安装一款Linux常见的发行版本,Redhat、SUSE、Fedora、CentOS、Ubuntu、FreeBSD、Solaris以及Debian等
  • 变异nginx源代码,需要标准的GCC(GNU Complier Collection)编译器
  • 需要安装Automake工具,完成自动创建Makefile工作

nginx需要第三方库

  yum –y install gcc gcc-c++ automake pcre pcre-devel zlib zlib-devel open openssl-devel

完成了编译和安装Nginx服务器软件的环境准备工作

这里就不再进行续写了,参考小编之前的文章!!!

Nginx服务的启动

将当前工作目录定位到Nginx安装目录下,运行以下命令:

# ./sbin/nginx -h
nginx version: nginx/1.2.4
Usage: nginx [-?hvVtq] [-s signal] [-c filename] [-p prefix] [-g directives]
Options:
  -?,-h          : this help     显示该帮助信息
  -v             : show version and exit 打印版本号并退出
  -V             : show version and configure options then exit打印版本号和配置并退出
  -t             : test configuration and exit    测试配置正确性并退出
  -q             : suppress non-error messages during configuration testing   测试
配置时只显示错误
  -s signal      : send signal to a master process: stop, quit, reopen, reload向主
进程发送信号
  -p prefix      : set prefix path (default: /Nginx/bin/)    指定Nginx服务器路径前缀
  -c filename    : set configuration file (default: conf/nginx.conf)  指定Nginx配
置文件路径
  -g directives  : set global directives out of configuration file    指定Nginx附
加配置文件路径

nginx服务的停止

  1. 快速停止:立即停止当前Nginx服务正在处理的所有网络请求,马上丢弃连接,停止工作
  2. 平缓停止:允许Nginx服务将当前正在处理的网络请求处理完成,但不再接收新的请求,之后关闭连接,停止工作
kill -9 进程的pid

nginx 平滑重启

  1. nginx服务进程接收到信号之后,首先读取新的nginx配置文件
  2. 如果配置正确,则重新启动nginx服务,然后平缓关闭旧的服务进程
  3. 如果新的nginx配置出现问题,则将显示错误,任然使用旧的nginx进程进行提供服务

平滑重启命令:

# ./sbin/nginx -g HUP [-c newConfFile]

使用新的配置文件代替了旧的配置文件后,使用:

# kill HUP `/Nginx/logs/nginx.pid`

你可能感兴趣的:(数据库,服务器,前端,运维,nginx)