nginx的upstream模块实现负载均衡

Posted

tags:

篇首语:本文由小常识网(cha138.com)小编为大家整理,主要介绍了nginx的upstream模块实现负载均衡相关的知识,希望对你有一定的参考价值。



通过nginx搭建负载均衡,这里通过这个upstream模块来实现,在nginx.org的官网可以看到相应的模块

proxy模块也可以实现负载均衡。

 

第一、打开lamp和lnmp  两个web服务器

Nginx-proxy这台服务器安装nginx,负载均衡需要nginx

安装nginx1.6.2



tar -xf nginx-1.6.2.tar.gz 

ls

cd nginx-1.6.2

useradd -s /sbin/nologin -M nginx

./configure --user=nginx --group=nginx --prefix=/usr/local/nginx1.6.2 --with-http_stub_status_module --with-http_ssl_module

make

make install

ln -s /usr/local/nginx1.6.2/ /usr/local/nginx

./nginx/sbin/nginx -t

./nginx/sbin/nginx

lsof -i :80


访问测试:


 技术分享


 

 

[[email protected] nginx-1.6.2]# pwd
/usr/local/src/nginx-1.6.2
[[email protected] nginx-1.6.2]# ./configure  --help|grep upstream
  --without-http_upstream_ip_hash_module
                                     disable ngx_http_upstream_ip_hash_module
  --without-http_upstream_least_conn_module
                                     disable ngx_http_upstream_least_conn_module
  --without-http_upstream_keepalive_module
                                     disable ngx_http_upstream_keepalive_module


此模块已经被安装了



配置

[[email protected] conf]# pwd
/usr/local/nginx/conf
[[email protected] conf]# egrep -v "#|^$" nginx.conf.default  >nginx.conf
复制模块文档的例子,粘贴修改一下
upstream backend {
    server 192.168.1.180:80 max_fails=3 fail_timeout=30s;
    server 192.168.1.181:80 max_fails=3 fail_timeout=30s;
}
    server {
        listen       80;
        server_name  www.test.com;
        index  index.html index.htm;
        location / {
           proxy_pass http://backend;
        }


实现原理(默认是轮询的算法)

 


保存重启

/usr/local/nginx/sbin/nginx -s reload

/usr/local/nginx/sbin/nginx -t


然后检查两个web服务是否正常,分别访问一下ip

最后地址输入负载均衡服务器IP,轮询那两个web服务器的访问的内容

或者

for n in `seq 100`;do curl 192.168.1.138;sleep 2;done
http://www.test.com
www.www.test.com
http://www.test.com
www.www.test.com
http://www.test.com
www.www.test.com
http://www.test.com



然后宕机期中一个,观察现象

会自动排除故障





本文出自 “比尔运维笔记” 博客,请务必保留此出处http://chenshoubiao.blog.51cto.com/6159058/1843854

以上是关于nginx的upstream模块实现负载均衡的主要内容,如果未能解决你的问题,请参考以下文章

Nginx负载均衡组件模块

Linux下玩转nginx系列---nginx实现负载均衡

NGINX 负载均衡 之九

Nginx学习—— 负载均衡模块

使用nginx的ngx_upstream_jdomain模块实现k8s容器的负载均衡

[转帖]nginx upstream模块--负载均衡