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

Posted PHP学习中心

tags:

篇首语:本文由小常识网(cha138.com)小编为大家整理,主要介绍了Nginx简单实现反向代理和负载均衡相关的知识,希望对你有一定的参考价值。

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

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

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

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

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

实例:

1、准备工作

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

2、文件修改

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

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

修改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. server {

  6. listen 80;

  7. server_name tomcat.vb2c.com;


  8. location /{

  9. proxy_pass http://tomcats;

  10. index index.html index.htm;

  11. }

  12. }

分别启动tomcat(本次使用两个tomcat)、nginx服务器

3、测试

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

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

  1. upstream tomcats{

  2. server 192.168.91.129:8080 weight=2;

  3. server 192.168.91.129:8081;

  4. }


  5. server {

  6. listen 80;

  7. server_name tomcat.vb2c.com;


  8. location /{

  9. proxy_pass http://tomcats;

  10. index index.html index.htm;

  11. }

  12. }

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

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

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


以上是关于Nginx简单实现反向代理和负载均衡的主要内容,如果未能解决你的问题,请参考以下文章

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

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

Nginx实现反向代理负载均衡功能

Nginx反向代理和负载均衡应用实战

Nginx反向代理和负载均衡应用实战

Nginx反向代理负载均衡