安装部署 nginx 负载均衡

本贴最后更新于 1733 天前,其中的信息可能已经斗转星移

使用两台虚拟机部署 nginx:

安装依赖包:

# yum install gcc gcc-c++ openssl-devel pcre-devel zlib-devel

 上传源码包到 root 下:

nginx-1.12.2.tar.gz

 解压并进入 nginx:

# tar zxf nginx-1.12.2.tar.gz
# cd nginx-1.12.2

编译并安装:

# ./configure && make && make install

启动 nginx:

# /usr/local/nginx/sbin/nginx

 查看 80 端口是否启动成功:

# netstat -lptnu | grep 80

 启动成功查看网页是否显示 nginx:

安装 keepalived:

# yum install keepalived

修改其配置文件:

# vi /etc/keepalived/keepalived.conf

! Configuration File for keepalived

global_defs {
   router_id LVS_DEVEL
}

vrrp_script check_nginx {
  script "pidof nginx"
  interval 2
  weight 20
}

vrrp_instance check_nginx {
    state BACKUP
    interface ens37
    virtual_router_id 98
    priority 99
    virtual_ipaddress {
        192.168.197.100/24
    }
    track_script {
        check_nginx
    }
}

启动 keepalived:

# systemctl start keepalived

查看是否配置成功:

# ip a

关闭第一台 nginx:

# netstat -lptnu |grep 80
tcp        0      0 0.0.0.0:80              0.0.0.0:*               LISTEN      3631/nginx: master  
tcp        0      0 0.0.0.0:22              0.0.0.0:*               LISTEN      1080/sshd         
tcp6       0      0 :::22                   :::*                    LISTEN      1080/sshd         
# kill 3631
# netstat -lptnu |grep 80
tcp        0      0 0.0.0.0:22              0.0.0.0:*               LISTEN      1080/sshd         
tcp6       0      0 :::22                   :::*                    LISTEN      1080/sshd

进行测试:查看 nginx VIP 是否跳转

nginx 常见的负载均衡有哪几种:

  1. 轮询(默认)

  轮询是默认的方式,轮询的方法是通过按照时间顺序将请求往不同的后端服务器发送,来缓解服务器的压力。如果后台服务器上某一台宕机了,它可以自动剔除。缺点:可靠性低和负载分配不均衡。适用于图片服务器和静态页面服务器集群。

  1. weight
      指定轮询几率,weight 和访问比率成正比,用于后端服务器性能不均的情况。
例如: 
upstream bakend {   server 192.168.159.10 weight=10;   server 192.168.159.11 weight=10; }
  1. ip_hash
      根据每个请求的 ip 的 hash 结果分配,因此每个固定 ip 能访问到同一个后端服务器,可以解决 session 问题。
例如: 
upstream resinserver{   ip_hash;   server 192.168.159.10:8080;   server 192.168.159.11:8080; }
  1. fair(第三方)

  按照后端服务器的相应时间来分配请求,时间短的优先分配。

例如:
upstream resinserver{   server server1;   server server2;   fair; }
  1. 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; 
} 

Nginx 不仅仅是一款优秀的负载均衡器/反向代理软件,它同时也是功能强大的 Web 应用服务器,可以做七层的转发 URL 和目录的转发都可以做:

nginx工作在网络的第7层,所以它可以针对http应用本身来做分流策略,比如针对域名、目录结构等
nginx对网络的依赖较小,理论上只要ping得通,网页访问正常,nginx就能连得通
nginx安装和配置比较简单,测试起来也很方便 
nginx可以检测到服务器内部的故障,比如根据服务器处理网页返回的状态码、超时等等,并且会把返回错误的请求重新提交到另一个节点。
  • NGINX

    NGINX 是一个高性能的 HTTP 和反向代理服务器,也是一个 IMAP/POP3/SMTP 代理服务器。 NGINX 是由 Igor Sysoev 为俄罗斯访问量第二的 Rambler.ru 站点开发的,第一个公开版本 0.1.0 发布于 2004 年 10 月 4 日。

    315 引用 • 547 回帖 • 1 关注

相关帖子

欢迎来到这里!

我们正在构建一个小众社区,大家在这里相互信任,以平等 • 自由 • 奔放的价值观进行分享交流。最终,希望大家能够找到与自己志同道合的伙伴,共同成长。

注册 关于
请输入回帖内容 ...

