nginx -- 负载均衡

概述:

  • nginx简介:
    Nginx是一个http服务器。是一个使用c语言开发的高性能的http 服务器/反向代理服务器及电子邮件(IMAP/POP3)代理服务器。nginx能够支撑5万并发链接,并且cpu、内存等资源消耗却非常低,运行非常稳定,中国大陆使用nginx网站用户有:百度、京东、新浪、网易、腾讯、淘宝等。
  • 负载均衡介绍:
    将服务器接收到的请求按照规则分发的过程,称为负载均衡。
  • 作用:
  • 当一台服务器的单位时间内的访问量越大时,服务器压力就越大,大到超过自身承受能力时,服务器就会崩溃。为了避免服务器崩溃,让用户有更好的体验,我们通过负载均衡的方式来分担服务器压力。
  • 我们可以建立很多很多服务器,组成一个服务器集群,当用户访问网站时,先访问一个中间服务器,在让这个中间服务器在服务器集群中选择一个压力较小的服务器,然后将该访问请求引入该服务器。
  • 如此以来,用户的每次访问,都会保证服务器集群中的每个服务器压力趋于平衡,分担了服务器压力,避免了服务器崩溃的情况。负载均衡配置一般都需要同时配置反向代理,通过反向代理跳转到负载均衡。

实验环境:

rhel6.5 selinux and iptables disabled
server1------->nginx负载均衡调度器
server2------->web服务器
server3-------> web服务器
主机----------->测试

配置详讲:

  • 安装
  1. 解压nginx的安装包
    [root@server1 ~]# tar zxf nginx-1.16.0.tar.gz
  2. 隐藏nginx的版本号(不安全)
    [root@server1 nginx-1.16.0]# vim src/core/nginx.h
    14 #define NGINX_VER “nginx/”
  3. 关闭debug日至(因为debug的日志非常多,企业中一般不需要开启)
    [root@server1 nginx-1.16.0]# vim auto/cc/gcc
    171 # debug
    172 #CFLAGS="$CFLAGS -g"
  4. 进入解压目录,进行编译安装
    [root@server1 nginx-1.16.0]# ./configure --prefix=/usr/local/nginx --with-threads --with-file-aio --with-http_ssl_module --with-http_stub_status_module
    [root@server1 nginx-1.16.0]# make && make install
  • 负载均衡配置
  1. 编辑nginx的主配置文件

    [root@server1 nginx-1.16.0]# vim /usr/local/nginx/conf/nginx.conf
    2 user nginx nginx; ##使用户为nginx用户进行管理
    3 worker_processes 4; ##nginx的工作进程数,一般设置为cpu核数 ,auto为自动识别cpu核数,但是一般不推荐使用

    12 events {
    13 worker_connections 1024; # 进程最大连接数
    14 }

    17 http {
    18 upstream westos{
    19 server 172.25.254.2:80; # 后端服务器server2
    20 server 172.25.254.3:80; # 后端服务器server3
    21 }
    22 include mime.types;
    23 default_type application/octet-stream;

    ##在文章最后一个}前面添加
    120 server {
    121 listen 80; ### nginx监听80端口
    122 server_name www.westos.org; # 访问域名www.westos.org
    123
    124 location / {
    125 proxy_pass http://westos; #访问上边的虚拟主机
    126 }
    127 }

  2. 编辑完配置文件要检测语法错误,并开启nginx

  • 打开nginx : usr/local/nginx/sbin/nginx
  • 关闭nginx : usr/local/nginx/sbin/nginx -s stop
  • 重新加载nginx : usr/local/nginx/sbin/nginx -s reload
  • 检查语法错误:usr/local/nginx/sbin/nginx -t
    [root@server1 nginx-1.16.0]# /usr/local/nginx/sbin/nginx -t
    nginx: the configuration file /usr/local/nginx/conf/nginx.conf syntax is ok
    nginx: configuration file /usr/local/nginx/conf/nginx.conf test is successful
    [root@server1 nginx-1.16.0]# /usr/local/nginx/sbin/nginx
    [root@server1 nginx-1.16.0]# ps aux
    在这里插入图片描述
  1. server2和server3上安装httpd服务,开启服务,然后编写默认测试页面内容
  2. 在测试主机中添加解析
  • 测试
[root@foundation68 ~]# curl www.westos.org
<h1>server3.example.com</h1>
[root@foundation68 ~]# curl www.westos.org
<h1>server2.example.com</h1>
[root@foundation68 ~]# curl www.westos.org
<h1>server3.example.com</h1>
[root@foundation68 ~]# curl www.westos.org
<h1>server2.example.com</h1>

如果server2关闭httpd,则只能访问到server3

[root@foundation68 ~]# curl www.westos.org
<h1>server3.example.com</h1>
[root@foundation68 ~]# curl www.westos.org
<h1>server3.example.com</h1>
[root@foundation68 ~]# curl www.westos.org
<h1>server3.example.com</h1>
  • 其他配置
    添加ip_hash:同一个ip的请求会指定到同一个后端服务器服务器
    注意:此处保证server2和server3 的httpd服务都是开启的
    http {
    upstream westos{
    ip_hash;
    server 172.25.254.2:80;
    server 172.25.254.3:80;
    }
    [root@server1 html]# /usr/local/nginx/sbin/nginx -t
    nginx: the configuration file /usr/local/nginx/conf/nginx.conf syntax is ok
    nginx: configuration file /usr/local/nginx/conf/nginx.conf test is successful
    [root@server1 html]# /usr/local/nginx/sbin/nginx -s reload

  • 测试

    [root@foundation68 ~]# curl www.westos.org

    server2.example.com

    [root@foundation68 ~]# curl www.westos.org

    server2.example.com

    [root@foundation68 ~]# curl www.westos.org

    server2.example.com

    [root@foundation68 ~]# curl www.westos.org

    server2.example.com

  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值