首页 > 代码库 > Nginx简单实现反向代理和负载均衡

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

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

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

   通俗来讲,反向代理服务器就好比我们常说的中介,Internet客户端可以看作是租房的客户,而内部网络的服务器好比是房东。租户通过中介与房东沟通,最后租到房子。

                技术分享

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


   实例:

     1、准备工作

        Nginx服务器、多个应用服务器(本实例使用tomcat)

     2、文件修改

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

           技术分享

        修改nginx安装目录下的配置文件nginx.conf(本路径为/usr/local/nginx/nginx.conf),增加Server节点,如下:   

upstream tomcats{
	   server 192.168.91.129:8080 ;
	   server 192.168.91.129:8081;
	}
	
	server {
		listen  80;
		server_name  tomcat.vb2c.com;
	
		location /{
		proxy_pass http://tomcats;
		index index.html index.htm; 
		}
	}
        分别启动tomcat(本次使用两个tomcat)、nginx服务器

     3、测试

       在本地输入:tomcat.vb2c.com地址,没刷新一次访问不同的tomcat服务器,如下:

       技术分享

 技术分享

      在此基础上实现负载均衡,其实就是为Server端口加上weight权重,权重越大,访问的概率越大,如下:     

 upstream tomcats{
	   server 192.168.91.129:8080 weight=2;
	   server 192.168.91.129:8081;
	}
	
	server {
		listen  80;
		server_name  tomcat.vb2c.com;
	
		location /{
		proxy_pass http://tomcats;
		index index.html index.htm; 
		}
	}
      访问时,8080的响应次数大于8081


    我们从外部进行访问时,实际访问的是Nginx服务器,但是Nginx服务器将我们的请求转发给内部的tomcat服务器,从外相来看,我们访问的是Nginx,实际上是tomcat。此时的Nginx服务器就作了反向代理的功能,这样的优点就是,众多用户同时访问一台服务器,通过反向代理,可以实现将请求转向多台内部服务器,既能加快处理的速度,又能减轻服务器的压力。

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

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