nginx做负载均衡配置文件

时间:2023-03-08 17:33:27
nginx做负载均衡配置文件

nginx做负载均衡是在反向代理的基础上做的,代码如下:

  1. ## Basic reverse proxy server ##
  2. ## Apache backend for www.baidu.com ##
  3. upstream henushang  {
  4. # 不过最好换成你们的服务器测试,因为我测试的时候使用jd和baidu的都没有连接成功,         # 换成自己的服务器就行了,估计是那里有限制,如果哪位知道,请指教
  5. server www.jd.com weight=1; # 或者ip:port这样形式也是可以的
  6. server www.baidu.com weight=9; # 或者ip:port这样形式也是可以的
  7. }
  8. ## Start www.baidu.com ##
  9. server {
  10. listen 80;
  11. server_name  www.henushang.cn;#监听的域名
  12. access_log  logs/henushang.access.log;
  13. error_log  logs/henushang.error.log;
  14. root   html;
  15. index  index.html index.htm index.php;
  16. ## send request back to apache ##
  17. location / {
  18. proxy_pass  http://henushang;#与上面的upstream名字相对应
  19. #Proxy Settings
  20. proxy_redirect     off;
  21. proxy_set_header   Host             $host;
  22. proxy_set_header   X-Real-IP        $remote_addr;
  23. proxy_set_header   X-Forwarded-For  $proxy_add_x_forwarded_for;
  24. proxy_next_upstream error timeout invalid_header http_500 http_502 http_503 http_504;
  25. proxy_max_temp_file_size 0;
  26. proxy_connect_timeout      90;
  27. proxy_send_timeout         90;
  28. proxy_read_timeout         90;
  29. proxy_buffer_size          4k;
  30. proxy_buffers              4 32k;
  31. proxy_busy_buffers_size    64k;
  32. proxy_temp_file_write_size 64k;
  33. }
  34. }

nginx做负载均衡有如下几种方式:

1、RR(默认)  每个请求按时间顺序逐一分配到不同的后端服务器,如果后端服务器down掉,能自动剔除。 例如:

  1. upstream tomcats {
  2. server 10.1.1.107:88  max_fails=3 fail_timeout=3s weight=9;
  3. server 10.1.1.132:80  max_fails=3 fail_timeout=3s weight=9;

2、ip_hash  每个请求按访问ip的hash结果分配,这样每个访客固定访问一个后端服务器,可以解决session的问题。 例如:

  1. upstream tomcats {
  2. ip_hash;
  3. server 10.1.1.107:88;
  4. server 10.1.1.132:80;
  5. }

3、fair(第三方)  按后端服务器的响应时间来分配请求,响应时间短的优先分配。

4、url_hash(第三方)  按访问url的hash结果来分配请求,使每个url定向到同一个后端服务器,后端服务器为缓存时比较有效。