文档章节

Nginx | 负载均衡(一)

云迹
 云迹
发布于 2017/03/08 00:12
字数 828
阅读 34
收藏 1

【推荐】2019 Java 开发者跳槽指南.pdf(吐血整理) >>>

###背景

想在本机做nginx的负载相关工作

###准备工作

1. 已安装好Parelles Desktop:
	装一个Debian系统,系统用户名 : parallels,作为一个站点服务。
	装一个Ubuntu系统,系统用户名 : parallels,作为一个站点服务。
2. 在本机安装Nginx, 一个作为负载均衡服务

###配置

####虚拟机是采用 共享网络(Shared Networking) 的模式

#####方便操作虚拟机中的系统,配置ssh登录方式

#####Debian虚拟机

  1. 在虚拟机执行命令,生成ssh相关信息 安装ssh服务: sudo apt-get install openssh-client openssh-server 在命令行输入: ssh-keygen,一路enter生成ssh相关信息

  2. 查看虚拟机IP 在虚拟机执行 : sudo ifconfig

    eth1      ................次要信息省略..............................
              inet addr:10.211.55.8  Bcast:10.211.55.255  Mask:255.255.255.0
              ................次要信息省略..............................
    
  3. 将本机~/.ssh/id_rsa.pub拷贝到虚拟机的~/.ssh/authorized_keys文件中

  4. 输入命令登录到虚拟机 ssh parallels@10.211.55.8

#####Ubuntu虚拟机

  1. 操作方式通Debian虚拟一样 在虚拟机执行 : sudo ifconfig

    eth1      ................次要信息省略..............................
              inet addr:10.211.55.9  Bcast:10.211.55.255  Mask:255.255.255.0
              ................次要信息省略..............................
    

####配置站点,以备负载均衡使用

  1. 配置本机站点(web1) cd /path/to/nginx/conf.d

    vim load_balance.conf
    
    复制如下内容到文件中 :
      server {
          listen       8090;
          server_name  load.demo.com;
          location / {
              root   /path/to/project;
              index  index.html index.htm;
          }
      }
    
    在文件中写入web1:
    	echo "web1" > /path/to/project/index.html
    
    绑定hosts:
    	echo "127.0.0.1	load.demo.com" >> /etc/hosts
    
    在浏览器输入load.demo.com:8090 : 
    	显示 : web1
    
  2. 配置虚拟机中站点(web2) 按照1的配置,设置站点配置;在index.html文件中写入web2

    在浏览器输入load.demo.com:8090 : 
    	显示 : web2
    

