Nginx的作用是什么,在WEB服务前端配置Nginx的好处是什
相关视频
1.背景介绍
2.知识剖析
3.常见问题
4.解决方案
5.编码实战
6.扩展思考
7.参考文献
8.更多讨论
1.背景介绍
什么是Nginx?
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服务器,最大的好处得益于反向代理以及负载均衡的功能。
反向代理
客户端本来可以直接通过HTTP协议访问某网站应用服务器,网站管理员可以在中间加上一个Nginx,客户端请求Nginx,Nginx请求应用服务器,然后将结果返回给客户端,此时Nginx就是反向代理服务器。
既然服务器可以直接HTTP访问,为什么要在中间加上一个反向代理,不是多此一举吗?反向代理有什么作用?继续往下看,下面的负载均衡、虚拟主机等,都基于反向代理实现,当然反向代理的功能也不仅仅是这些。
反向代理负载均衡
当网站访问量非常大,网站各种服务越来越慢,一台服务器已经不够用了。于是将同一个应用部署在多台服务器上,将大量用户的请求分配给多台机器处理。同时带来的好处是,其中一台服务器万一挂了,只要还有其他服务器正常运行,就不会影响用户使用。
1.将请求轮询分配到应用服务器,也就是一个客户端的多次请求,有可能会由多台不同的服务器处理。
2.服务器的硬件配置可能有好有差,想把大部分请求分配给好的服务器,把少量请求分配给差的服务器,可以通过weight来控制。
负载均衡方式虚拟主机
有的网站访问量大,需要负载均衡。然而并不是所有网站都如此出色,有的网站,由于访问量太小,需要节省成本,将多个网站部署在同一台服务器上。
例如将www.aaa.com和www.bbb.com两个网站部署在同一台服务器上,两个域名解析到同一个IP地址,但是用户通过两个域名却可以打开两个完全不同的网站,互相不影响,就像访问两个服务器一样,所以叫两个虚拟主机。虚拟主机的原理是通过HTTP请求头中的Host是否匹配server_name来实现的,客户端通过不同的域名访问,根据server_name可以反向代理到对应的应用服务器。
4.解决方案
5.编码实战
6.扩展思考
还有别的反向代理服务器吗?
其他反向代理服务器7.参考文献
http://blog.csdn.net/zhongguozhichuang/article/details/52816887
http://blog.csdn.net/zhu_tianwei/article/details/19396527
8.更多讨论
Nginx 反向代理为什么可以提高网站性能?
提高的是吞吐量,而不是性能。
Nginx出现502 Bad Gateway错误?
配置文件:
proxy_next_upstream error timeout invalid_headerhttp_500http_503; 或者尝试设置: large_client_header_buffers 4 32k;
https://ptteng.github.io/PPT/PPT-java/java-task3nginx.html#/