nginx实现反向代理与负载均衡

nginx在LB Cluster集群中也可以扮演一定的角色,即反向代理与负载均衡。在一个Web服务中,来自客户端的请求可以经由nginx服务器转发至后端服务器,并且按照一定的算法实现负载均衡。

1.反向代理

1)在192.168.10.17/24与192.168.10.77/24主机上安装nginx,提供web服务。

编辑两台主机的主页文件内容分别为

inode17 page 和inode77 page

2)主机172.16.10.66提供nginx的反向代理服务

为了与后端主机进行通信,此主机需要配置两个IP接口,另一个为192.168.10.66/24

ifconfig eth0:0 192.168.10.66/16

打开nginx的配置文件,在location段中添加一行

proxy_pass  http://192.168.10.17; ##将客户端请求反代至后端服务器

注:proxy_pass后面的路径不带uri时,其会将location的uri传递给后端主机;当proxy_pass后面的路径是一个uri时,其会将location的uri替换为proxy_pass的uri;

3)打开网页测试

http://172.16.10.66

2.提供缓存

1)在172.16.10.66主机上,打开nginx配置文件,在http{}段添加下列行,指明缓存路径,名称等相关信息

proxy_cache_path   /var/cache/nginx/proxy_cache levels=1:2:1 keys_zone=pcache:10m;

在server{}段中添加下列几行内容

proxy_cache  pcache;  ##引用上述定义的缓存

proxy_cache_key  $request_uri;  ## 缓存的关键字

proxy_cache_valid  200 302 1m;  ## 缓存元素,指明要缓存的资源

proxy_cache_valid  301 1h;

proxy_cache_valid  any 1h;

2)检测语法错误,并重新载入配置文件

3)在另一台主机上使用ab命令可以检测添加缓存前后响应速度

3.负载均衡

nginx通过upstream模块实现后端服务器的负载均衡

1)在172.16.10.66主机上,打开nginx配置文件,在http段定义upstream{}上下文

upstream test_lb {

server 192.168.10.17 weight=1; ## 指向后端服务器,权重默认为1

server 192.168.10.77 weight=2;

}

注:可以在上述upsteam中定义算法

least_conn  最少连接调度算法

least_time header|last_byte;   最短平均响应时间和最少连接

ip_hash  源地址hash算法,将同一ip地址的访问发往同一服务器

hash key [consistent] 基于指定的key的hash表实现请求调度

如   hash $request_uri consistent

hash $remote_addr

hash $cookie_name

2)更改location中proxy_pass为:

proxy_pass  http://test_lb;## 已定义的upstream

3)检测语法错误,并重新载入配置文件

4)在客户机上进行测试

输入for i in `seq 10` ;do curl 172.16.10.66 ;done

可以看到两台服务器页面比例为1:2

时间: 2024-10-10 03:01:32

nginx实现反向代理与负载均衡的相关文章

nginx简单反向代理和负载均衡(ubuntu)

