什么是Nginx?
Nginx 是一款高性能的 http 服务器/反向代理服务器及电⼦邮件(IMAP/POP3)代理服务器。由俄罗斯的程序设计师Igor Sysoev所开发,官方测试 nginx 能够支撑 5 万并发链接,并且cpu、内存等资源消耗却非常低,运行非常稳定。
为什么使用Nginx
当网站访问量小的时候(低并发的情况下),一台服务器即可满足我们的需求,因此使用tomcat返回内容给用户即可。
但是当平台的访问量慢慢变大(并发请求急剧增加)的时候,一台服务器无法满足我们的需求了,我们就要进行横向扩展(增加服务器)。此时,用户想访问。我们就要增加一个代理服务器来帮我们转发和处理请求,我们希望这个代理服务器帮助我们接受用户请求,然后将用户请求按照规则帮我们转发到不同的服务器节点上,既然转发都转发了,我们不妨再要求多一点,我们还想让这个代理服务器可以按照不同服务器的性能提供权重选择,即性能高的服务器接受的请求多一点,反之接受的请求少一些,而Nginx就可以帮助我们解决这个问题。
Nginx常用命令
nginx安装不做赘述,下载好解压即可使用。
cd /usr/local/bin/sbin/
./nginx 启动
./nginx -s stop 停止
./nginx -s quit 安全退出
./nginx -s reload 重新加载配置文件
ps aux|grep nginx 查看nginx进程
Nginx反向代理与负载均衡
反向代理
反向代理(Reverse Proxy)⽅式是指以代理服务器来接受internet上的连接请求,然后将请求转发给内部⽹络上的服务器,并将从服务器上得到的结果返回给internet上请求连接的客户端,此时代理服务器对外就表现为⼀个反向代理服务器。
⾸先我们先理解正向代理,如下图:
正向代理是针对你的客户端,⽽反向代理是针对服务器的,如下图
负载均衡
负载均衡,英⽂名称为Load Balance,其意思就是分摊到多个操作单元上进⾏执⾏,例如Web服务器、FTP服务器、企业关键应⽤服务器和其它关键任务服务器等,从⽽共同完成⼯作任务。
Nginx提供的负载均衡策略有两种:内置策略和拓展策略。内置策略为轮询,Iphash。不对拓展策略做展述。
假设有9个请求,图示如下
轮询
加权轮询
权重越大,服务器被发现的可能性越大,被转发请求的几率越大。
iphash
iphash 对客户端请求的ip进行hash操作,然后根据hash结果来将同一个客户端的ip请求分发给同一台服务器进行处理,可以解决session不共享的问题。