推荐标签 标签

  • MySQL

    MySQL 是一个关系型数据库管理系统,由瑞典 MySQL AB 公司开发,目前属于 Oracle 公司。MySQL 是最流行的关系型数据库管理系统之一。

    693 引用 • 537 回帖
  • 心情

    心是产生任何想法的源泉,心本体会陷入到对自己本体不能理解的状态中,因为心能产生任何想法,不能分出对错,不能分出自己。

    59 引用 • 369 回帖
  • CSS

    CSS(Cascading Style Sheet)“层叠样式表”是用于控制网页样式并允许将样式信息与网页内容分离的一种标记性语言。

    198 引用 • 543 回帖
  • V2Ray
    1 引用 • 15 回帖 • 5 关注
  • Postman

    Postman 是一款简单好用的 HTTP API 调试工具。

    4 引用 • 3 回帖 • 3 关注
  • golang

    Go 语言是 Google 推出的一种全新的编程语言,可以在不损失应用程序性能的情况下降低代码的复杂性。谷歌首席软件工程师罗布派克(Rob Pike)说:我们之所以开发 Go,是因为过去 10 多年间软件开发的难度令人沮丧。Go 是谷歌 2009 发布的第二款编程语言。

    500 引用 • 1396 回帖 • 246 关注
  • SendCloud

    SendCloud 由搜狐武汉研发中心孵化的项目,是致力于为开发者提供高质量的触发邮件服务的云端邮件发送平台,为开发者提供便利的 API 接口来调用服务,让邮件准确迅速到达用户收件箱并获得强大的追踪数据。

    2 引用 • 8 回帖 • 507 关注
  • VirtualBox

    VirtualBox 是一款开源虚拟机软件,最早由德国 Innotek 公司开发,由 Sun Microsystems 公司出品的软件,使用 Qt 编写,在 Sun 被 Oracle 收购后正式更名成 Oracle VM VirtualBox。

    10 引用 • 2 回帖 • 18 关注
  • Git

    Git 是 Linux Torvalds 为了帮助管理 Linux 内核开发而开发的一个开放源码的版本控制软件。

    211 引用 • 358 回帖 • 1 关注
  • 创造

    你创造的作品可能会帮助到很多人,如果是开源项目的话就更赞了!

    186 引用 • 1021 回帖
  • 小薇

    小薇是一个用 Java 写的 QQ 聊天机器人 Web 服务,可以用于社群互动。

    由于 Smart QQ 从 2019 年 1 月 1 日起停止服务,所以该项目也已经停止维护了!

    35 引用 • 468 回帖 • 767 关注
  • Latke

    Latke 是一款以 JSON 为主的 Java Web 框架。

    71 引用 • 535 回帖 • 827 关注
  • FreeMarker

    FreeMarker 是一款好用且功能强大的 Java 模版引擎。

    23 引用 • 20 回帖 • 465 关注
  • Kafka

    Kafka 是一种高吞吐量的分布式发布订阅消息系统,它可以处理消费者规模的网站中的所有动作流数据。 这种动作(网页浏览,搜索和其他用户的行动)是现代系统中许多功能的基础。 这些数据通常是由于吞吐量的要求而通过处理日志和日志聚合来解决。

    36 引用 • 35 回帖 • 3 关注
  • Facebook

    Facebook 是一个联系朋友的社交工具。大家可以通过它和朋友、同事、同学以及周围的人保持互动交流,分享无限上传的图片,发布链接和视频,更可以增进对朋友的了解。

    4 引用 • 15 回帖 • 444 关注
  • 程序员

    程序员是从事程序开发、程序维护的专业人员。

    589 引用 • 3528 回帖 • 1 关注
  • 反馈

    Communication channel for makers and users.

    120 引用 • 906 回帖 • 278 关注
  • RabbitMQ

    RabbitMQ 是一个开源的 AMQP 实现,服务器端用 Erlang 语言编写,支持多种语言客户端,如:Python、Ruby、.NET、Java、C、PHP、ActionScript 等。用于在分布式系统中存储转发消息,在易用性、扩展性、高可用性等方面表现不俗。

    49 引用 • 60 回帖 • 350 关注
  • 资讯

    资讯是用户因为及时地获得它并利用它而能够在相对短的时间内给自己带来价值的信息,资讯有时效性和地域性。

    56 引用 • 85 回帖 • 1 关注
  • Flutter

    Flutter 是谷歌的移动 UI 框架,可以快速在 iOS 和 Android 上构建高质量的原生用户界面。 Flutter 可以与现有的代码一起工作,它正在被越来越多的开发者和组织使用,并且 Flutter 是完全免费、开源的。

    39 引用 • 92 回帖 • 9 关注
  • 大疆创新

    深圳市大疆创新科技有限公司(DJI-Innovations,简称 DJI),成立于 2006 年,是全球领先的无人飞行器控制系统及无人机解决方案的研发和生产商,客户遍布全球 100 多个国家。通过持续的创新,大疆致力于为无人机工业、行业用户以及专业航拍应用提供性能最强、体验最佳的革命性智能飞控产品和解决方案。

    2 引用 • 14 回帖
  • MyBatis

    MyBatis 本是 Apache 软件基金会 的一个开源项目 iBatis,2010 年这个项目由 Apache 软件基金会迁移到了 google code,并且改名为 MyBatis ,2013 年 11 月再次迁移到了 GitHub。

    173 引用 • 414 回帖 • 364 关注
  • NetBeans

    NetBeans 是一个始于 1997 年的 Xelfi 计划,本身是捷克布拉格查理大学的数学及物理学院的学生计划。此计划延伸而成立了一家公司进而发展这个商用版本的 NetBeans IDE,直到 1999 年 Sun 买下此公司。Sun 于次年(2000 年)六月将 NetBeans IDE 开源,直到现在 NetBeans 的社群依然持续增长。

    78 引用 • 102 回帖 • 707 关注
  • QQ

    1999 年 2 月腾讯正式推出“腾讯 QQ”,在线用户由 1999 年的 2 人(马化腾和张志东)到现在已经发展到上亿用户了,在线人数超过一亿,是目前使用最广泛的聊天软件之一。

    45 引用 • 557 回帖
  • Access
    1 引用 • 3 回帖 • 1 关注
  • CodeMirror
    2 引用 • 17 回帖 • 171 关注
  • 阿里巴巴

    阿里巴巴网络技术有限公司(简称:阿里巴巴集团)是以曾担任英语教师的马云为首的 18 人,于 1999 年在中国杭州创立,他们相信互联网能够创造公平的竞争环境,让小企业通过创新与科技扩展业务,并在参与国内或全球市场竞争时处于更有利的位置。

    43 引用 • 221 回帖 • 56 关注