nginx负载均衡简单配置

准备三台虚拟机来做这个实验:

172.16.160.99        web服务器
172.16.160.103      web服务器
172.16.160.98        负载均衡服务器

首先三台电脑预装nginx软件:

1、yum安装nginx

yum install nginx

3、启动nginx

chkconfig nginx on  
service nginx start

向web服务器中放入测试文件:

<!DOCTYPE html>
<html>
<head>
<title>Welcome to nginx!</title>
<style>body {width: 35em;margin: 0 auto;font-family: Tahoma, Verdana, Arial, sans-serif;}
</style>
</head>
<body>
<h1>99 !</h1>
<p>If you see this page, the nginx web server is successfully installed and
working. Further configuration is required.</p><p>For online documentation and support please refer to
<a href="http://nginx.org/">nginx.org</a>.<br/>
Commercial support is available at
<a href="http://nginx.com/">nginx.com</a>.</p><p><em>Thank you for using nginx.</em></p>
</body>
</html>

配置负载均衡服务器:

vi /etc/nginx/nginx.conf

内容如下:

user  nginx;
worker_processes  1;error_log  /var/log/nginx/error.log warn;
pid        /var/run/nginx.pid;events {worker_connections  1024;
}http {include       /etc/nginx/mime.types;default_type  application/octet-stream;log_format  main  '$remote_addr - $remote_user [$time_local] "$request" ''$status $body_bytes_sent "$http_referer" ''"$http_user_agent" "$http_x_forwarded_for"';access_log  /var/log/nginx/access.log  main;sendfile        on;#tcp_nopush     on;
keepalive_timeout  65;#gzip  on;
upstream store {server 172.16.160.103:80;server 172.16.160.99:80;}server {listen       80;server_name  store;charset utf-8;location / {root   html;index  index.html index.htm;proxy_pass        http://store;
[root@localhost conf.d]# cat /etc/nginx/nginx.conf

user  nginx;
worker_processes  1;error_log  /var/log/nginx/error.log warn;
pid        /var/run/nginx.pid;events {worker_connections  1024;
}http {include       /etc/nginx/mime.types;default_type  application/octet-stream;log_format  main  '$remote_addr - $remote_user [$time_local] "$request" ''$status $body_bytes_sent "$http_referer" ''"$http_user_agent" "$http_x_forwarded_for"';access_log  /var/log/nginx/access.log  main;sendfile        on;#tcp_nopush     on;
keepalive_timeout  65;#gzip  on;
upstream store {          server 172.16.160.103:80;server 172.16.160.99:80;    }server {     listen       80;     server_name  store;     charset utf-8;     location / {     root   html;     index  index.html index.htm;     proxy_pass        http://store;     proxy_set_header  X-Real-IP  $remote_addr;     client_max_body_size  100m;  } }include /etc/nginx/conf.d/*.conf;
}

下面浏览器打开:172.16.160.98,如果99、103交替显示则表明试验成功。

拓展:

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

2、weight
指定轮询几率,weight和访问比率成正比,用于后端服务器性能不均的情况。
例如:
upstream bakend {
server 192.168.159.10 weight=10;
server 192.168.159.11 weight=10;
}

3、ip_hash
每个请求按访问ip的hash结果分配,这样每个访客固定访问一个后端服务器,可以解决session的问题。
例如:
upstream resinserver{
ip_hash;
server 192.168.159.10:8080;
server 192.168.159.11:8080;
}

4、fair(第三方)
按后端服务器的响应时间来分配请求,响应时间短的优先分配。
upstream resinserver{
server server1;
server server2;
fair;
}

5、url_hash(第三方)

按访问url的hash结果来分配请求,使每个url定向到同一个后端服务器,后端服务器为缓存时比较有效。
例:在upstream中加入hash语句,server语句中不能写入weight等其他的参数,hash_method是使用的hash算法

upstream resinserver{
server squid1:3128;
server squid2:3128;
hash $request_uri;
hash_method crc32;
}

tips:

upstream resinserver{#定义负载均衡设备的Ip及设备状态
ip_hash;
server 127.0.0.1:8000 down;
server 127.0.0.1:8080 weight=2;
server 127.0.0.1:6801;
server 127.0.0.1:6802 backup;
}

在需要使用负载均衡的server中增加
proxy_pass http://resinserver/;

每个设备的状态设置为:
1.down 表示单前的server暂时不参与负载
2.weight 默认为1.weight越大,负载的权重就越大。
3.max_fails :允许请求失败的次数默认为1.当超过最大次数时,返回proxy_next_upstream 模块定义的错误
4.fail_timeout:max_fails次失败后,暂停的时间。
5.backup: 其它所有的非backup机器down或者忙的时候,请求backup机器。所以这台机器压力会最轻。

nginx支持同时设置多组的负载均衡,用来给不用的server来使用。

client_body_in_file_only 设置为On 可以讲client post过来的数据记录到文件中用来做debug
client_body_temp_path 设置记录文件的目录 可以设置最多3层目录
location 对URL进行匹配.可以进行重定向或者进行新的代理 负载均衡

转载于:https://www.cnblogs.com/wangmo/p/7161437.html

nginx负载均衡简单配置相关推荐

  1. php nginx 负载均衡简单配置过程

    1.负载均衡 一台计算机的计算资源是有效的,当超大流量请求时,就可能导致请求等待或者服务器死机的情况,为了解决大流量访问的问题,可以搭建分布式,将请求分发到不同计算机,就可以解决大流量请求的问题. 长 ...

  2. Nginx负载均衡常用配置

    搭建实验环境(使用docker部署两台nginx容器) 1)使用搭建第一台nginx服务 [root@linux-node4 ~]# docker container run -d --name we ...

  3. Nginx负载均衡与配置Nginx的ssl

    2019独角兽企业重金招聘Python工程师标准>>> Nginx负载均衡 什么是负载均衡? 负载均衡就是,把请求均衡地分发到后端的各个机器上面. 比如,A B C D 四台WEB服 ...

  4. Nginx 负载均衡 初步配置验证 笔记

    需求 有两台windows服务器,iis承载WebAPI,测试使用Windows平台Nginx做负载均衡验证. A机IP及Web端口:192.168.7.54:8052. B机IP及Web端口:192 ...

  5. nginx负载均衡的配置

    负载均衡可以配置权重: upstream myserver{ server 192.168.17.129:8080 weight=10 server 192.168.17.129:8081 weigh ...

  6. nginx 负载均衡 404_nginx配置负载均衡

    - 负载均衡是网络基础架构的一个非常关键的组成部分,有了负载均衡,我们可以把应用服务器部署多台,避免了服务宕机,也增强了服务的性能及可用性. - 负载均衡的算法有很多 ,这里只是简单提下, - **轮 ...

  7. Nginx负载均衡的配置【内网】

    快速理解 有两台服务器(网段相同,可以理解为两台不同物理地址的服务器),分别是155和156,他们分别都可以通过 自己的IP:8080 访问tomcat服务器中的页面. 169.254.38.155: ...

  8. nginx 负载均衡proxy 配置

    在http模块 加入 upstream fuzai{ server 服务器ip;      #有端口的话 ip:端口 默认80端口可以不写 } 在server 模块需要负载的location加入 lo ...

  9. Tomcat集群快速入门:Nginx负载均衡配置,常用策略,场景及特点

    Nginx负载均衡的配置,常用策略,场景,以及特点,放到这里是需要更细化的讲解,毕竟一期还没有做集群,而我们这一期做集群的时候,很多点要单独拿出来深入讲解,第一个轮询,默认的一个配置,简单也好理解,第 ...

最新文章

  1. 一次线上生产问题的全面复盘 【定位-分析-解决】
  2. Java接口interface
  3. python stm32-【ST开发板评测】使用Python来开发STM32F411
  4. accsess转成mysql语句_access数据库转mysql经验分享
  5. 一、PHP基础——表单传值、上传文件
  6. centos将某一目录权限给用户_centos7如何新建普通权限用户,仅能访问指定目录,使用gcc?...
  7. STM32F103:三.(1)步进电机
  8. 手把手教你写ORM(七)
  9. 阶段1 语言基础+高级_1-3-Java语言高级_05-异常与多线程_第3节 线程同步机制_3_线程安全问题产生的原理...
  10. 学维修电脑要多久_学古筝难吗?古筝要多久才能学会?
  11. python调用通达信函数用户指标_通达信公式之间如何调用,如何引用通达信tdxwave指标...
  12. 大型POS机收银系统源码MVC架构
  13. 中国雅虎首页改版彻底与口碑网剥离
  14. 万全服务器t350装系统_联想万全350安装win2003
  15. 什么软件可以支持视频转换成文字?
  16. Varargs(可变个数形参)
  17. 【iOS-Cocos2d游戏开发之十】添加粒子系统特效并解决粒子特效与Layer之间的坐标问题;
  18. shell脚本实操学习之函数、正则表达式
  19. php拼接全景图,Opencv使用Stitcher类图像拼接生成全景图像
  20. 灰鸽子--木马、后门实验

热门文章

  1. 电脑出现 远程计算机或者设备不受连接
  2. servlet和filter的区别
  3. 某大学多站联动获取webshell
  4. webpack图解-学习笔记
  5. 模型评估准确率、召回率、ROC曲线、AUC总结
  6. Kafka Consumer多线程实例
  7. Spring是如何利用“三级缓存“巧妙解决Bean的循环依赖问题
  8. Java堆外内存:堆外内存溢出问题排查
  9. Elasticsearch实现类Google高级检索
  10. Dojo 如何测试 widget 1