Nginx安装好之后。開始使用它来简单实现反向代理与负载均衡的功能。在这之前。首先得脑补一下什么是反向代理和负载均衡。

  反向代理:是指以代理server来接收Internet上的请求,然后将请求转发到内部网络的server上,并将结果返回给Internet上连接的client。此时的代理server对外就表现为反向代理server。

   通俗来讲,反向代理server就好比我们常说的中介。Internetclient能够看作是租房的客户,而内部网络的server好比是房东。租户通过中介与房东沟通,最后租到房子。

                

    负载均衡。分摊到多个操作单元上进行运行。从而实现多个操作单元来共同完毕任务,经常使用来平衡集群中各server的负载压力。本次实例主要是在反向代理的基础上实现简单的负载均衡。

   实例:

     1、准备工作

        Nginxserver、多个应用server(本实例使用tomcat)

     2、文件改动

        改动本地文件hosts文件(在本机C:\Window\system32\drivers\etc)

           

        改动nginx安装文件夹下的配置文件nginx.conf(本路径为/usr/local/nginx/nginx.conf)。添加Server节点,例如以下:   

  1. upstream tomcats{
  2. server 192.168.91.129:8080 ;
  3. server 192.168.91.129:8081;
  4. }
  5.  
  6. server {
  7. listen 80;
  8. server_name tomcat.vb2c.com;
  9.  
  10. location /{
  11. proxy_pass http://tomcats;
  12. index index.html index.htm;
  13. }
  14. }

        分别启动tomcat(本次使用两个tomcat)、nginxserver

     3、測试

       在本地输入:tomcat.vb2c.com地址,没刷新一次訪问不同的tomcatserver,例如以下:

       

watermark/2/text/aHR0cDovL2Jsb2cuY3Nkbi5uZXQvd3BiOTI=/font/5a6L5L2T/fontsize/400/fill/I0JBQkFCMA==/dissolve/70/gravity/Center" alt="" />

 

      在此基础上实现负载均衡。事实上就是为Serverport加上weight权重。权重越大。訪问的概率越大,例如以下:     

  1. upstream tomcats{
  2. server 192.168.91.129:8080 weight=2;
  3. server 192.168.91.129:8081;
  4. }
  5.  
  6. server {
  7. listen 80;
  8. server_name tomcat.vb2c.com;
  9.  
  10. location /{
  11. proxy_pass http://tomcats;
  12. index index.html index.htm;
  13. }
  14. }

      訪问时,8080的响应次数大于8081

    我们从外部进行訪问时。实际訪问的是Nginxserver,可是Nginxserver将我们的请求转发给内部的tomcatserver,从外相来看,我们訪问的是Nginx,实际上是tomcat。

此时的Nginxserver就作了反向代理的功能,这种长处就是,众多用户同一时候訪问一台server,通过反向代理,能够实现将请求转向多台内部server,既能加快处理的速度。又能减轻server的压力。

    至此,简单的反向代理与负载均和实例就完毕了。看似非常easy的功能。可是对于Linux菜鸟来说在操作时会遇到各种问题。比方改动配置文件。怎样使用命令来操作等。当然等熟练之后也就得心应手了,并且如今有好多专门的工具进行文件的改动。

版权声明:本文为博主原创文章,未经博主同意不得转载。

  • 本文已收录于下面专栏:

Nginx简单实现反向代理和负载均衡

Nginx安装好之后,開始使用它来简单实现反向代理与负载均衡的功能。在这之前,首先得脑补一下什么是反向代理和负载均衡。
  反向代理:是指以代理server来接收Internet上的请求,然后将请求转发到...
  • u013036278
  • 2017年02月05日 20:10
  • 2170

Nginx反向代理和负载均衡

1.反向代理概念(1).正向代理的概念
正向代理,也就是传说中的代理,他的工作原理就像一个跳板。简单的说。我是一个用户。我訪问不了某站点,可是我能訪问一个代理server,这个代理server呢,...
  • qq_21267705
  • 2016年06月27日 22:06
  • 2902

