暂无图片
暂无图片
暂无图片
暂无图片
暂无图片

nginx代理解说详解

原创 雪狼sunny 2021-12-31
394

nginx支持的负载均衡调度算法方式如下:

  1. weight轮询(默认):接收到的请求按照顺序逐一分配到不同的后端服务器,即使在使用过程中,某一台后端服务器宕机,nginx会自动将该服务器剔除出队列,请求受理情况不会受到任何影响。 这种方式下,可以给不同的后端服务器设置一个权重值(weight),用于调整不同的服务器上请求的分配率;权重数据越大,被分配到请求的几率越大;该权重值,主要是针对实际工作环境中不同的后端服务器硬件配置进行调整的。
  2. ip_hash:每个请求按照发起客户端的ip的hash结果进行匹配,这样的算法下一个固定ip地址的客户端总会访问到同一个后端服务器,这也在一定程度上解决了集群部署环境下session共享的问题。
  3. fair:智能调整调度算法,动态的根据后端服务器的请求处理到响应的时间进行均衡分配,响应时间短处理效率高的服务器分配到请求的概率高,响应时间长处理效率低的服务器分配到的请求少;结合了前两者的优点的一种调度算法。但是需要注意的是nginx默认不支持fair算法,如果要使用这种调度算法,请安装upstream_fair模块
  4. url_hash:按照访问的url的hash结果分配请求,每个请求的url会指向后端固定的某个服务器,可以在nginx作为静态服务器的情况下提高缓存效率。同样要注意nginx默认不支持这种调度算法,要使用的话需要安装nginx的hash软件。

每次在调试nginx的时候都是对proxy的参数调试一知半解记忆不清今天整理一下防止自己忘记了又要去搜索:

1、proxy_temp_path                 /tmp/proxy_temp;

这个参数配置在http,server,location

其主要作用就是在一个指定的本地目录来缓存较大的代理请求。一般都设置在临时目录中。

 

2、proxy_buffering on;

这个参数配置在http,server,location

这个指令用于开启对被代理服务器的应答缓存。

当此参数处于off状态的时候,从被代理服务器上获取的响应内容会直接传送给,发送请求的客户端。

当此参数处于on状态的时候,会从被代理服务器的应答保存到缓存里边,当应答无法在内存保存下的时候,就将部分写入磁盘。

 

3、proxy_buffer_size               4k;

该指令设置缓冲区大小,从被代理服务器取得的响应内容,会先读取放置到这里.小的响应header通常位于这部分响应内容里边.设置的过小,可能会产生502错误。

 

4、proxy_buffers                   256 4k;

这个指令用于设置从被代理服务器读取应答内容的缓存区的数目和大小。数目可以任意定,但是一个缓存区的大小一般就是4k或者8k。

 

5、proxy_busy_buffers_size         8k;

在系统繁忙的时候可以申请更大的proxy_buffers缓冲区。一般就设置成proxy_buffers的二倍。

 

6、proxy_connect_timeout

这个指令用于设置和被代理服务器链接的超时时间,是代理服务器发起握手等待响应的超时时间。不要设置的太小,否则会报504错误。

 

7、proxy_read_timeout 60

这个参数配置在http,server,location

此指令用于设置从被代理服务器读取应答内容的超时时间。

 

8、proxy_max_temp_file_size 1G

设置临时文件的大小

 

9、proxy_method

用于允许代理其他HTTP方法。

10、 proxy_redirect off; 


       关闭重定向

11、proxy_cache cache;	# 设置代理缓存更加复杂的nginx代理配置还要看官方文档,这里记录的满足日常的代理配置应用。
「喜欢这篇文章,您的关注和赞赏是给作者最好的鼓励」
关注作者
【版权声明】本文为墨天轮用户原创内容,转载时必须标注文章的来源(墨天轮),文章链接,文章作者等基本信息,否则作者和墨天轮有权追究责任。如果您发现墨天轮中有涉嫌抄袭或者侵权的内容,欢迎发送邮件至:contact@modb.pro进行举报,并提供相关证据,一经查实,墨天轮将立刻删除相关内容。

评论