1、nginx简要:高性能HTTP与反向代理web服务器,是轻量级的服务器/反向代理服务器/电子邮件服务器,占用内存少,并发能力强,大部分热门门户网站又有使用。最大压力并发50000个,无间断运行,长期无需重启。
2、nginx的反向代理:
正向代理:一般为自建的服务器,与需要访问的服务器无关,一般用于中间转发代理,如无法访问外网时,使用代理服务器通过请求到代理服务器经其转发哒目标服务器进行
反向代理:一般为服务器自带的代理服务器,通常是客户端web需要访问的请求到服务器之前,需要先经过预先设置的代理服务器,经过代理服务器处理后再转发请求到实际服务的服务器中(以上为个人理解)
反向代理优点:仅暴露代理服务器地址,隐藏这是服务器地址,防止网络攻击服务器影响业务;当内部存在多台服务器时,解决session不共享问题,用户只需登录一次,所有的交互数据都经过代理服务器。
3、负载均衡:用于扩展网络设备、服务器带宽、增加吞吐量、加强网络数据处理能力、提高网络灵活性和可用性
首要条件是多个网元集群工作,共同完成任务
nginx的三种负载均衡方式
1)、轮询法(自动默认):
将请求按顺序逐一分配到不同的服务器上面,自动剔除down掉的服务器,适用于每台服务器配置相差不大,无状态且短平快的服务使,以及图片服务器集群、纯静态网页服务器集群
2)、weight权重(加权轮询):
通过概率轮询,使用weight:访问次数,用于集群服务器中性能差距大的情况,权重越大(比值也大)访问概率越大
3)、ip_hash:
以上两种均衡方式都为考虑到同一用户重复访问请求的情况,当重复访问时,上述两种方式随机分配的不一定是上次用户访问的同一台服务器导致用户先前的登录信息丢失,而ip_hash会通过ip计算出来某个值去指定访问某个服务器,因此只要用户ip不变,每次访问分配的服务器都是同一个,避开session丢失的问题。
nginx启动后分为work和master进程
Master进程的作用是:读取并验证配置文件nginx.conf;管理worker进程;
Worker进程的作用是:每一个Worker进程都维护一个线程(避免线程切换),处理连接和请求;注意Worker进程的个数由配置文件决定,一般和CPU个数相关(有利于进程切换),配置几个就有几个Worker进程。
nginx热部署:在修改配置文件nginx.conf后,不需要手动的去停掉nginx进程,不需要中断请求,就能让配置文件生效
方式一:修改配置文件后,主进程master负责推送给worker进程跟新配置信息,woker进程收到信息后,更新进程内部线程信息
方式二:修改配置文件后,重新生成新的worker进程,以新的配置去进程处理请求,新的请求提交给新的worker进程,老的worker进程继续处理未处理完的请求,等处理完成后,kill掉老的worker。
Linux中nginx使用方式:
./nginx 启动nginx
./nginx -s stop&quit 关闭nginx
./nginx -s reload 刷新配置