参考http://www.imooc.com/article/19597这个手记搭建
灰度发布:先让一部分人体验,防止服务器爆炸
安装memcaches:
yum install memcache
启动memecache
memcached -p11211 -u//用户 nobody -d//以守护进程的方式启动
好了之后就可以调用require来调用memcache数据
一般在企业中可以getmemcache set数据进去,也可以telnet 127.0.0.1 11211//端口的方式手动添加
例:set 103.215.191.72 0 0 1就设置进去了,给103.215.191.72设置值为1
1.配置了相同的servername(域名)配置文件排在前面的优先级高
location匹配优先级:= 进行精确匹配 ^~表示前缀匹配,~\~*表示一个正则匹配,总之精确度越高,匹配优先级越高
Nginx的try_files:顺序检查文件是否存在
location / {
try_file $uri $sui/ /index.php //表示客户的uri有没有,没有就加\寻找,如果还是没有就转到index。php处理
}
nginx中的alias和root的区别
root是加载路径后面,
alias不会按照客户的地址去查,而是去alis定义的路径下查找对应的文件
怎么在多重代理的情况下传递真实的ip 在代理一的时候,定义一个变量计入set x_real_ip = Sremote_addr
其他:
性能优化考虑点:
1.当前系统结构瓶颈,观察指标,压力测试
了解业务模式:借口业务类型,系统层次化结构
性能安全
二:ab接口压力测试工具
1.安装:yum install httpd-tools
ab -n//请求总数 2000 -c 并发数2 http..... -k是否开启长连接
系统与nginx优化:
1.网络,2.系统,3.服务,4.程序,5.数据库,底层服务
文件的句柄:文件索引,可以在系统全局,用户局部修改,进程局部性修改
在系统中有一个修改系统配置的地方:/etc/security/limits.conf
用户:root soft nofile 12345
用户:root hard nofile 12345
全局:* soft nofile 12345
全局 * hard nofile 12345 默认1024
局部在nginx配置文件中加入worker_rlimit_nofile 88888;
cpu亲和:进程不要在处理器中频繁切换,频率,减少性能损耗
在/proc/cpuinfo下记录着cpu的型号,核数等
physical id指多少个物理cpu型号,sort:排序,uniq:去重 wc -l 统计
cat /proc/cpuinfo | grep "physical id"|sort|uniq|wc -l 统计物理cpu数
cat /proc/cpuinfo | grep "physical id"|uniq统计核数,一般用物理cpu*核数 先按top在按1就能查看,
ps -eo pid,args,psr | grep [n]ginx 查看核的使用状态,重0开始
use epoll(nginx核心)事件驱动器
worker_connections 10240 //默认1024 限制worker进程能处理的连接
chaeset utf-8;表示字符集问题
access_log 表示请求日志存放地点当然了也可以用off关闭
sendfile on 表示对静态资源是有效的
需要建立一些环境测试sql注入
现在用的很广的war,防止sql注入:https://github.com/loveshell/ngx_lua_waf这个里面可以查看文档
yum install git 安装git命令,这样就可以git clone https.........//github上的地址默认保存在 ngx_lua_war/目录下
按照官方文档一步步就没问题
1.对于项目而言要了解需求,静态资源分配,不同目录不同规则,浏览器的缓存设计,时间设计,防盗链,流量的限制(灰度),静态资源压缩,代理的协议,正向代理,反向代理需不需要负载均衡,代理缓存设计,超时,请求头信息的传递,分片请求,........
设计评估:硬件:cpu,内存,硬盘。考虑并发。。
系统,用户权限,日志目录存放
关联服务,高度可用,keepalive,syslog。。。。
配置注意事项:合理配置,了解原理,关注日志