我是靠谱客的博主 明理美女,这篇文章主要介绍Nginx反向代理与负载均衡、以及整合 Memcached一、反向代理与负载均衡是什么?二、Nginx反向代理设置三、Nginx 第三方模块的安装,现在分享给大家,希望可以做个参考。

文章目录

  • 一、反向代理与负载均衡是什么?
    • 1.正向代理
    • 2.反向代理
    • 3.当 解析出结果,比如浏览器连接60.217时,
  • 二、Nginx反向代理设置
    • 1.引入库
  • 三、Nginx 第三方模块的安装
    • 1、安装ngx_http_php_memcache_standard_balancer-maste
    • 2、Nginx配置memcache集群

一、反向代理与负载均衡是什么?

1.正向代理

在这里插入图片描述

2.反向代理

在这里插入图片描述
具体的负载均衡的方式:

注意:负载均衡是一种方案,实现办法有DNS轮询,
如下图,DNS服务器允许一个域名有多个A记录,
那么在用户访问时,一般按地域返回一个较近的解析记录.
这样,全国不同的地区的用户,看到的163的主页,来自不同的服务器.

在这里插入图片描述

3.当 解析出结果,比如浏览器连接60.217时,

这台主机后面还有N台,也要做负载均衡.
1: 硬件上做负载均衡, F5 BIG-IP ,硬件负载均衡(很贵).
直接从TCP/IP的底层协议上,直接做数据包的中转.
2: 软件负载均衡, LVS
3: 反向代理+负载均衡

在这里插入图片描述

二、Nginx反向代理设置

1.引入库

复制代码
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
: 把图片重写到 8080端口(既然能写到8080端口,就意味着可以写到其他独立服务器上) location ~ .(jpg|jpeg|png|gif)$ { proxy_pass http://192.168.1.204:8080; expires 1d; } 集群与均衡-----如果后端的服务器非常多,该如何写? 又如何均匀的分发任务? nginx 与memcached的组合 用法: nginx响应请求时,直接请求memcached, 如果没有相应的内容,再回调PHP页面,去查询database,并写入memcached. 分析: memcached是k/v存储, key-->value, nginx请求memecached时,用什么做key? 一般用 uri arg 做key,/abc.php?id=3

三、Nginx 第三方模块的安装

1、安装ngx_http_php_memcache_standard_balancer-maste

以ngx_http_php_memcache_standard_balancer-master为例
1:解压 到 path/ngx_module

配置:
./configure --prefix=/xxx/xxx --add_module=/path/ngx_module
编译 安装
Make && make instal

2、Nginx配置memcache集群

复制代码
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
upstream memserver { 把用到的memcached节点,声明在一个组里 hash_key $request_uri; // hash计算时的依据,以uri做依据来hash server localhost:11211; server localhost:11212; } Location里 location / { # root html; set $memcached_key $uri; memcached_pass memserver; // memserver为上面的memcache节点的名称 error_page 404 /writemem.php; index index.php index.html index.htm; } 在nginx中做集群与负载均衡,步骤都是一样的 Upstream {}模块 把多台服务器加入到一个组 然后 memcached_pass, fastcgi_pass, proxy_pass ==> upstream组

在nginx中做集群与负载均衡,步骤都是一样的
Upstream {}模块 把多台服务器加入到一个组
然后 memcached_pass, fastcgi_pass, proxy_pass ==> upstream组

默认的负载均衡的算法:
是设置计数器,轮流请求N台服务器.
可以安装第3方模式,来利用uri做hash等等.

如http://wiki.nginx.org/NginxHttpUpstreamConsistentHash
这个模块就是用一致性hash来请求后端结节,并且其算法,
与PHP中的memcache模块的一致性hash算法,兼容.

安装该模块后:
Nginx.conf中

复制代码
1
2
3
4
5
6
upstream memserver { consistent_hash $request_uri; server localhost:11211; server localhost:11212; }

在PHP.ini中,如下配置

memcache.hash_strategy = consistent

这样: nginx与PHP即可完成对memcached的集群与负载均衡算法.

最后

以上就是明理美女最近收集整理的关于Nginx反向代理与负载均衡、以及整合 Memcached一、反向代理与负载均衡是什么?二、Nginx反向代理设置三、Nginx 第三方模块的安装的全部内容,更多相关Nginx反向代理与负载均衡、以及整合内容请搜索靠谱客的其他文章。

本图文内容来源于网友提供,作为学习参考使用,或来自网络收集整理,版权属于原作者所有。
点赞(40)

评论列表共有 0 条评论

立即
投稿
返回
顶部