<草稿>1108NGINX
2012-11-10 09:26
267 查看
MIME:Multipuerpose Internet Mail Extention
IO模型(网络IO,磁盘IO):
同步 阻塞
同步非阻塞
异步阻塞
select 定期扫描状态 发送状态
epoll 边缘触发 只通知一次
水平触发 连续通知直到来
异步非阻塞(回调参数)
Apache:
preork:多进程,每个请求用一个进程相应
worker:多个进程,每个请求一个线程相应
event:多进程,每个进程可同时相应多个用户请求。
高并发的实现模式:
基于进程
worker
基于事件
event
mmap 内存地址映射
AIO 磁盘io用异步非堵塞
NGINX是基于事件,支持边缘触发,mmap,AIO的一种采用模块化设计的轻量级web服务器
可以支做成 web服务器 web反向代理 mail反向代理
1.pcre
2.
worker_processes 进程数根据 cpu密集型的(核心数) 还是io密集型(磁盘数或者cpu个数的1.5倍到2倍)指定不同的个数
root
location [ = | ~ | ~* | ^~ | @ ]
=精确匹配
~正则表达式配置区分大小写
~*不区分大小写
^~禁用正则表达式
@有特殊意义
location ~* \.(jpeg|png|gif)$ {
root /images/;
}
1.=匹配到优先级最高
2.^~匹配到的次之
3.正则表达式再次之
4.没有符号的最后
基于IP访问控制:
location {
allow ip;
deny CIDR;
deny all;
}
基于用户控制:
auth_basic "someting";
auth_basic_user_file "/var/htpass";
开启Nginx状态监控:
location /nginx_status {
stub_status on;
access_log off;
}
定义默认虚拟主机:
listen 80 default;
server_name _;
root /www/htdocs;
memcached
负载均衡集群
能力越强权重越大
队列服务器,是异步的负载均衡器也叫中间件
MYSQL实现读写分离,mysql负载均衡器,也可以做成队列
旁路工作模式 与 代理不同,由前端程序来进行缓存,缓存服务器(memcached)不负责查找,工作在简单模式,只能缓存可序列化的数据,如字符串或者对象。支持分布式,但这种分布式是伪分布式,缓存服务器间不进行通信,基于客户端算法来进行,基于内存来缓存,基于键值对(key/value),并支持O(1)算法,内存管理用slab allocator(避免内碎片另外的一种是buddy system,memcat不用),它预先将内存划分为大小固定的存储空间,将同样大小的进行归类,
key 标识符 缓存时长 存储字符长度 value
O(1)算法:从 缓存1W个与缓存2亿个数据中找出时间是一样的
增长因子:按算法分配类别内存空间
基于memcached 协议 v1 基于text协议 v2基于binary二进制
memcache库:隐藏底层实现细节,由应用程序调用
perl:cache::memcache 模块
php:memcache模块
c语言:libmemcached 模块库
端口:11211/tcp/udp
LRU:Least Recent Use 算法
slab pages---slab class ---slab chuck
memcached
-u
-d 后台运行
-m 给多少内存
-p 监听端口
-M 如果内存不够用返回错误
-f 增长因子
-c 最大并发连接数
-n 最少分配字节,分配的起始点
-B 指定协议 ascii和binary
-I 默认slab页面默认大小
telnet localhost 11211
set testkey 0 30s 3 回车
abc (输入value)
replace testkey 0 30 5
abcde
IO模型(网络IO,磁盘IO):
同步 阻塞
同步非阻塞
异步阻塞
select 定期扫描状态 发送状态
epoll 边缘触发 只通知一次
水平触发 连续通知直到来
异步非阻塞(回调参数)
Apache:
preork:多进程,每个请求用一个进程相应
worker:多个进程,每个请求一个线程相应
event:多进程,每个进程可同时相应多个用户请求。
高并发的实现模式:
基于进程
worker
基于事件
event
mmap 内存地址映射
AIO 磁盘io用异步非堵塞
NGINX是基于事件,支持边缘触发,mmap,AIO的一种采用模块化设计的轻量级web服务器
可以支做成 web服务器 web反向代理 mail反向代理
1.pcre
2.
worker_processes 进程数根据 cpu密集型的(核心数) 还是io密集型(磁盘数或者cpu个数的1.5倍到2倍)指定不同的个数
root
location [ = | ~ | ~* | ^~ | @ ]
=精确匹配
~正则表达式配置区分大小写
~*不区分大小写
^~禁用正则表达式
@有特殊意义
location ~* \.(jpeg|png|gif)$ {
root /images/;
}
1.=匹配到优先级最高
2.^~匹配到的次之
3.正则表达式再次之
4.没有符号的最后
基于IP访问控制:
location {
allow ip;
deny CIDR;
deny all;
}
基于用户控制:
auth_basic "someting";
auth_basic_user_file "/var/htpass";
开启Nginx状态监控:
location /nginx_status {
stub_status on;
access_log off;
}
定义默认虚拟主机:
listen 80 default;
server_name _;
root /www/htdocs;
memcached
负载均衡集群
能力越强权重越大
队列服务器,是异步的负载均衡器也叫中间件
MYSQL实现读写分离,mysql负载均衡器,也可以做成队列
旁路工作模式 与 代理不同,由前端程序来进行缓存,缓存服务器(memcached)不负责查找,工作在简单模式,只能缓存可序列化的数据,如字符串或者对象。支持分布式,但这种分布式是伪分布式,缓存服务器间不进行通信,基于客户端算法来进行,基于内存来缓存,基于键值对(key/value),并支持O(1)算法,内存管理用slab allocator(避免内碎片另外的一种是buddy system,memcat不用),它预先将内存划分为大小固定的存储空间,将同样大小的进行归类,
key 标识符 缓存时长 存储字符长度 value
O(1)算法:从 缓存1W个与缓存2亿个数据中找出时间是一样的
增长因子:按算法分配类别内存空间
基于memcached 协议 v1 基于text协议 v2基于binary二进制
memcache库:隐藏底层实现细节,由应用程序调用
perl:cache::memcache 模块
php:memcache模块
c语言:libmemcached 模块库
端口:11211/tcp/udp
LRU:Least Recent Use 算法
slab pages---slab class ---slab chuck
memcached
-u
-d 后台运行
-m 给多少内存
-p 监听端口
-M 如果内存不够用返回错误
-f 增长因子
-c 最大并发连接数
-n 最少分配字节,分配的起始点
-B 指定协议 ascii和binary
-I 默认slab页面默认大小
telnet localhost 11211
set testkey 0 30s 3 回车
abc (输入value)
replace testkey 0 30 5
abcde
相关文章推荐
- <草稿>1022http
- <草稿>1022http
- <深入剖析Nginx> nginx的跟踪与调试
- <草稿>1030 iptables
- <草稿>1029 FTP NFS
- <草稿>1025
- &lt;org manual&gt;翻译--3.5.2 Calc的公式语法
- <iOS>通过运行时来实例化一个,只知道名字的类, 名字为变量
- &lt;org manual&gt;翻译--2.2 标题
- <div>重叠导致布局问题(1)
- >.<
- <PY><core python programming笔记>C9 文件和输入输出
- <LeetCode OJ> 204. Count Primes
- <C++>error LNK2001错误
- <八>读<<大话设计模式>>之外观模式
- 2.Struts的<action unknown="true">:struts-config.xml
- C语言 include <> ""
- <Python基础教程>学习心得_第二章
- <Pro WPF 4.5 in C#> - Note-03
- Nginx安装部署<转>