nginx的反向代理和负载均衡的一个总结
之前一直觉的nginx的反向代理和负载均衡很厉害的样子,最近有机会接触了一下公司的这方面的技术,发现技术就是一张窗户纸呀,捅破了啥都明白了!
接下来先看一下nginx的反向代理:
简单的来说就是nginx不去自己处理php相关的请求,而是将php的相关的请求转发给apache来进行处理。

上面就是一个比较简单的一个反向代理的流程图,其实我们也可以叫做“动静分离”,只是反向代理更加的规范。
来看一下它的一个配置:
使用proxy_pass即可进行反向代理,官方给的说明例子:
Syntax: proxy_pass URL;
Default: —
Context: location, if in location, limit_except
我们可以使用类似于下面的这种方法来进行配置:
location / {
proxy_pass http://127.0.0.1/remote/; --- http是必须要带的不然的话 是不会生效的
}
上面就是反向代理的一个简单的使用配置。
那接下来我们来看一下负载均衡的一个概念:
其实就是多台服务器进行共同工作,反向代理的后端如果有多台服务器,那自然可以形成负载均衡,但我们考虑一下proxpy_pass如何指向多台服务器?
那我们其实可以将多台的服务器用一个upstream 上游的服务器组指定绑定在一起并起个组名,然后使用proxpy_pass指向该组即可。
我们来看一下upstream的一个简单的定义:
Syntax: upstream name { ... }
Default: —
Context: http
来看一下下面一个简单的例子:
upstream backend {
server backend1.example.com weight=; //这台机器会承担5个请求,剩下的机器会承担剩余的请求压力
server 127.0.0.1: max_fails= fail_timeout=30s;
server unix:/tmp/backend3;
server backup1.example.com backup;
}
server {
location / {
proxy_pass http://backend;
}
}
默认的均衡的算法很简单,就是针对后端服务器的顺序,逐个请求.
上面就是一个简单的负载均衡的一个例子。
那我们打开日志发现,$remot_addr变成了nginx的IP,而不是用户客户端的原来的IP,那这时候怎么办?
Proxy_set_header X-Forwarded-For $remote_addr;
在每个location中加上这么一句话,就ok了。
再附一张我们之前测试的一个案例:

nginx的反向代理和负载均衡的一个总结的更多相关文章
- Windos环境用Nginx配置反向代理和负载均衡
Windos环境用Nginx配置反向代理和负载均衡 引言:在前后端分离架构下,难免会遇到跨域问题.目前的解决方案大致有JSONP,反向代理,CORS这三种方式.JSONP兼容性良好,最大的缺点是只支持 ...
- nginx简单反向代理和负载均衡(ubuntu)
nginx简单反向代理与负载均衡 环境:三台ubuntu 12.04.5 虚拟机 均装有nginx 1.1.19 以下u1(192.168.240.129) ,u2(192.168.240.13 ...
- nginx的反向代理和负载均衡的区别是什么 - 开源中国社区
nginx的反向代理和负载均衡的区别是什么 - 开源中国社区 nginx的反向代理和负载均衡的区别是什么 #user nobody;worker_processes 1;#error_log ...
- nginx(三)反向代理和负载均衡
nginx(三)反向代理和负载均衡 正向代理概念:比如在学校要上网,在学校内网是一个内网ip,需要连上公网就需要一个正向代理服务器. 反向代理概念: 看下图(Nginx只做请求的转发,后台有多个htt ...
- 七、CentOS 6.5 下 Nginx的反向代理和负载均衡的实现
CentOS 6.5 下 Nginx的反向代理和负载均衡的实现 * 修复上面文章的问题: 复制出一个tomcat2之后,修改service.xml文件时,要修改三个端口: 1. <!-- 800 ...
- nginx实现反向代理和负载均衡
利用nginx做反向代理和负载均衡是减轻服务器压力的有效方式.nginx代理服务器接收多个客户端请求, 根据配置的参数均衡到每个tomcat服务器上,tomcat处理请求,返回响应结果给nginx,n ...
- Nginx使用反向代理实现负载均衡
Nginx使用反向代理实现负载均衡 yls 2019-9-20 简介 基于docker容器以及docker-compose,所以需要自学docker在linux环境的基本使用 使用两个tomcat作为 ...
- nginx 配置反向代理,负载均衡实战解析
前言:NGINX的反向代理和负载均衡是网站架构中经常用到的一种高并发,高可用的方案,下面我们直接实战操作,当然理论也是要的. 一.反向代理 过程:反向代理:客户端 一>代理 <一> ...
- [笔记]nginx配置反向代理和负载均衡
1.nginx配置文件:源码安装情况下,nginx.conf在解压后的安装包内.yum安装,一般情况下,一部分在/etc/nginx/nginx.conf中,一部分在/etc/nginx/conf.d ...
随机推荐
- Inno Setup怎样创建一个自动申请管理员身份运行的快捷
如果你使用的是 Unicode 版本的 Inno Setup,那么以下是更为专业的解决方法. 这是 mlaan 提及的再一种方法. QUOTE( CodeAutomation3.iss) ...
- asp.net环境搭建
win7 开启internet infornation server 勾选相应配置 管理设置里,新增网站,对网站进行配置,设置用户验证连接 根目录下,配置文件web.config
- docker网络配置方法总结
docker启动时,会在宿主主机上创建一个名为docker0的虚拟网络接口,默认选择172.17.42.1/16,一个16位的子网掩码给容器提供了65534个IP地址.docker0只是一个在绑定到这 ...
- 北京动软VAR团队的HoloLens开发教程最新搜罗整理
日前,微软为Windows开发者带来Win10版HoloLens全息眼镜模拟器SDK开发套件工具,借助最新发布的VS2015 Update2和Win10 SDK工具,直接在PC平台上开发和调试原生Wi ...
- oracle之synonym小结
oracle中的同义词可以认为是对表.视图.序列.存储过程.函数.程序包或者其他同义词的一个别名,也就是用一个别名来映射的作用. oracle中的同义词可以分为私有和公有两种,私有同义词(privat ...
- Stanford NLP学习笔记:7. 情感分析(Sentiment)
1. 什么是情感分析(别名:观点提取,主题分析,情感挖掘...) 应用: 1)正面VS负面的影评(影片分类问题) 2)产品/品牌评价: Google产品搜索 3)twitter情感预测股票市场行情/消 ...
- tornado api 简单模板
# 安装 pip insatll tornado # 主文件 web_server.py #!/usr/bin/env python # encoding: utf-8 import tornado. ...
- CentOS7:安装Zabbix
参考:CentOS 7 yum安装Zabbix 1. 安装Zabbix Server EPEL源里面有Zabbix的安装包,所以需要先安装EPEL. Zabbix源也可以从这里获得:http://re ...
- 字典树的C++实现
此次代码使用了诸多新鲜玩意,比如自动类型推断,模板类等等,感觉真的超级好玩啊. 自己做了一个简易的测试,程序的健壮性什么的还是比较差的,此程序留待以后进行功能补全. #pragma once #inc ...
- iOS学习系列-Apache服务器的配置
配置Apache服务器 一.目的 能够有一个测试的服务器,不是所有的特殊网络服务都能找到免费得! 二.为什么我们要用"Apache"? Apache是目前使用最广的web服务器 M ...