实践NGINX的反向代理与负载均衡

Posted

tags:

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

实践nginx的反向代理与负载均衡

安装nginx过程

[[email protected] opt]# yum install  pcre-devel openssl-devel -y
[[email protected] opt]# wget -q http://nginx.org/download/nginx-1.10.2.tar.gz 
[[email protected] opt]# useradd nginx -s /sbin/nologin -M 
[[email protected] opt]# tar xf nginx-1.10.2.tar.gz -C /usr/src/
[[email protected] opt]# cd /usr/src/nginx-1.10.2/
[[email protected] nginx-1.10.2]# ./configure --prefix=/usr/local/nginx-1.10.2 --user=nginx --group=nginx --with-http_stub_status_module --with-http_ssl_module
[[email protected] nginx-1.10.2]#make;make install 
[[email protected] nginx-1.10.2]# cd /usr/local/
[[email protected] local]# ln -s /usr/local/nginx-1.10.2/ /usr/local/nginx
[[email protected] local]# echo ‘export PATH=/usr/local/nginx/sbin:$PATH‘>>/etc/profile
[[email protected] local]# source /etc/profile
[[email protected] local]# nginx
[[email protected] local]# lsof -i:80

配置nginx负载服务器文件

[[email protected] conf]# egrep -v "#|^$" nginx.conf.default > nginx.conf
[[email protected] conf]# vim nginx.conf
worker_processes  1;
events {
    worker_connections  1024;
}
http {
    include       mime.types;
    default_type  application/octet-stream;
    sendfile        on;
    keepalive_timeout  65;                                  
    upstream server_pools {     --在http区块里upstream模块,将web节点的IP或着域名放置池中
        server 10.0.0.11:80 weight=1 max_fails=3 fail_timeout=10;   --weight 权重
        server 10.0.0.14:8081 weight=1 max_fails=3 fail_timeout=10;  --max_fails失败的尝试次数
        server 10.0.0.14:8082 weight=1 max_fails=3 fail_timeout=10;  --fail_timeout 失败后的再次尝试时间
    } 
    server {
        listen 80;
        server_name bbs.etiantian.org;
        location / {
            proxy_pass http://server_pools;  --proxy模块调用upstream模块池里面的web节点,
            proxy_set_header Host $host;    --该参数在访问后端服务器的时候 会带上hosts信息。定义虚拟主机的信息标签
            proxy_set_header X-Forwarded-For $remote_addr;   --代理的时候在会显示真实客户客户端IP地址
        }
    }

配置完成了检测语法重启服务
[[email protected] conf]# nginx -t
nginx: the configuration file /usr/local/nginx-1.10.2/conf/nginx.conf syntax is ok
nginx: configuration file /usr/local/nginx-1.10.2/conf/nginx.conf test is successful
[[email protected] conf]# nginx -s stop
[[email protected] conf]# nginx 

查看web服务器的首页文件(下面3台web服务器是之前实验做好了的)

查看nginx服务器上的首页文件
[[email protected] ~]# cat /usr/local/nginx/html/www.anuo1.com/index.html 
anuo nginx web --111111

查看tomcat多实例服务器的首页文件
[[email protected] ~]# cat /usr/local/tomcat1/webapps/ROOT/index.jsp 
 anuo tomcat web111111 
[[email protected] ~]# cat /usr/local/tomcat2/webapps/ROOT/index.jsp 
 anuo tomcat web2 

测试访问

[[email protected] ~]# ifconfig eth0    --查看确认负载均衡服务器的IP
eth0      Link encap:Ethernet  HWaddr 00:0C:29:9F:CF:C6  
          inet addr:10.0.0.13  Bcast:10.0.0.255  Mask:255.255.255.0
……

进行测试:
[[email protected] conf]# elinks -dump 10.0.0.13        --elinke -dump 命令是直接将URL的内容输出至标准输出
   anuo tomcat web111111
[[email protected] conf]# elinks -dump 10.0.0.13
   anuo tomcat web2
[[email protected] conf]# elinks -dump 10.0.0.13
   anuo nginx web --111111

nginx还有一些参数说明

ip_hash 参数 
可以解决动态网页的session共享问题,但有时会导致请求负载均衡分配不均

least_conn 参数
会根据后端节点的连接数来决定分配情况,哪个机器连接数少就分发。 就是看谁闲发送给谁

fair 参数
  根据后端服务器的响应时间来分配请求,响应时间短的优先分配。
调度算法
  定义轮询调度算法 rr 默认调度算法   平均分配
  定义权重调度算法 wrr
  定义静态调度算法 ip-hash
  定义最小的连接数-least_conn

以上是关于实践NGINX的反向代理与负载均衡的主要内容,如果未能解决你的问题,请参考以下文章

Nginx 实践案例:反向代理单台web;反向代理多组web并实现负载均衡

高性能系列高性能反向代理服务器Nginx负载均衡实践

一篇含金量hin高的Nginx反向代理与负载均衡指南

Linux服务:Nginx反向代理与负载均衡

Nginx的反向代理与负载均衡

Nginx反向代理与负载均衡