nginx简单反向代理与负载均衡 环境:三台ubuntu 12.04.5 虚拟机    均装有nginx 1.1.19 以下u1(192.168.240.129) ,u2(192.168.240.130),u3(192.168.240.131)代表三台虚拟机 简单的反向代理配置:(u1反向到u2) u1的配置: server { listen 80 default_server; server_name  a.jh.net; index index.html index.php root /ho

实践NGINX的反向代理与负载均衡

实践NGINX的反向代理与负载均衡 安装nginx过程 [[email protected] opt]# yum install pcre-devel openssl-devel -y [[email protected] opt]# wget -q http://nginx.org/download/nginx-1.10.2.tar.gz [[email protected] opt]# useradd nginx -s /sbin/nologin -M [[email protected]

nginx 作为反向代理实现负载均衡的例子

nginx 这个轻量级.高性能的 web server 主要可以干两件事情: 〉直接作为http server(代替apache,对PHP需要FastCGI处理器支持): 〉另外一个功能就是作为反向代理服务器实现负载均衡 以下我们就来举例说明如何使用 nginx 实现负载均衡.因为nginx在处理并发方面的优势,现在这个应用非常常见.当然了Apache的 mod_proxy和mod_cache结合使用也可以实现对多台app server的反向代理和负载均衡,但是在并发处理方面apache还是没有

nginx配置反向代理和负载均衡

一.反向代理 说明:应该有一个nginx服务器有多个应用服务器(可以是tomcat),本文使用一台虚拟机,安装一个nginx,多个tomcat,来模拟 upstream tomcats{ server 192.168.25.148:8080; server 192.168.25.148:8081; } server { listen 80; server_name tomcat.taotao.com; #charset koi8-r; #access_log logs/host.access.l

Nginx 的反向代理与负载均衡

反向代理与负载均衡 反向代理: 明确知道要访问哪个网站,借助代理网站来访问就是正向代理:第三方服务器为我们提供了访问服务器集群的内容,但我们不知道是哪台服务器提供的内容,这种代理方式称为反向代理. 负载均衡: 建立很多个服务器,这些服务器组成一个服务器集群,当有请求时中间服务器选择一个压力较小的服务器,然后将请求引入该选择的服务器,这样每个服务器压力趋于平衡,这就是负载均衡.负载均衡是通过反向代理来实现的. Nginx 负载均衡的实现 1.新建一个配置文件fzjh.conf中 touch fzj

Nginx的反向代理及负载均衡

1.集群的简介 简单来说,集群就是指一组相互独立的计算机,利用高速通信网络组成的一个较大的计算机服务系统,每个集群节点都是运行各自服务的独立服务器.这些服务器之间可以彼此通信,协同向用户提供应用程序.系统资源和数据,并以单一系统的模式加以管理.当用户客户机请求集群系统时,集群给用户的感觉就是一个单一的服务器,而实际上用户请求的是一组集群服务器. 集群主要包括几大特点:高性能.价格有效性.可伸缩性.高可用性.透明性.可管理性和可编程性. 2.负载均衡集群 常见的负载均衡的架构包括有负载均衡集群.高

nginx实现反向代理及负载均衡

一.反向代理 1.什么是反向代理 通常的代理服务器,只用于代理内部网络对Internet的连接请求,客户机必须指定代理服务器,并将本来要直接发送到Web服务器上的http请求发送到代理服务器中由代理服务器向Internet上的web服务器发起请求,最终达到客户机上网的目的(也就是正向代理). 而反向代理(Reverse Proxy)方式是指以代理服务器来接受internet上的连接请求,然后将请求转发给内部网络上的服务器,并将从服务器上得到的结果返回给internet上请求连接的客户端,此时代理

nginx实现反向代理、负载均衡-技术流ken

1.简介 本篇博文是<nginx实现动态/静态文件缓存-技术流ken>的二部曲.将详细介绍nginx如何实现反向代理以及负载均衡技术,并辅以实战案例. 反向代理--"反向代理(Reverse Proxy)方式是指以代理服务器来接受internet上的连接请求,然后将请求转发给内部网络上的服务器,并将从服务器上得到的结果返回给internet上请求连接的客户端,此时代理服务器对外就表现为一个反向代理服务器." 负载均衡--"网络专用术语,负载均衡建立在现有网络结构之

在ubuntu上面配置nginx实现反向代理和负载均衡

上一篇文章(http://www.cnblogs.com/chenxizhang/p/4684260.html),我做了一个实验,就是利用Visual Studio,基于Nancy框架,开发了一个自托管(Self-hosting)的应用程序,然后将其部署到了一台Ubuntu的虚拟机上面,通过mono将其顺利地运行了起来,这样也就实现了.NET应用程序在Liunx系统上面的移植. 这一篇要讲解的是进一步的实验,我们都知道Nginx这款服务器,它可以用来做反向代理服务器,也可以做负载均衡. 关于ng