Nginx简单实现反向代理和负载均衡
Posted PHP学习中心
tags:
篇首语:本文由小常识网(cha138.com)小编为大家整理,主要介绍了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、测试
在此基础上实现负载均衡,其实就是为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简单实现反向代理和负载均衡的主要内容,如果未能解决你的问题,请参考以下文章