nginx做负载均衡配置文件

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

Java代码  

  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掉,能自动剔除。 例如:

Java代码  

  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的问题。 例如:

Java代码  

  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定向到同一个后端服务器,后端服务器为缓存时比较有效。

时间: 2024-11-09 02:39:42

nginx做负载均衡配置文件的相关文章

使用nginx做负载均衡造成的session共享问题

PHP服务器有多台,用nginx做负载均衡,这样同一个IP访问同一个页面会被分配到不同的服务器上,如果session不同步的话,就会出现很多问题,比如说最常见的登录状态,下面提供了几种方式来解决session共享的问题: 1.不使用session,换用cookie session是存放在服务器端的,cookie是存放在客户端的,我们可以把用户访问页面产生的session放到cookie里面,就是以cookie为中转站.你访问web服务器A,产生了session然后把它放到cookie里面,当你的

Nginx做负载均衡时session共享问题详解

用nginx做负载均衡时,同一个IP访问同一个页面会被分配到不同的服务器上,如果session不同步的话,就会出现很多问题,比如说最常见的登录状态. 再者Nginx连接Memcached集群时,Nignx的请求从memcached服务器中根据key获得了value则直接返回value,如果没有获得到value则去MySQL中查询再返回. location / { set $memcached_key "$request_uri"; #设置请求memcached服务器的key memca

Nginx 做负载均衡的几种轮询策略

网上看见nginx的upstream目前支持的5种方式的分配,摘录备忘. 1.轮询(默认)每个请求按时间顺序逐一分配到不同的后端服务器,如果后端服务器down掉,能自动剔除.upstream backserver {server 192.168.0.14;server 192.168.0.15;} 2.weight指定轮询几率,weight和访问比率成正比,用于后端服务器性能不均的情况.upstream backserver {server 192.168.0.14 weight=10;serv

Nginx做负载均衡无法加载css,js

配置完nginx,访问tomcat时发现,tomcat显示如下图: 从这个状态可以看出,猜测可能是css和js这些文件没有加载. 不仅如此,访问部署在tomcat项目的页面也是一样的,不同nginx访问tomcat下的项目时这样的: 通过nginx作为代理服务器,访问到的页面是这样的: 这些情况显然都是因为通过nginx作为负载均衡服务器时候,无法正常加载css和js这些文件而出现这样的问题,通过一番搜索和查找,修改了nginx下的nginx.conf配置文件才得以正常显示,修改的配置如下: 增

nginx做负载均衡 tomcat获得客户端真实ip

因项目需要做tomcat2台机器的负载均衡,配置好负载环境后,发现tomcat的日志一律是我前置nginx代理服务器的ip 通过百度教材发现需要修改nginx的配置文件,修改代理头信息,传递给后方,后方进行获取即可. 类似教材网上很多.我经过试验也发现能用.大概的思路就行 nginx配置文件location /  处需要增加 proxy_set_header X-Real-IP $remote_addr;参数 然后tomcat 的配置文件server.xml日志定义那里需要增加%{X-Real-

利用Nginx做负载均衡

最近正在研究Nginx,Nginx作为反向代理服务器,可以对Web服务器提供加速,并且具有负载均衡的功能. 首先我要在官网下载Nginx(http://nginx.org/en/download.html),目前最新稳定的版本为1.0版本,Linux和Windows版本我都下下来了,在两台服务器上做网站负载均衡. 在Windows版本中,将压缩包进行解压,执行命令: 1 start nginx 这样就可以启动nginx服务了.而执行命令: 1 nginx -s stop 可以停止服务. 这是我在

nginx 做负载均衡

最近正在研究Nginx,Nginx作为反向代理服务器,可以对Web服务器提供加速,并且具有负载均衡的功能. 首先我要在官网下载Nginx(http://nginx.org/en/download.html),目前最新版本为1.9.5版本,Linux和Windows版本我都下下来了,在两台服务器上做网站负载均衡. 在Windows版本中,将压缩包进行解压,执行命令: start nginx 这样就可以启动nginx服务了.而执行命令:nginx -s stop可以停止服务. 执行命令 nginx.

生产环境使用nginx做负载均衡配置的五种策略

nginx的upstream目前支持5种方式的分配1.轮询(默认) 每个请求按时间顺序逐一分配到不同的后端服务器,如果后端服务器down掉,能自动剔除. 2.weight指定轮询几率,weight和访问比率成正比,用于后端服务器性能不均的情况. 例如: upstream bakend { server 192.168.0.14 weight=10; server 192.168.0.15 weight=10; } 3.ip_hash每个请求按访问ip的hash结果分配,这样每个访客固定访问一个后

关于nginx做负载均衡时backend server取real ip

首先: 做为loadblance的nginx要添加下面的配置: proxy_set_header        Host $host; proxy_set_header        X-Real-IP $remote_addr; proxy_set_header        X-Forwarded-For $proxy_add_x_forwarded_for; X-Real-IP和X-Forwarded-For可以2选1,也可以都打开: 更多,查看 http://blog.chinaunix