负载均衡 反向代理 nginx

1. 先看下概念性东西(欲完负载均衡  必看其文)

让代理server将请求 均匀转发给多台内部Webserver之中的一个上,从而达到负载均衡的目的。这样的代理方式与普通的代理方式有所不同,标准代理方式是客户使用代理...

  • yilukuangpao
  • 2016年07月12日 13:06
  • 2399

Nginx简单实现反向代理和负载均衡

Nginx安装好之后,開始使用它来简单实现反向代理与负载均衡的功能。在这之前。首先得脑补一下什么是反向代理和负载均衡。

反向代理:是指以代理server来接收Internet上的请求,然后将请求转发到...

  • ahjxhy2010
  • 2017年04月17日 11:44
  • 128

Nginx简单实现反向代理和负载均衡

Nginx安装好之后。開始使用它来简单实现反向代理与负载均衡的功能。在这之前,首先得脑补一下什么是反向代理和负载均衡。
  反向代理:是指以代理server来接收Internet上的请求。然后将请求转发到...
  • qq_34341290
  • 2017年04月17日 11:04
  • 195

学习Nginx反向代理实现简单负载均衡

学习Nginx反向代理实现简单负载均衡
  • zhangming1013
  • 2015年03月03日 21:59
  • 824

使用Nginx反向代理来实现简单的负载均衡

Nginx反向代理的原理长处:
反向代理能够简单的理解为:代理server来接收internet上的server请求,然后将请求转发给内部的server上,然后将结果返回给internet上请求的client,所以代理服务...
  • RuanJava
  • 2013年02月28日 14:21
  • 601

使用nginx简单实现反向代理和负载均衡

nginx 这个轻量级、高性能的 web server 主要能够干两件事情:

  〉直接作为http server(取代apache,对PHP须要FastCGI处理器支持);
  〉另外一个功...

  • xingyunLOST
  • 2015年10月23日 11:47
  • 302

Maven项目热部署、nginx反向代理负载均衡

  • 2017年11月05日 09:28
  • 416KB
  • 下载

nginx的反向代理和负载均衡的安装手冊

  • 2017年09月07日 10:41
  • 313KB
  • 下载

