Nginx基础入门(反向代理,负载均衡理论)
Nginx是什么?
Nginx是一个使用c语言开发的高性能的http服务器及反向代理服务器,及电子邮件(IMAP/POP3)代理服务器,同时也是一个非常高效的反向代理、负载均衡
Nginx的优点
- 高并发。静态小文件
- 占用资源少。2万并发、10个线程,内存消耗几百M。
- 功能种类比较多。web,cache,proxy。每一个功能都不是特别强。
- 支持epoll模型,使得nginx可以支持高并发。
- nginx 配合动态服务和Apache有区别。(FASTCGI 接口)
- 利用nginx可以对IP限速,可以限制连接数。
- 配置简单,更灵活。
1、反向代理(有效的保证服务器的安全)
2、负载均衡(可以有效的缓解,单台服务器的压力)
3、动静分离(使用动静分离,可以将静态资源,放在代理服务器)
正向代理:子网里的电脑通过访问代理服务器的公网 ip 地址,然后在通过代理服务器去访问公网的百度服务器,
此时中间的就是代理服务器,代理子网去访问公网里的服务器,这个过程就是正向代理.(代理客户端)
反向代理:是用来代理服务器的,代理我们要访问的目标服务器。代理服务器接受请求, 然后将请求转发给内部网络的服务器,
并将从服务器上得到的结果返回给客户端,此时代理 服务器对外就表现为一个服务器。(代理服务器)
什么是负载均衡?
负载均衡即是代理服务器将接收的请求均衡的分配到各台服务器中,使流量平均分配,分担服务器的压力,避免服务器宕机.
作用:负载均衡主要解决网络阻塞问题,提高服务器响应速度,服务就近提供,达到更好的访问质量,减少后台服务器大并发压力
详情【转载】:https://www.cnblogs.com/1214804270hacker/p/9325150.html
负载均衡的常用策略:
- 轮询(默认)
- weight(权重方式)
- ip_hash(依据ip分配方式)
- least_conn(最少连接方式)
nginx实现动静分离
现在假使有一台服务器,这台服务器,上面部署了Tomcat,里面8080端口有J2EE的服务,通过浏览器可以正常浏览网页。现在有一个问题tomcat是一个比较全面的web容器,对静态网页的处理,应该是比较费资源的,特别是每次都要从磁盘读取静态页面,然后返回。这中间会消耗Tomcat的资源,可能会使那些动态页面解析性能影响。秉承Linux哲学,一个软件只做一件事的原则。Tomcat就应该只处理JSP动态页面。这里就用到以前了解的Nginx来进行反向代理。第一步代理,实现动静网页分离。