linux之反向代理,反向代理实例,负载均衡实例
nginx反向代理
参考博客:
https://www.cnblogs.com/anruy/p/4989161.html
https://www.cnblogs.com/pyyu/p/9468680.html
1. 概述
反向代理(Reverse Proxy)方式是指 以代理服务器来接受internet上的连接请求, 然后将请求转发给内部网络上的服务器, 并将从服务器上得到的结果返回给internet上请求连接的客户端, 此时代理服务器对外就表现为一个服务器.
通常的代理服务器, 只用于代理内部网络对Internet的连接请求, 客户机必须指定代理服务器, 并将本来要直接发送到web服务器上的http请求发送到代理服务器中. 当一个代理服务器能够代理外部网络上的主机, 访问内部网络时, 这种代理服务的方式就称为反向代理.
2. 反向代理服务器的工作原理
反向代理服务器通常有两种模型, 它可以作为内容服务器的替身, 也可以作为内容服务器集群的负载均衡器.
(1)作为内容服务器的替身
如果您的内容服务器具有必须保持安全的敏感信息, 如信用卡号数据库, 可在防火墙外部设置一个代理服务器作为内容服务器的替身. 当外部客户机尝试访问内容服务器时, 会将其送到代理服务器. 实际内容位于内容服务器上, 在防火墙内部受到安全保护. 代理服务器位于防火墙外部, 在客户机看来就像是内容服务器.
当客户机向站点提出请求时, 请求将转到代理服务器. 然后, 代理服务器通过防火墙中的特定通路, 将客户机的请求发送到内容服务器. 内容服务器再通过该通道将结果回传给代理服务器. 代理服务器将检索到的信息发送给客户机, 好像代理服务器就是实际的内容服务器. 如果内容服务器返回错误消息, 代理服务器会先行截取该消息并更改标头中列出的任何 URL, 然后再将消息发送给客户机. 如此可防止外部客户机获取内部内容服务器的重定向 URL.
这样, 代理服务器就在安全数据库和可能的恶意攻击之间提供了又一道屏障. 与有权访问整个数据库的情况相对比, 就算是侥幸攻击成功, 作恶者充其量也仅限于访问单个事务中所涉及的信息. 未经授权的用户无法访问到真正的内容服务器, 因为防火墙通路只允许代理服务器有权进行访问.
(2)作为内容服务器的负载均衡器
可以在一个组织内使用多个代理服务器来平衡各 Web 服务器间的网络负载. 在此模型中, 可以利用代理服务器的高速缓存特性, 创建一个用于负载平衡的服务器池. 此时, 代理服务器可以位于防火墙的任意一侧. 如果 Web 服务器每天都会接收大量的请求, 则可以使用代理服务器分担 Web 服务器的负载并提高网络访问效率.
对于客户机发往真正服务器的请求, 代理服务器起着中间调停者的作用. 代理服务器会将所请求的文档存入高速缓存. 如果有不止一个代理服务器, DNS 可以采用“循环复用法”选择其 IP 地址, 随机地为请求选择路由. 客户机每次都使用同一个 URL, 但请求所采取的路由每次都可能经过不同的代理服务器.
可以使用多个代理服务器来处理对一个高用量内容服务器的请求, 这样做的好处是内容服务器可以处理更高的负载, 并且比其独自工作时更有效率. 在初始启动期间, 代理服务器首次从内容服务器检索文档, 此后, 对内容服务器的请求数会大大下降.
二. nginx反向代理实例
1.前期准备
- 准备两台或两台以上的服务器
- 代理服务器:
192.168.15.109
- 资源服务器:
192.168.15.135
- 代理服务器:
- 两台服务器上都安装好nginx
2.代理服务器配置
cd /opt/nginx112/conf
ls
vim nginx.conf #编辑nginx.conf文件
# 在nginx.conf中写入如下信息:
server {
listen 80;
server_name lihaitao.com; #注意修改windows操作系统中hosts文件
location / {
#proxy_pass参数: 当我的请求是lihaitao.com时,该nginx不做处理,只是转发请求给另一台服务器192.168.15.135:8000
proxy_pass http://192.168.15.135:8000;
}
}
nginx # 启动nginx
nginx -s reload # 平滑重启nginx
3.资源服务器配置
cd /opt/nginx112/conf
ls
vim nginx.conf #编辑nginx.conf文件
server {
listen 8000; #监听的端口
server_name localhost; #监听的域名,localhost表示本机ip
location / {
root /opt/fanxiangdaili_static; #存放静态资源的路径
index index.html; #静态文件
}
}
mkdir /opt/fanxiangdaili_static
cd /opt/fanxiangdaili_static
touch index.html
vim index.html # 编辑index.html文件,内容随意,例如:
<h1>hello world!</h1>
nginx # 启动nginx
nginx -s reload # 平滑重启nginx
4.浏览器访问代理服务器
三. nginx负载均衡实例
1.前期准备
- 准备三台或三台以上的服务器
- 服务器1(负载均衡器):
192.168.15.109
- 服务器2(web应用资源1):
192.168.15.135
- 服务器3(web应用资源2):
192.168.15.25
- 服务器1(负载均衡器):
- 三台服务器上都安装好nginx
2.配置服务器1(负载均衡器)
vim /opt/nginx112/conf/nginx.conf #编辑nginx.conf文件
# upstream: 地址池, 该参数写在http{}内部,server{}上部
upstream s16backup {
server 192.168.15.135;
server 192.168.15.25;
}
# server: 虚拟主机,配置修改如下
server {
listen 80;
server_name chiji.com;
location / {
#proxy_pass参数: 转发给地址池 s16backup
proxy_pass http://s16backup;
}
}
nginx # 启动nginx
nginx -s reload # 平滑重启nginx
3.配置服务器2(web应用资源1)
vim /opt/nginx112/conf/nginx.conf #编辑nginx.conf文件
server {
listen 80;
server_name localhost;
location / {
root /opt/fuzaijunheng1_static;
index index.html;
}
error_page 404 401 400 403 /40x.html;
}
# nginx负载均衡算法
# 默认是轮训方式,你一次我一次
# 权重算法:
upstream django {
server 192.168.15.135 weight=2;
server 192.168.15.25 weight=8;
}
# 哈希算法: ip哈希和权重不得同时存在
upstream django {
server 192.168.15.135;
server 192.168.15.25;
ip_hash;
}
mkdir /opt/fuzaijunheng1_static
cd /opt/fuzaijunheng1_static
touch index.html 40x.html
vim index.html # 编辑index.html,内容如下:
<h1>This is resource server1!!!</h1>
vim 40x.html # 40x.html,内容如下:
<h1>40x error!!!</h1>
nginx # 启动nginx
nginx -s reload # 平滑重启nginx
4.配置服务器3(web应用资源2)
与步骤3类似
5.浏览器访问服务器1
重复刷新chiji.com, 循环出现以上二图(轮训方式).
linux之反向代理,反向代理实例,负载均衡实例的更多相关文章
- Nginx配置实例-负载均衡实例:平均访问多台服务器
场景 Nginx配置实例-反向代理实例:根据访问的路径跳转到不同端口的服务中: https://blog.csdn.net/BADAO_LIUMANG_QIZHI/article/details/10 ...
- Nginx代理tcp端口实现负载均衡
Nginx代理tcp端口实现负载均衡 1.修改配置文件 vi /etc/nginx/nginx.conf 添加如下配置: stream { ###XXX upstream notify { has ...
- linux下配置tomcat集群的负载均衡
linux下配置tomcat集群的负载均衡 一.首先了解下与集群相关的几个概念集群:集群是一组协同工作的服务实体,用以提供比单一服务实体更具扩展性与可用性的服务平台.在客户端看来,一个集群就象是一个服 ...
- Nginx-配置负载均衡实例
配置负载均衡实例 实现效果: 配置负载均衡 实验代码 1) 首先准 备两个同时启动的 Tomcat 2) 在 nginx.conf 中进行配置 随着互联网信息的爆炸性增长,负载均衡(load bala ...
- Nginx 负载均衡实例redis
Nginx 负载均衡实例redis 作者:尹正杰 版权声明:原创作品,谢绝转载!否则将追究法律责任.
- linux下nginx【反向代理】配置【负载均衡】配置
nginx 可以配置多个端口: 1.10088端口 配置反向代理,消除跨域问题. 2.10087端口 配置ip_hash模式的负载均衡,ip_hash可以绕开解决session共享的问题. nginx ...
- .net core 跨平台开发 微服务架构 基于Nginx反向代理 服务集群负载均衡
1.概述 反向代理(Reverse Proxy)方式是指以代理服务器来接受internet上的连接请求,然后将请求转发给内部网络上的服务器,并将从服务器上得到的结果返回给internet上请求连接的客 ...
- 通过Nginx TCP反向代理实现Apache Doris负载均衡
概述 Nginx能够实现HTTP.HTTPS协议的负载均衡,也能够实现TCP协议的负载均衡.那么,问题来了,可不可以通过Nginx实现Apache Doris数据库的负载均衡呢?答案是:可以.接下来, ...
- 4-nginx-反向代理到tomcat及负载均衡
反向代理相比于正向代理, 比如使用搬瓦工时, 就是位于客户端的正想代理, 而反向代理则是服务器端的代理, 主要用于实现请求分发, 负载均衡等功能 正向代理推荐一个: 搬瓦工, 比较好用.. 反向代理主 ...
随机推荐
- OEL7.2下Oracle11.2.0.4RAC部署
OEL7.2下Oracle11.2.0.4RAC部署 一. 安装步骤简述 u OEL7.2操作系统安装 u RAC 安装环境配置 u ORACLE CRS安装 u ORACLE DB软件安装 u OR ...
- JS 字符串转字节截取
/* * param str 要截取的字符串 * param L 要截取的字节长度,注意是字节不是字符,一个汉字两个字节 * return 截取后的字符串 */ function CutStr(str ...
- 中文录入问题 转载自:http://blog.csdn.net/ichsonx/article/details/8625925
2.1中文录入问题 默认安装的msysgit的shell环境中无法输入中文,为了能在shell界面输入中文,需要修改配置文件/etc/inputrc,增加或修改相关配置如下: #disable/ena ...
- 【JAVA-算法】 截取2个字符中间的字符串
Java Code /** 截取2个字符中间的字符串 */ private void GetMiddleString() { String str = "BB022220011BB007EB ...
- Linux 防火墙遇到的问题
一直报这个错误,写个博客来记录一下问题 在centos7中执行service iptables start 报如下错误 执行如下命令 systemctl stop firewalld systemct ...
- POJ1961 Period && POJ2604 Power Strings 字符串循环节
两道题都是求循环节的...但是一道是学哈希时做的,另一道是学$KMP$时做的 POJ2604 用的哈希...枚举长度的因数作为循环节的长度,然后暴力算出所有循环节位置的哈希值,看看是否相等. #inc ...
- 我爱网络流之最大流Dinic
直接上大佬博客: Dinic算法详解及实现来自小菲进修中 Dinic算法(研究总结,网络流)来自SYCstudio 模板步骤: 第一步,先bfs把图划分成分成分层图网络 第二步,dfs多次找增广路 当 ...
- Codeforces 869E. The Untended Antiquity (二维Fenwick,Hash)
Codeforces 869E. The Untended Antiquity 题意: 在一张mxn的格子纸上,进行q次操作: 1,指定一个矩形将它用栅栏围起来. 2,撤掉一个已有的栅栏. 3,询问指 ...
- CF1207A
CF1207A-There Are Two Types Of Burgers 题意: 出售普通汉堡和鸡肉汉堡,并且两种汉堡所需的原材料价格不同,问最多能卖多少钱. 解法: 对于这道题,我们优先考虑先卖 ...
- 【零基础】为什么Facebook发币就不一样
参考: https://baijiahao.baidu.com/s?id=1637182596912694597&wfr=spider&for=pc https://blog.csdn ...