首页 > 代码库 > 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简单实现反向代理和负载均衡