正向代理;
反向代理:接受用户请求
客户端称为下游,服务器称为上游
1.客户端发起连接请求时,nginx会等待客户端把数据传输完成,一次性的把数据交给上游服务器
2.当上游服务器响应时,nginx边接受边发回给客户端
参数:
1.proxy_pass uri
用来定义协议内容:路径映射和uri
做路径映射时,最后也要加/(前后一致)
格式:
location /uri {
procy_pass http://back_server:port/newuri
}
注意:
这里是将/uri映射成/newuri
"/uri"也可以不是uri而是一个正则表达式,此时http://back server:por后不能接uri,“/”也不能接,此时uri也一定要是后端服务器真正的uri,而不会路径映射
如果有url重写,将会使用重写后的结果代理,此时也不考虑前端uri
2.proxy_set_header
Syntax: proxy_set_header field value;
例子:
location / { proxy_pass http://localhost:8000; proxy_set_header Host $host; proxy_set_header X-Real-IP $remote_addr; }
4.proxy_pass_header
5.proxy_pass_request_body 是否将http请求报文的包体部分发往上游服务器
7.proxy_redirect [default|off|redirect|replacement
当上游服务器返回的响应是重定向或刷新请求时,proxy_rdirect会重新设定http首部的location或refresh
10.upstream使用注意
1.只能用于http上下文
2.各server只能直接使用IP或域名,不需要协议
3.默认为轮询
server address [parametrs]
wight=#:设定权重
max_fails=# 最大失败尝试的次数,默认为1
fail_timeout:失败尝试时长,默认为10s
down= 手动停止某服务
backup 转移失败时,最后访问的页面
health_check 自定义检测状态
health_check [interval=time] [fails=number] [] [uri]
ip hash 相当于lvs的sh算法,用来实现session绑定,与server address 一起使用
least_conn 基于最少连接调度节点
stick cookie 基于会话绑定 过期时间 dimain 路径
内存缓存hash表,硬盘缓存内容
动静分离:
LNMMP:
naginx服务器自己提供静态内容服务
对php的请求通过fastcgi模块代理至php-fpm模块
http nginx
fastcgi:nginx与php
uwsgi:nginx与pathon
http:nginx与jsp
cgi:nginx与perl
libcurl-devel bzip2-devel gd-devel libxml2-devel libmcrpt libmcrpt-devel
pam.max_requests 服务多少用户请求然后杀掉进程,重新生成
rlimi_files=能打开的最大文件数
fastcgi模块的常用指令
fastcgi_pass:指定fastcgi服务监听端口、地址、也支持使用 Uxin socket
fastcgi_bind 指定练习fpm服务时使用的地址
fastcgi_param: 定义传递给fpm的参数
fastcgi_index:php的主页面文件
结果可以缓存,缓存空间使用proxy_cache_path定义,使用fastcg_cache定义
fastcgi_cache_path
fastcgi_cache
fastcgi_cache_vaild
fastcgi_connect_timeout:连接fastcgi服务器的超时时长
fastcgi_send_timeout: 向fastcgi服务器传输数据的超时时长
$fastcgi_script_name
获取php-fpm的状态信息
pool 进程池的名称
process manager 进程管理器,有两种类型static和dynamic
start time 启动时间
start since 运行时长
accepted conn 已经接受的进程数
listen queue
等待的队列的请求的个数
max listen queue
fpm启动以来等待队列中的请求的总数
listen queue len
等待队列长度
idle processes
空闲的进程数
active processes
活动进程数
total processes
总进程数
max active processes
fpm 启动以来最大活动进程数
max children reached
达到最大进程数的次数
slow requests 0
慢速请求的个数
key-value(键值缓存)
linux:molloc(内存分配),free(内存释放)
使用了salb allocator 内存的申请和回收,避免了内存的系统调用
自定义增长因子
page:分配给salb用于切割的内存空间,默认每个大小为1MB
chuck:用户缓存记录的内存空间
slab class:特定大小的chunk组
自定义增长因子
memcached的协议为文本格式 二进制格式
取余
一致性hash算法 consistent hashing
libevent库
memcached单独服务
-s:监听本地套接字工作
-l IP;监听的ip地址
-d 以守护进程模式运行
-u:身份运行
-m #MB:指定缓存服务使用的内存空间,默认为64MB,不宜过大
-c # 最大并发连接数,默认为1024
-p:监听tcp端口,默认为11211
-U:监听udp端口,默认为11211,0表示禁用
-M:内存耗尽时,返回错误而非删除对象
-f:指定增长因子,默认1.25
-n:check的最小的起始值,key+value+flags,默认为48字节
-h:显示版本号
-v:显示详细信息
-i:显示许可证
-t:每个线程能服务的进程数
启动
menmcached -u menmached
程序员在开发时,自行调用了memcached的API,memcached的功能才能生效
Memcached 服务器
memcached php连接memcached服务可以使用的扩展
memcache php连接memcached服务可以使用另外一个扩展
libmemcached:C库
LNMMP
原文:http://xiexiaojun.blog.51cto.com/2305291/1711901