反向代理:是指以代理server来接收Internet上的请求,然后将请求转发到内部网络的server上,并将结果返回给Internet上连接的client,此时的代理server对外就表现为反向代理server。的更多相关文章

  1. 远程首次连接mysql速度慢的解决方法:skip-name-resolve取消DNS的反向解析(转)

    PHP远程连接MYSQL速度慢,有时远程连接到MYSQL用时4-20秒不等,本地连接MYSQL正常,出现这种问题的主要原因是,默认安装的 MYSQL开启了DNS的反向解析,在MY.INI(WINDOW ...

  2. 远程连接mysql速度慢的解决方法:skip-name-resolve取消DNS的反向解析

    PHP远程连接MYSQL速度慢,有时远程连接到MYSQL用时4-20秒不等,本地连接MYSQL正常,出现这种问题的主要原因是,默认安装的 MYSQL开启了DNS的反向解析,在MY.INI(WINDOW ...

  3. 设计网页录入信息与自己定义server数据接收

    需求:设计一个注冊网页用于录入username和登录password.并将数据传入server并显示出来. 1.前言:网页提交的 get 和 post 两种方式. (1)对于get提交方式,以本文中样 ...

  4. MySQL安装教程及Navicat连接MySQL报错:1251-Client does not support authentication protocol requested by server

    MySQL安装可参考: MySql 8.0.18安装 此参考文章后面涉及到的密码修改,对本标题碰到的错误同样适用. 本文先讲如何安装,在讲碰到的1251问题.要直接看解决方案的朋友可以直接通过目录链接 ...

  5. 服务器文档下载zip格式 SQL Server SQL分页查询 C#过滤html标签 EF 延时加载与死锁 在JS方法中返回多个值的三种方法(转载) IEnumerable,ICollection,IList接口问题 不吹不擂,你想要的Python面试都在这里了【315+道题】 基于mvc三层架构和ajax技术实现最简单的文件上传 事件管理

    服务器文档下载zip格式   刚好这次项目中遇到了这个东西,就来弄一下,挺简单的,但是前台调用的时候弄错了,浪费了大半天的时间,本人也是菜鸟一枚.开始吧.(MVC的) @using Rattan.Co ...

  6. ruby使用DBI连接MySQL数据库发生异常:in `error': Can't connect to MySQL server on 'localhost' (10061) (DBI::DatabaseError)

    Ruby使用DBI连接MySQL数据库一般为: require "dbi" dbh = DBI.connect("dbi:Mysql:test:localhost&quo ...

  7. Window Server IIS6.0部署webservice请求调用提示请求失败

    在一台window server 2003机器上部署了一个webservice,iis为6.0,奇怪的是.在服务器本机调用webservice成功了,可是在其它client调用却反馈失败.详细什么原因 ...

  8. mac下安装mysql 连接时候报错 ERROR 2002 (HY000): Can't connect to local MySQL server through socket '/tmp/mysql.sock' (2)

    http://segmentfault.com/q/1010000000094608 同样的问题,先在网上搜了下其他人解决这个问题的方法,是去修改mysql.cnf文件添加mysql.sock文件路径 ...

  9. 使用SSH代理上IPV6(使用SSH端口转发)

    这几个月在国外待着,一直担心我的六维账户怎么办,那可是个宝贝啊.我看网上说可以用六飞啊神马的在IPV6下上IPV6的网站,但是冒失现在六维封禁了非学校的IPV6地址,所以这些软件就不顶用了. 想到以前 ...

随机推荐

  1. js 限制只能输入数字小数点

    function checkNum(e) { var re = /^\d+(?=\.{0,1}\d+$|$)/ if (e.value != "") { if (!re.test( ...

  2. 版本管理系统:svn和git

    svn是常用的版本管理系统,解决团队协作开发和版本管理问题, 一.服务器端:是一个文件存储仓库,可以设置用户并管理其访问的权限.主要功能包括 ①设置文件存储路径,是管理文件版本的基础 ②设置用户:可以 ...

  3. Linux的用户和组管理

    1.用户和组 一个用户必须有一个主组 一个用户可以同时属于多个组 一个组可以拥有多个用户 用户信息存在: /etc/passwd 组信息存在:/etc/group 密码信息存在: /etc/shado ...

  4. CentOS 6 IPv6 关闭方法

    http://www.linuxidc.com/Linux/2012-06/63642.htm http://blog.csdn.net/ccscu/article/details/7814028

  5. [Vue + TS] Use Properties in Vue Components Using @Prop Decorator with TypeScript

    With properties we can follow a one-way parent→child flow communication between components. This les ...

  6. windows和Linux内存的对齐方式

    一.内存对齐的初步解说 内存对齐能够用一句话来概括: "数据项仅仅能存储在地址是数据项大小的整数倍的内存位置上" 比如int类型占用4个字节,地址仅仅能在0,4,8等位置上. 例1 ...

  7. 一个很详细的web.xml讲解(转)

    <?xml version="1.0" encoding="UTF-8"?> <!DOCTYPE web-app PUBLIC "- ...

  8. $(dom).each(index,ele){} 真正的jquery对象

    1.$(ele)才是each真正的jquery对象,而不是ele.$('.mt-story-info').each(function(index,ele){ if($('.mt-story-info' ...

  9. VC error link

    错误1:LIBCD.lib(crt0.obj) : error LNK2001: unresolved external symbol _main在project-setting-link里找到pro ...

  10. MyBatis学习总结(13)——Mybatis查询之resultMap和resultType区别

    MyBatis的每一个查询映射的返回类型都是ResultMap,只是当我们提供的返回类型属性是resultType的时候,MyBatis对自动的给我们把对应的值赋给resultType所指定对象的属性 ...