什么是Nginx:
Nginx是一款高性能的http 服务器/反向代理服务器及电子邮件(IMAP/POP3)代理服务器
其特点是占有内存少,并发能力强,官方测试nginx能够支撑5万并发链接,并且cpu、内存等资源消耗却非常低,运行非常稳定
中国大陆使用nginx网站用户有:百度、京东、新浪、网易、腾讯、淘宝等
参考链接:http://blog.csdn.net/xlgen157387/article/details/49781487
Nginx应用场景:
http服务器:Nginx是一个http服务可以独立提供http服务,可以做网页静态服务器
邮件服务器:
虚拟主机:可以实现在一台服务器虚拟出多个网站
通过端口区分不同的主机
通过域名区分不同的主机
反向代理:当网站的访问量达到一定程度后,单台服务器不能满足用户请求,需要用多台服务器集群可以使用Nginx做反向代理
负载均衡:多台服务器可以平均分担负载,不会因为某台服务器负载高宕机而某台服务器闲置的情况
Nginx实现虚拟主机:
#端口号配置不同主机 server { listen 80; server_name xx.xxx.xx.xx; location / { root html; index index.html index.htm; } } server { listen 81; server_name xx.xxx.xx.xx; location / { root html; index index.html index.htm; } }
#域名配置不同主机 server { listen 80; server_name xx.com; location / { root html; index index.html index.htm; } } server { listen 80; server_name yy.com; location / { root html; index index.html index.htm; } }
Nginx实现代理:
conf/nginx.conf是Nginx的默认配置文件,也可以用nginx -c指定你的配置文件
正向代理:隐藏访问者的IP信息(FQ)
反向代理:隐藏被访问者的信息
#实现反向代理 #用户请求的是xx.com网址,实际相应的是yy.com upstream tomcat8082{ sever yy.com:8082; } server { listen 8082; server_name xx.com; location / { proxy_pass http://tomcat8082; index index.html index.htm; } }
Nginx集群:
#注意,此处的地址不需要带http://,否则在proxy_pass中被视为无效的地址
upstream tomcat8283{ server yy.com; server zz.com weight=2; } server{ listen 80; server_name xx.com; location /{ proxy_pass http://tomcat8283; index index.html index.htm; } }
Nginx实现负载均衡:
根据机器的处理性能分配适当的请求
#配置负载均衡 upstream tomcat8283{ server yy.com; server zz.com weight=2; } server{ listen 80; server_name xx.com; location /{ proxy_pass http://tomcat8283; index index.html index.htm; } }
Nginx高可用的原理:
要实现Nginx的高可用,需要实现备份机
Nginx作为负载均衡器,所有请求都到了Nginx,如果Nginx服务器宕机后端web服务器将无法提供服务,影响严重;
为了屏蔽负载均衡服务器的宕机,需要建立一个备份机;主服务器和备份机都运行高可用(High Availability)监控程序,通过传送诸如“I am alive”这一信息来监控对方的运行状况;当备份机不能在一定的时间内收到这样的信息时,它就接管主服务器的服务IP并继续提供负载均衡服务;当备份管理器又从主服务器收到信息后就释放服务IP,这样主服务器就开始再次提供负载均衡服务
Keepalived + nginx实现主备,防止单点故障