nginx的使用
nginx的使用
一、nginx介绍
nginx是轻量级的web服务器,抗并发,只分发请求,不做处理;多个连接(万级别)可以对应一个进程;处理静态文件十分友好。
二、反向代理
在服务器端接收客户端的请求,然后把请求分发给具体的服务器进行处理,然后再将服务器的响应结果反馈给客户端。
==conf配置文件==
1 | server { |
三、负载均衡
客户端发送请求到反向代理服务器,反向代理服务器将请求按照一定的规则分发到不同的服务器进行处理,共同完成工作任务。
==五种算法==
轮询算法(默认)
按照时间顺序依次将请求分配到各台服务器当中,挂掉的服务器自动从列表中剔除
1 | upstream bakend { |
轮询权重算法
weight的值越大分配访问到的概率越高,主要用于后台服务器性能不均衡的情况下,或者在主从的情况下设置不同的权值,达到合理有效的利用主机资源。
1 | upstream bakend { |
p_hash(不常用)
每个请求按访问IP的哈希结果分配,使来自同一个IP的访客固定访问一台后端服务器,并且可以有效解决动态网页存在的session共享问题。
1 | upstream bakend { |
url_hash(不常用)
按访问的URL的哈希结果来分配请求,使每个URL定向到同一台后端服务器,可以进一步提高后端服务器缓存的效率。Nginx本身不支持url_hash,需要安装Nginx的hash软件包。
1 | upstream backend { |
fair算法(不常用)
fair算法可以根据页面大小和加载时间长短智能地进行负载均衡,根据后端服务器的响应时间来分配请求,响应时间短的优先分配。Nginx本身不支持fair,要安装upstream_fair模块才能使用。
1 | upstream backend { |
四、动静分离
Nginx是静态资源的服务器,访问http://localhost 会默认访问/root目录下面的index.html静态网页,所以静态资源可以直接放在Nginx上,动态请求由相应的后端服务器处理,实现动静分离。
1 | //静态网页 |
All articles in this blog are licensed under CC BY-NC-SA 4.0 unless stating additionally.