美文网首页LinuxIT必备技能Docker
Docker Nginx反向代理配置web负载均衡实践

Docker Nginx反向代理配置web负载均衡实践

作者: 刘小白DOER | 来源:发表于2021-03-16 14:03 被阅读0次

    笔者做web服务器时使用apache较多,但对于 Nginx反向代理特别感兴趣,于是利用两块安装好LAMP的树莓派来测试验证一番。因为有docker,使用整个测试下来非常顺利方便。 笔者以前是使用keepalived通过VIP来保证高可用性,但是不能提供负载均衡。Nginx反向代理可以提供负载均衡并保证高可用性。

测试平台为虚拟机centos7和两块树莓派。

centos7为nginx做代理,两块树莓派做web服务器。

VirtualBox虚拟机centos7 IP地址:192.168.31.120

树莓派1 LAMP IP地址:192.168.31.234

树莓派2 LAMP IP地址:192.168.31.82

1、安装Nginx容器

   搜索镜像: docker search nginx

   下载镜像:docker pull nginx

    运行容器,映射到centos7的8080端口:docker run -itd --name nginx -p 8080:80 nginx

在浏览器中输入192.168.31.120:8080可以测试Nginx容器安装成功。

2、进入容器配置Nginx

    进入容器:docker exec -it nginx bash,容器需要先apt update更新,然后安装编辑器nano(你喜欢哪个装哪个)

    打开/etc/nginx/nginx.conf配置文件,在http区块里添加upstream块内容。

    upstream mysvr {

    server 192.168.31.82;

    server 192.168.31.234;

    }

    再打开/etc/nginx/conf.d/default.conf这个配置文件,在server区块里,添加location里面的内容。

    #请求转向上面mysvr 定义的服务器列表

    proxy_pass http://mysvr; 

    配置文件配置好以后,使用nginx -t命令测试一下配置文件是正常的。会显示nginx: the configuration file /etc/nginx/nginx.conf syntax is ok。nginx: configuration file /etc/nginx/nginx.conf test is successful

3、退出容器重启 Nginx容器使配置生效

    docker restart nginx

4、在两块树莓派 LAMP 上新建个ip.php来验证测试

    在树莓派上的/var/www/html下新建ip.php写入ip信息来区分服务器。

5、浏览器验证

    在浏览器输入http://192.168.31.120:8080/ip.php ,然后点击刷新,IP地址会循环变化。注意Nginx服务器要加8080端口号。

    如果不加ip.php,那么页面会显示/var/www/html目录下index.html的信息。

    6、故障转移配置    

    如果后端的服务器返回502、504、执行超时等错误,自动将请求转发到upstream负载均衡池中的另一台服务器,实现故障转移。 将下面的添加location,与proxy_pass放置在一起。

proxy_next_upstream http_502 http_504 error timeout invalid_header; 

    同时启用该功能需要在nginx.conf中添加

proxy_next_upstream on

    7、nginx配置4种均衡算法

    7.1、上面的nginx默认就是轮询其权重都默认为1。

    7.2、通过weight配置权重的大小,weight和访问比率成正比,用于后端服务器性能不均的情况。

    upstream mysvr {

    server 192.168.31.82 weight=1;

    server 192.168.31.234 weight=2;

    }

   7.3、热备

    upstream mysvr {

    server 192.168.31.82;

    server 192.168.31.234  backup;

    }

    7.4、ip_hash:nginx会让相同的客户端ip请求相同的服务器,固定访问一个后端服务器,可以解决session的问题。

    upstream mysvr {

    server 192.168.31.82;

    server 192.168.31.234;

     ip_hash;

    }

8、设备的状态

1.down表示单前的server暂时不参与负载

2.weight默认为1.weight越大,负载的权重就越大。

3.max_fails:允许请求失败的次数默认为1.当超过最大次数时,返回proxy_next_upstream模块定义的错误

4.fail_timeout:max_fails次失败后,暂停的时间。

5.backup:其它所有的非backup机器down或者忙的时候,请求backup机器。所以这台机器压力会最轻。

相关文章

  • 2020-03-31 Nginx反向代理与动静分离集群架构应用实

    1. Nginx负载均衡配置实战 1.1 Nginx负载均衡反向代理相关实践 1.1.1 实现为WWW服务代理 (...

  • nginx

    nginx的配置、虚拟主机、负载均衡和反向代理一nginx的配置、虚拟主机、负载均衡和反向代理二nginx的配置、...

  • Nginx应用场景

    反向代理,负载均衡,动静分离 1.反向代理 修改nginx配置,并重新加载 重新加载nginx配置./nginx ...

  • nginx基于tcp的转发,适用于HTTPS

    nginx的主要功能 1,正向代理2,反向代理3,负载均衡4,WEB服务器 通常用nginx主要做反向代理,负载均...

  • Docker Nginx反向代理配置web负载均衡实践

    笔者做web服务器时使用apache较多,但对于 Nginx反向代理特别感兴趣,于是利用两块安装好LAMP的树...

  • 反向代理,后端Apache获取真实IP地址

    反向代理,后端Apache获取真实IP地址 在配置负载均衡时,nginx做代理服务器,Apache做web服务,但...

  • nginx学习目录

    nginx安装部署和配置管理 nginx日志配置 nginx平滑升级与回滚 nginx反向代理 nginx负载均衡...

  • Kong反向代理UPSTREAM配置

    Kong 配置upstream负载均衡 今天的目标是配置upstream(反向代理),实现nginx的最基础负载均...

  • Centos安装Nginx教程

    一、Nginx简介 Nginx是一个web服务器,也可以用来做负载均衡及反向代理使用。 一、Nginx安装配置 下...

  • 玩转nginx

    本文内容包括: nginx配置实例之反向代理; nginx配置实例之动静分离; nginx配置实例之负载均衡; n...

网友评论

    本文标题:Docker Nginx反向代理配置web负载均衡实践

    本文链接:https://www.haomeiwen.com/subject/pmqdcltx.html