您的位置:首页 > 运维架构 > Nginx

<草稿>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
内容来自用户分享和网络整理,不保证内容的准确性,如有侵权内容,可联系管理员处理 点击这里给我发消息
标签: