zoukankan      html  css  js  c++  java
  • 使用Nginx简单实现负载均衡

    只是简单使用Nginx而已,知道能这么用,但是在实际项目中并没有实践过,在项目不大的时候用不到,但是对于理解负载均衡来说还是可以的。

    利用虚拟机安装了三个CentOS系统,然后顺便装了环境。 
    这里顺便说一下,不需要转三次系统,装一个系统,配置环境完成之后,另外两个可以使用虚拟机的克隆功能直接克隆即可,配置是完全相同的。

    首先是服务器配置及当前IP地址,注意一点,为了测试方便,我把所有的防火墙都直接关闭了,但是实际中限制端口号,而不要直接关闭 
    服务器A:IP:192.168.0.134 
    服务器B:IP:192.168.0.132 
    服务器C:IP:192.168.0.133

    主人本机使用的是Windows系统,其他系统自己看着办,改一下本地的host,这样浏览器输入这个域名就能解析到固定你输入的IP了 
    在C:WindowsSystem32driversetc目录下,修改host文件 
    需要注意的是,host在当前目录下面用户是没有修改权限的,所以你需要先复制出来到桌面,然后用记事本打开修改,然后复制回去替换。 
    在文件末尾加上192.168.0.134 xx.com

    然后在cmd模式下ping xx.com 看是否能ping通,如果可以证明域名没有问题了。 
    正在 Ping xx.com [192.168.0.134] 具有 32 字节的数据: 
    来自 192.168.0.134 的回复: 字节=32 时间=1ms TTL=64 
    来自 192.168.0.134 的回复: 字节=32 时间<1ms TTL=64 
    来自 192.168.0.134 的回复: 字节=32 时间<1ms TTL=64 
    来自 192.168.0.134 的回复: 字节=32 时间<1ms TTL=64 
    这个域名也只能在你本地起作用,实验就简单点好了。

    下载nginx 
    http://nginx.org/en/download.html 
    选择了稳定版本 
    然后解压到A服务器的你喜欢的目录下面

    首先是在A服务器上配置nginx,软件的安装我都不介绍了,在最后给出安装说明的地址,然后根据步骤一步步来就好了。 
    修改nginx配置中的 
    在server中修改以下位置 
    location / { 
                proxy_pass        http://xx.com; 
                proxy_set_header  Host            $host; 
                proxy_set_header  X-Real-IP        $remote_addr; 
                proxy_set_header  X-Forwarded-For  $proxy_add_x_forwarded_for; 
            }

    在http中加入 
    #-------------------------------------------------------- 
    upstream xx.com { 
        server  192.168.0.132:8080; 
        server  192.168.0.133:8080; 
        server  127.0.0.1:8080; 

    #--------------------------------------------------------

    我在A服务器上装了tomcat。默认端口是8080。 
    其他两台就不装了,简单的配置了一个默认的页面

    在其他两台服务器上面nginx配置 
    server{ 
            listen 8080; 
            server_name xx.com; 
            index index.html; 
            root /root; 
        } 
        
    server { 
        listen      80; 
        server_name  xx.com;

    修改了这两个配置之后,三台服务器全部重新启动nginx

    然后在浏览器中输入xx.com 
    然后刷新页面,就会出现三台服务器不同的页面了。 
    也就是说,当我们的项目的域名被访问的时候会根据实际情况负载均衡至3台服务器。

    我觉得实际项目中,A服务器还是不要作为项目服务器的一部分,不用tomcat部署项目, 
    为什么呢,虽然这样服务器有点浪费,但是,如果部署了项目的话,这样A服务器就有可能出现宕机,导致BC服务器均不能被访问。 
    如果没有部署服务的话,那么即使B或C任意一台服务器宕机,A服务器会自动均衡到另一台服务器上面。

    但是一些静态资源的获取可以放在A上面,这样可以减轻后面服务器的压力,同时提高A的利用率。

    下面给出安装软件的步骤,很多网站上都写的很好。我就不多说了。

    Nginx负载均衡配置实例详解 :http://www.linuxidc.com/Linux/2015-07/120738.htm
    Nginx配置文件详解:http://www.linuxidc.com/Linux/2016-08/134441.htm
    Nginx安装流程:http://www.linuxidc.com/Linux/2016-08/134442.htm(其实前面的3个不装在测试项目中也是可以运行nginx的,可能是我之前装过一些软件的原因)

    --------------------------------------分割线 --------------------------------------

    Nginx负载均衡配置实战  http://www.linuxidc.com/Linux/2014-12/110036.htm

    CentOS 6.2实战部署Nginx+MySQL+PHP http://www.linuxidc.com/Linux/2013-09/90020.htm

    使用Nginx搭建WEB服务器 http://www.linuxidc.com/Linux/2013-09/89768.htm

    搭建基于Linux6.3+Nginx1.2+PHP5+MySQL5.5的Web服务器全过程 http://www.linuxidc.com/Linux/2013-09/89692.htm

    CentOS 6.3下Nginx性能调优 http://www.linuxidc.com/Linux/2013-09/89656.htm

    CentOS 6.3下配置Nginx加载ngx_pagespeed模块 http://www.linuxidc.com/Linux/2013-09/89657.htm

    CentOS 6.4安装配置Nginx+Pcre+php-fpm http://www.linuxidc.com/Linux/2013-08/88984.htm

    Nginx安装配置使用详细笔记 http://www.linuxidc.com/Linux/2014-07/104499.htm

    Nginx日志过滤 使用ngx_log_if不记录特定日志 http://www.linuxidc.com/Linux/2014-07/104686.htm

    --------------------------------------分割线 --------------------------------------

    Nginx 的详细介绍请点这里
    Nginx 的下载地址请点这里

  • 相关阅读:
    【Python】supervisor安装和管理celery
    【MySQL】pt-query-digest数据处理并关联业务
    【Python】pip国内安装源和yum恢复
    【Python】Celery异步处理
    【转】Java中堆和栈的区别
    三种简单排序算法
    哈夫曼(Huffman)编码
    SpringMVC之文件上传
    SpringMVC之类型转换
    SpringMVC之表单校验
  • 原文地址:https://www.cnblogs.com/zzsdream/p/6812651.html
Copyright © 2011-2022 走看看