####Nginx负载均衡配置

  1. 打开本机的nginx.conf配置文件 vim /path/to/nginx/nginx.conf

  2. 修改nginx.conf对应配置 ................次要信息省略.............................. http { include mime.types; default_type application/octet-stream;

            log_format  main  '$remote_addr - $remote_user [$time_local] "$request" '
                              '$status $body_bytes_sent "$http_referer" '
                              '"$http_user_agent" "$http_x_forwarded_for"';
    
            access_log  /usr/local/var/log/nginx/access.log  main;
    
            sendfile        on;
            #tcp_nopush     on;
    
            #keepalive_timeout  0;
            keepalive_timeout  65;
    
            ####增加配置##########################################
            upstream load_balance_test {
                server 10.211.55.8:8090 weight=1;
                server 10.211.55.9:8090 weight=1;
            }
            ####增加配置##########################################
            ####更改配置##########################################
            server {
                listen 8090;
                server_name load.demo.com;
                location / {
                proxy_pass http://load_balance_test;
                }
            }
            ####更改配置##########################################
            #gzip  on;
            include /usr/local/etc/nginx/conf.d/*.conf;
        }
    
  3. 绑定hosts echo "127.0.0.1 load.demo.com" >> /etc/hosts

  4. 启动nginx,在浏览器中输入load.demo.com:8090,不停刷新,交替出现web1和web2,成功

###配置过程中遇到问题以及解决方案

1. 链接到虚拟机,但是链接拒绝。ssh localhost提示:ssh: connect to host localhost port 22: Connection refused
	解决方案:
		http://stackoverflow.com/questions/6313929/how-do-i-open-port-22-in-os-x-10-6-7,其实就是开启允许mac远程链接,系统偏好设置->共享->勾选远程登陆

2. 将本机id_rsa.pub拷贝到虚拟机的系统对应位置/path/to/.ssh/authorized_keys,但是一直提示输入密码,但是输入密码却总是连不上
	通过ssh -vvv user@remote-ip打印调试信息,信息如下:
		................次要信息省略..............................
		debug1: Trying private key: ~/.ssh/id_dsa
		debug3: no such identity: ~/.ssh/id_dsa: No such file or directory
		................次要信息省略..............................
	解决方案:
		在/etc/ssh/sshd_config找配置项 IdentityFile,如果没有找到就新增;如果找到了有注释#就去掉#的注释;执行IdentityFile配置的私钥key文件:IdentityFile ~/.ssh/id_rsa

© 著作权归作者所有

云迹
粉丝 7
博文 61
码字总数 7271
作品 0
成都
程序员
私信 提问
负载均衡器技术Nginx和F5的优缺点对比

对于数据流量过大的网络中,往往单一设备无法承担,需要多台设备进行数据分流,而负载均衡器就是用来将数据分流到多台设备的一个转发器。   目前有许多不同的负载均衡技术用以满足不同的应...

Zero零_度
2015/04/17
5.6K
2
Nginx服务器的安装与反向代理负载均衡

Nginx服务器 一:什么是Nginx? 我们生活的世界中,有的时候需要上网。我们可以浏览很多很多的网页,这些网页都是由一系列的程序组成,但是我们是否想过,这些程序存储在什么地方呢?没错,这...

像风一样i
2018/08/11
0
0
四层、七层负载均衡的区别

一、简介 所谓四层就是基于IP+端口的负载均衡;七层就是基于URL等应用层信息的负载均衡;同理,还有基于MAC地址的二层负载均衡和基于IP地址的三层负载均衡。 换句换说,二层负载均衡会通过一...

yzy121403725
2018/01/03
0
0
负载均衡技术(一)———负载均衡技术介绍

此文已由作者张小刚授权网易云社区发布。 欢迎访问网易云社区,了解更多网易技术产品运营经验。 本文主要是对负载均衡技术进行一个简单的介绍,并结合在实际生产环境中负载均衡技术的应用情况...

网易云
2018/11/15
0
0
Nginx负载均衡的实现和调度算法

一、Nginx负载均衡算法 1、轮询(默认) 每个请求按时间顺序逐一分配到不同的后端服务,如果后端某台服务器死机,自动剔除故障系统,使用户访问不受影响。 2、weight(轮询权值) weight的值...

科技小能手
2017/11/12
0
0

没有更多内容

加载失败,请刷新页面

加载更多

CountDownLatch、Semaphore等4大并发工具类详解

Java并发工具包 1.并发工具类 提供了比synchronized更加高级的各种同步结构:包括CountDownLatch、CyclicBarrier、Semaphore等,可以实现更加丰富的多线程操作。 2.并发容器 提供各种线程安全...

Java阿七
3分钟前
2
0
general-biz使用教程

general-biz使用教程 1. 技术目标 简化biz层基础业务开发,实现单表基础业务代码简洁易读,通过注解方式实现基础业务实现类托管,项目启动时动态生成,和动态加载到spring容器中。 2. 下载地...

sharelords
21分钟前
3
0
源码分析Kafka 消息拉取流程(文末两张流程图)

本节重点讨论 Kafka 的消息拉起流程。 @TOC 1、KafkaConsumer poll 详解 消息拉起主要入口为:KafkaConsumer#poll方法,其声明如下: public ConsumerRecords<k, v> poll(final Duration t...

中间件兴趣圈
24分钟前
3
0
如何在Java中创建通用数组?

由于Java泛型的实现,因此不能有以下代码: public class GenSet<E> { private E a[]; public GenSet() { a = new E[INITIAL_ARRAY_LENGTH]; // error: generic array crea......

javail
30分钟前
4
0
redis数据类型/键值/服务常用操作、安全设置

Redis数据类型和常用操作 Redis有5中数据类型,分别是string(字符串)、list(链表)、set(集合)、sorted set(有序集合)、hash(哈希) 1.string string为最简单的类型,与Memcached一样,一个key...

asnfuy
40分钟前
4
0

没有更多内容

加载失败,请刷新页面

加载更多

返回顶部
顶部