一、Nginx概述
1.Nginx简介
办理基于历程模子发生的C10k问题,请求时纵然无状态毗连如web处事都无法到达并发响应量级一万近况。2006年俄罗斯编写。全称为engine X,缩减归并称为nginx。 官方站点:http://nginx.org/。 2013年发出企业版Nginx Plus
二次刊行版:tengine, OpenResty… …
2.Nginx的特性
1) 模块化设计、较好扩展性;早期不支持模块的动态装卸载
2) 高靠得住性:基于master/worker模式
master:认真启动处事,阐明设置文件,父子启动子历程和worker历程
worker:真正响应用户请求历程
3) 支持热陈设(滑腻迁移):不断机更新设置文件、改换日志、更新处事器措施版本;
4) 内存耗损低:10000个keep-alive毗连模式下的非勾当毗连仅耗损2.5M内存;
5) 支持event-driven事件驱动模子, aio一步驱念头制, mmap内存映射;
3.Nginx根基成果
2) http协议的反向署理处事器;
3) pop3, smpt,imap4等邮件协议的反向署理;
4) 能缓存打开的文件(元数据:文件的描写符等等信息)
5) 支持FastCGI(php-fpm), uWSGI(Python WebFramwork)等协议机制,实现署理后端应用措施交互
6) 高度模块化(非DSO机制)
模块范例:
core module |
焦点公用模块 |
Standard HTTP modules |
尺度(焦点)HTTP模块;自动编译进措施不止一个 |
Optional HTTP modules |
可选HTTP模块 |
Mail modules |
邮件模块 |
3rd party modules |
第三方模块,在编译时需手动指明加载方法加载 |
7) 支持过滤器,譬喻zip,SSI
8) 支持SSL加密机制;
9) web处事相关的成果:虚拟主机(server)、keepalive、会见日志(支持基于日志缓冲提高其机能)、urlrewirte、路径别名、基于IP及用户的会见节制、支持速率限制及并发数限制;
……
4.Nginx的根基架构:master/worker
master/worker模子:一个master历程可生成一个或多个worker历程;每个worker基于时间驱念头制可以并行响应多个请求
master:加载设置文件、打点worker历程、滑腻进级,...
worker:http处事,http署理,fastcgi署理,...
事件驱动:epoll(Linux),kqueue(FreeBSD), /dev/poll(Solaris)
动静通知:select,poll, rt signals
支持sendfile, sendfile64
支持AIO,mmap
二、Nginx编译安装设置
1.编译安装nginx
(1)编译情况筹备
[[email protected]~]# yum install -y make
[[email protected]~]# yum install -y gcc
[[email protected]~]# yum -y groupinstall "开拓东西""处事器平台开拓"
[[email protected]~]# yum install -y pcre-devel openssl-develzlib-devel
[[email protected]~]# useradd -r nginx
(2)解压安装
[[email protected]~]# tar xf nginx-1.8.0.tar.gz
[[email protected]]# ./configure --prefix=/usr/local/nginx--conf-path=/etc/nginx/nginx.conf --user=nginx --group=nginx --error-log-path=/var/log/nginx/error.log--http-log-path=/var/log/nginx/access.log --pid-path=/var/run/nginx/nginx.pid--lock-path=/var/lock/nginx.lock --with-http_ssl_module--with-http_stub_status_module --with-http_gzip_static_module --with-debug
留意:check时,在Linux上epoll机制要存在
[[email protected]]#make &&make install
(3)启动处事,检测端口是否启用
[[email protected]~]# /usr/local/nginx/sbin/nginx
[[email protected]~]# ss-tnl
2.Nginx设置文件
(1)设置指令有范例
1) 全局指令:安排于mainblock中,即文档根
main设置段种别:正常运行必备的设置;优化机能相关的设置;用于调试、定位问题的设置;