MySQL读写分离技术php
sphinx和mongodbhtml
通常都是拿nginx做为负载均衡器使用。Apache仍是web市场老大。全球的市场份额大概在(60%),可是全球前 top1000 的web网站中,nginx占据首位。linux
内容nginx |
重要性c++ |
nginx简介web |
※sql |
常见web服务器分类mongodb |
※数据库 |
哪些地方在用nginxvim |
※ |
ngnix的安装(Linux下) |
※※ |
lnmp搭建(lamp) |
※※ |
ngnix负载均衡器配置(工做) |
※※ |
扩展知识(tengine 淘宝) |
※ |
nginx是一个高性能的web服务器,同时也是一个邮件代理服务器,同时仍是一个负载均衡器。
1. web服务器:相似Apache(httpd)提供web服务器(用的其次)
2. 邮件代理服务器:主要用来作邮件的转发(nginx早起的设计也是为了邮件转发,初衷,用的最少)
3. 负载均衡器:用来转发用户的web请求,给web服务器来处理(尤为是在均衡器的时候,有其独特的优点,这也是目前互联网用它最多的地方)
负载均衡器:软件和硬件
软件:nginx(七层,简单配置)和lvs(四层,功能强大)
硬件:f5 (游戏和银行)
负载均衡集群:由负载均衡器组成的集群就是负载均衡集群
集群:就是多台服务器为了完成某一个相同的任务而组成的架构。(多台服务器完成)
若是给服务器集群增长一个备用的监控(高可用集群)
高可用集群衡量的标准:一年中无端障的时间/(一年中无端障的时间+修复的时间)
通常是9的数量来衡定。若是没有修复(100%) 99.9% 99.99% 99.999%
若是是5个9 一年下来故障的时间大概就是 5 分钟。
建议:游戏公司、电商公司
游戏公司:转岗(php开发、Linux管理、MySQL、自动化运维、erlang 热备份)-》大数据
电商公司:纯开发新的系统,主要是功能的开发和维护。
建站公司:若是技术相对来讲较弱。
微信:相对来讲不建议去了。(微信分销系统)
【------内存----】 软件(操做系统)开机--- 自举 BIOS(cmos硬件设备---生产商写入一段代码 读)---硬盘(分区 MBR 主引导记录--- 分区信息--操做系统C盘)
格式化磁盘(数据所有存在)----- 使用专门的工具--- 0 1 重写
nginx是由俄国人开发,也开发卡巴斯基杀毒软件。还开发了一个叫作sphinx的软件(中文分词搜索)。
因为其性能很是优越,因此在中国的淘宝公司对其作了二次开发,造成了一款更适合在国内使用的web服务器,叫作tengine(web服务器)。目前不少国内大型站点,基本都是使用的tengine。
http://hustskyking.cnblogs.com/
问题:为何nginx(tengine)可以有很是好的性能,支撑更大的并发访问?
对于1u服务器(2w---dell服务器 性价比最高)这样的服务器使用nginx支撑静态的并发请求大概在3-5w并发没问题。
主要因为其架构设计的合理。而且因为Apache是早起的web服务器,压根就没有考虑大并发。而nginx是后期之秀,其设计的初衷也是为了大并发,主要解决了c10k的问题。
设计:epoll event 基于事件回调模型
问题:什么是C10k?
答:c:并发,意思就是当网站的并发数量达到10k以上,这个时候网站总体的性能就会急剧降低,须要使用新的的架构来设计(基于事件模型 event),nginx应用而生。
参考:http://blog.csdn.net/jysg9/article/details/7901321
http://rdc.gleasy.com/%E5%A6%82%E4%BD%95%E5%81%9A%E5%88%B0c100k_1.html
http://joyexpr.com/2013/11/22/c100k-4-kernel-tuning/
Apache为何这么流行:主要
明白:不少公司在效率和稳定性须要选择的状况下,有限考虑的是稳定性。
问题:nginx能够取代Apache服务器吗?
问题:nosql数据库能取代关系型数据库(MySQL)吗?
答:nginx从目前来看,是没法取代Apache这类web服务器。主要是因为Apache很是稳定和模块众多,而且已经拥有强大的市场。只能说着两个产品能够相辅相成的工做。谁都离不开谁了。
cdn的使用
tengine使用
淘宝使用
在Linux下作源码编译安装
注意:
# pcre库安装下,须要注意,安装这个库文件的时候,不须要指定安装路径 ./configure 便可
# netstat -tunple | grep 80
# ps aux | grep httpd
# iptbales -F (flush 刷新)
# setenforce 0
上面两种方式都是暂时关闭
注意:a. vsftpd是否开启
# service vsftpd status
# service vsftpd start | stop
b. 防火墙是否关闭
# iptables -L 查看
# iptables -F 关闭(F -- flush)
# service iptables stop 关闭
# service iptables stop 关闭防火墙
c. selinux是否关闭
selinux 是Linux下的一个安全管理软件,因为其安全级别很是高。(建议关闭使用)
# getenforce 查看
# setenforce 0 关闭
注意:这个关闭时基于会话。(只针对当前用户生效)
有时候须要全局生效,对全部的用户所有生效
解决方案:更改配置文件便可
可使用
# file fileName 查看文件类型
关闭selinux
# cd /etc/selinux/
# ls
# vim config
查看
修改
# cd /home/NAME
#cp nginx-1.8.0.tar.gz pcre-8.34.tar.gz /usr/local/src/
源码目录:
查看
# ./configure
# make 编译
# make install
解压
# tar -zxvf nginx-1.8.0.tar.gz
编译安装
# ./configure --prefix=/usr/local/nginx 收集操做的信息(检查c++编译器是否存在)
# make
# make install
安装成功,查看
8. 启动服务
注意:启动的时候须要检查 80 端口是否占用
浏览器查看
注意:没有浏览器的状况下,可使用
# curl -I http://localhost
-I 响应头
注意:一旦这个服务启动,会额外生成不少文件和文件夹
注意:若是服务器启动后,再其次启动会怎么样?
解决方案:关闭或者重启
目录相关:
备份配置文件
查看配置文件内容(格式)
mime.types
ActiveX脚本还有flash
长链接
虚拟主机配置:
目录
httpd段:
安全传输
注意:互联网上全部的服务都是基于TCP/IP的连接,而后根据端口区分服务
# /usr/local/nginx/sbin/nginx -t
注意:nginx的好处在于,重启能够直接不关闭服务器状况下,直接读取配置文件信息。
# /usr/local/nginx/sbin/nginx -s reload 从新加载配置文件,可是不关闭服务
注意:php也能做为一个单独的服务来运行,这种运行的模式叫作php-fpm模式,不在做为Apache一个模块使用。有单独的进程,端口,至关于一个软件运行。
php的fpm运行方式:使得php能够单独的做为一个服务运行,而不用做为一个模块被加载后才能使用。做为独立服务的时候,使用的端口是 9000 端口。nginx请求动态文件和 php-fpm服务通讯的时候 使用的协议为 fast-cgi 协议
cgi:common getway interface
注意:php-fpm须要 php-5.3.12之后的版本默认是支持
以前其余的版本须要打补丁。
编译
# ./configure --prefix=/usr/local/php --enable-fpm
# make
#make install
php脚本的动态文件目录是本身能够随意的设定的。
-s signal 信号 reload 信号
# /usr/local/nginx/sbin/nginx -s reload
注意:直接启动报错,须要知道配置文件信息
解决方案:
查看是否成功启动
注意:有一个php.ini配置的问题
解决:去源代码包copy便可
解决现实:
能够去处理web请求,将web请求分发给多个web服务器来响应的软件或者硬件
基于IP的
81端口
82端口
注意:理论上来讲,81主机和82主机的网站根目录里面的内容应该一致。默认是基于轮询的方式
能够修改成基于ip_hash的方法
tengine是由淘宝发起一个基于nginx的web服务器,作了二次开发
参考文档:http://tengine.taobao.org/book/chapter_05.html
目录查看
注意:检测端口 80
查看
网站根目录
其余命令和nginx彻底同样
扩展