发表于: 2017-11-12 22:30:48

1 967


今天完成的内容:

(1)整理小课堂。

小课堂课题:Nginx的作用是什么,在WEB服务前端配置Nginx的好处是什么,除了Nginx,还有别的反向代理服务器吗?

1、背景介绍

Nginx(engine x)是一个高性能的HTTP和反向代理服务器,是一款轻量级的Web 服务器/反向代理服务器及电子邮件(IMAP/POP3)代理服务器。其特点是占有内存少,并发能力强,事实上nginx的并发能力确实在同类型的网页服务器中表现较好,中国大陆使用nginx网站用户有:百度、京东、新浪、网易、腾讯、淘宝等。Nginx 可以在大多数 Unix、Linux OS 上编译运行,并有 Windows 移植版。

2、知识剖析

Nginx的作用是什么?

(1)Nginx 是一个很强大的高性能Web服务器,在高连接并发的情况下,Nginx是Apache服务器不错的替代品,能够支持高达 50,000 个并发连接数的响应。

(2)Nginx作为反向代理服务器,Nginx在反向代理时,提供性能稳定,并且能够提供配置灵活的转发功能,Nginx可以根据不同的正则匹配,采取不同的转发策略,比如在图片文件结尾的走文件服务器,动态页面走web服务器,对返回结果进行错误页跳转,异常判断等。如果被分的服务器存在异常,他可以将请求重新转发给另外一台服务器,然后自动去除异常服务器。

(3)Nginx作为负载均衡服务器:Nginx 既可以在内部直接支持 Rails 和 PHP 程序对外进行服务,也可以支持作为 HTTP代理服务器对外进行服务。

(4)Nginx作为邮件代理服务器:Nginx 同时也是一个非常优秀的邮件代理服务器(最早开发这个产品的目的之一也是作为邮件代理服务器)。

 3、常见问题

在WEB服务前端配置Nginx的好处是什么?

配置Nginx服务器,最大的好处得益于反向代理以及负载均衡的功能。

1.反向代理

客户端本来可以直接通过HTTP协议访问某网站应用服务器,网站管理员可以在中间加上一个Nginx,客户端请求Nginx,Nginx请求应用服务器,然后将结果返回给客户端,此时Nginx就是反向代理服务器。既然服务器可以直接HTTP访问,为什么要在中间加上一个反向代理,不是多此一举吗?反向代理有什么作用?继续往下看,下面的负载均衡、虚拟主机等,都基于反向代理实现,当然反向代理的功能也不仅仅是这些。

2.负载均衡

当网站访问量非常大,网站各种服务越来越慢,一台服务器已经不够用了。于是将同一个应用部署在多台服务器上,将大量用户的请求分配给多台机器处理。同时带来的好处是,其中一台服务器万一挂了,只要还有其他服务器正常运行,就不会影响用户使用。

1.将请求轮询分配到应用服务器,也就是一个客户端的多次请求,有可能会由多台不同的服务器处理。

2.服务器的硬件配置可能有好有差,想把大部分请求分配给好的服务器,把少量请求分配给差的服务器,可以通过weight来控制。 

负载均衡:

轮询:

upstream myapp {  

    server192.168.20.1:8080; # 应用服务器1  

    server192.168.20.2:8081; # 应用服务器2  

}  

server {  

    listen80;  

    location / {  

        proxy_pass http://myapp;  

    }  

}

分配权重:

upstream myapp {  

    server192.168.20.1:8080weight=3; # 该服务器处理3/4请求  

    server192.168.20.2:8080; # weight默认为1,该服务器处理1/4请求  

}  

server {  

    listen80;  

    location / {  

        proxy_pass http://myapp;  

    }  

}    

3.虚拟主机

有的网站访问量大,需要负载均衡。然而并不是所有网站都如此出色,有的网站,由于访问量太小,需要节省成本,将多个网站部署在同一台服务器上。

例如将www.aaa.com和www.bbb.com两个网站部署在同一台服务器上,两个域名解析到同一个IP地址,但是用户通过两个域名却可以打开两个完全不同的网站,互相不影响,就像访问两个服务器一样,所以叫两个虚拟主机。虚拟主机的原理是通过HTTP请求头中的Host是否匹配server_name来实现的,客户端通过不同的域名访问,根据server_name可以反向代理到对应的应用服务器。

4、还有别的反向代理服务器吗?

明天的计划:开始任务六。

遇到的问题:几乎没有。

收获:巩固了nginx相关知识。

禅道:http://task.ptteng.com/zentao/task-view-10689.html



返回列表 返回列表
评论

    分享到