Nginx
Nginx介绍:
Nginx是一款高性能的http 服务器/反向代理服务器及电子邮件(IMAP/POP3)代理服务器。
Nginx功能:
http服务器、虚拟主机、反向代理、负载均衡、主备服务。
实现原理:
1,虚拟主机
1),通过端口区分不同主机
Nginx的配置文件:/usr/local/nginx/conf/nginx.conf
修改或添加配置文件service节点,一个节点就是一个虚拟机
重新加载配置文件 [root@localhost nginx]# sbin/nginx -s reload
2),通过端口区分不同主机
修改window的hosts文件:(C:\Windows\System32\drivers\etc)
配置域名和ip的映射关系,hosts文件中配置了域名和ip的对应关系,不需要走dns服务器。如:192.168.25.148 www.taobao.com
修改Nginx的配置文件
修改名称节点 server_name 为 www.baidu.com,修改父节点root为html-baidu
2,反向代理
View Code
安装两个tomcat,分别运行在8080和8081端口。
启动两个tomcat。
反向代理服务器的配置
1 upstream tomcat1 { 2 server 192.168.25.148:8080; 3 } 4 server { 5 listen 80; 6 server_name www.sina.com.cn; 7 8 #charset koi8-r; 9 10 #access_log logs/host.access.log main; 11 12 location / { 13 proxy_pass http://tomcat1; 14 index index.html index.htm; 15 } 16 } 17 upstream tomcat2 { 18 server 192.168.25.148:8081; 19 } 20 server { 21 listen 80; 22 server_name www.sohu.com; 23 24 #charset koi8-r; 25 26 #access_log logs/host.access.log main; 27 28 location / { 29 proxy_pass http://tomcat2; 30 index index.html index.htm; 31 } 32 }
nginx重新加载配置文件
配置域名
在hosts文件中添加域名和ip的映射关系,如:192.168.25.148 www.sina.com.cn
3,负载均衡
可以根据服务器的实际情况调整服务器权重。权重越高分配的请求越多,权重越低,请求越少。默认是都是1
1 upstream tomcat2 { 2 server 192.168.25.148:8081; 3 server 192.168.25.148:8082 weight=2; 4 }
4,高可用
为了屏蔽负载均衡服务器的宕机,需要建立一个备份机。主服务器和备份机上都运行高可用(High Availability)监控程序,通过传送诸如“I am alive”这样的信息来监控对方 的运行状况。当备份机不能在一定的时间内收到这样的信息时,它就接管主服务器的服务IP并继续提供负载均衡服务;当备份管理器又从主管理器收到“I am alive”这样的信息 时,它就释放服务IP地址,这样的主服务器就开始再次提供负载均衡服务。
5,主备(与keepalived结合)
keepalived是集群管理中保证集群高可用的一个服务软件,用来防止单点故障。
Keepalived的作用是检测web服务器的状态,如果有一台web服务器死机,或工作出现故障,Keepalived将检测到,并将有故障的web服务器从系统中剔除,当web服务器工作正常后Keepalived自动将web服务器加入到服务器群中,这些工作全部自动完成,不需要人工干涉,需要人工做的只是修复故障的web服务器。
Nginx特点:
1、更快
2、高扩展性,跨平台
3、高可靠性:用于反向代理,宕机的概率微乎其微
4、低内存消耗
5、单机支持10万以上的并发连接
6、热部署
7、最自由的BSD许可协议
选择Nginx的核心理由还是它能在支持高并发请求的同时保持高效的服务。
Nginx特点:
1、作为Web服务器,Nginx处理静态文件、索引文件,自动索引的效率非常高。
2、作为代理服务器,Nginx可以实现无缓存的反向代理加速,提高网站运行速度。
3、作为负载均衡服务器,Nginx既可以在内部直接Rails和PHP,也可以支持HTTP大力服务器对外进行服务,同时还支持简单的容错和利用算法进行负载均衡。
4、在性能方面,Nginx是专门为性能优化而开发的,在实现上非常注重效率。他采用内核Poll模型,可以支持更多的并发连接,最大可以支持对50000个并发连接的响应,而且占用很顶的内存资源。
5、在稳定性方面,Nginx采取了分阶段资源分配技术,使得CPU与内存的占用率非常低。Nginx官方表示,Nginx保持10000个没有活动的连接,而这些连接只占用2.5MB的内存,因此,类似DOS这样的攻击对Nginx来说基本上是没有任何作用的。
6、在高可用性方面,Nginx支持热部署,启动速递特别迅速,因此可以在不间断服务的情况下,对软件版本或者配置进行升级,即使运行数月也无需重新启动,几乎可以做到7×24小时不间断地运行。