模块化设计,较好的扩展性
高可靠性
支持热部署:不停机更新配置文件,升级版本,更换日志文件
低内存消耗:10000 个keep-alive 连接模式下的非活动连接,仅需要2.5M 内存
event-driven,aio,mmap,sendfile
基本功能:
静态资源的web 服务器
http 协议反向代理服务器,负载均衡
pop3/imap4 协议反向代理服务器
FastCGI(lnmp),uWSGI(Python) 等协议
模块化(非DSO ),如zip ,SSL模块
web 服务相关的功能:
虚拟主机(server)
支持 keep-alive 和管道连接
访问日志(支持基于日志缓冲提高其性能)
url rewirte
路径别名
基于IP 及用户的访问控制
支持速率限制及并发数限制
重新配置和在线升级而无须中断客户的工作进程
Memcached 的GET 接口
1.2 nginx 架构nginx 的程序架构 :
master/worker 结构
一个master 进程:
负载加载和分析配置文件、管理worker 进程、平滑升级
一个或多个worker 进程
处理并响应用户请求
缓存相关的进程:
cache loader :载入缓存对象
cache manager:管理缓存对象
1.3 nginx 高度模块化但其模块早期不支持DSO 机制;1.9.11版本支持动态装载和卸载
模块分类:
核心模块:core module
标准模块:
• HTTP : 模块: ngx_http_*
HTTP Core modules 默认功能
HTTP Optional modules 需编译时指定
• Mail 模块 ngx_mail_*
• Stream 块 模块 ngx_stream_*
第三方模块
1.4 nginx 的功用静态的web 资源服务器
html,图片,js ,css ,txt 等静态资源
结合FastCGI/uWSGI/SCGI 等协议反向代理动态资源请求
http/https 协议的反向代理
imap4/pop3 协议的反向代理
tcp/udp 协议的请求转发(反向代理)
二、nginx 目录结构和命令 2.1 nginx 命令ls /usr/local/nginx/
html 是测试页,sbin 是主程序
ls /usr/local/nginx/sbin/
nginx 只有一个程序文件
ls /usr/local/nginx/html/
50x.html index.html 测试网页
Nginx :默认为启动nginx
-h 查看帮助选项
-V 查看版本和配置选项
-t 测试nginx 语法错误
-c filename 指定配置文件(default: /etc/nginx/nginx.conf)
-s signal 发送信号给master 进程,signal 可为:
stop, quit,reopen, reload 示例:-s stop 停止nginx -s reload 加载配置文件
注意:不要和systemctl 混合使用
-g directives 在命令行中指明全局指令
2.2 配置文件的组成部分:主配置文件:nginx.conf
子配置文件 include conf.d/*.conf
fastcgi,uwsgi ,scgi 等协议相关的配置文件
mime.types :支持的mime 类型
主配置文件的配置指令:
directive value [value2 ...];
注意:
(1) 指令必须以分号结尾
(2) 支持使用配置变量
内建变量:由Nginx 模块引入,可直接引用
自定义变量:由用户使用set 命令定义
set variable_name value;
引用变量:$variable_name