nginx实现负载均衡

前言:

首先讲一下nginx做负载均衡的优点。

1、工作在网络的7层之上,可以针对http应用做一些分流的策略,比如针对域名、目录结构,它的正则规则比HAProxy更为强大和灵活,这也是它目前广泛流行的主要原因之一,nginx单凭这点可利用的场合就远多于LVS了

2、nginx对网络稳定性的依赖非常小,理论上能ping通就就能进行负载功能,这个也是它的优势之一;相反LVS对网络稳定性依赖比较大,这点本人深有体会

3、nginx安装和配置比较简单,测试起来比较方便,它基本能把错误用日志打印出来。LVS的配置、测试就要花比较长的时间了,LVS对网络依赖比较大

4、可以承担高负载压力且稳定,在硬件不差的情况下一般能支撑几万次的并发量,负载度比LVS相对小些

注意事项:

1、不同安装方法nginx的配置文件位置不一样

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

环境:

系统:centos7.4

nginx IP地址:192.168.1.63

web1 IP地址:192.168.1.62

web2 IP地址:192.168.1.64

实验环节:

第一步:安装nginx

我这里用的是源码编译安装

1 wget http://nginx.org/download/nginx-1.14.2.tar.gz
2 tar -xvf nginx-1.14.2.tar.gz
3 cd nginx-1.14.2
4 ./configure --prefix=/usr/local/nginx --with-http_ssl_module  --with-http_gzip_static_module 
5 make -j 4 (使用4个cpu一起编译)
6 make install

第二步:修改配置文件

nginx 的 upstream默认是以轮询的方式实现负载均衡,这种方式中,每个请求按时间顺序逐一分配到不同的后端服务器,如果后端服务器down掉,能自动剔除。

另外一种方式是ip_hash:每个请求按访问ip的hash结果分配,这样每个访客固定访问一个后端服务器,可以解决session的问题

1 vi /usr/local/nginx/conf/nginx.conf
# 在http下添加
 upstream backend {  
        server 192.168.1.62 weight=10;
        server 192.168.1.64 weight=5;
        }
# 在server下添加 也可以在外部写一个xx.conf在引入include  xx.conf;
       location / {
            proxy_pass http://backend;
        }

第三步:测试

 

这只是简单的配置,更多详情请参考官方文档!http://nginx.org/en/docs/http/load_balancing.html

希望结交更多志同道合的朋友,欢迎在下方留言!

posted @ 2019-06-03 02:14  凌云-Touch  阅读(205)  评论(0)    收藏  举报