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及负载均衡
反向代理相比于正向代理, 比如使用搬瓦工时, 就是位于客户端的正想代理, 而反向代理则是服务器端的代理, 主要用于实现请求分发, 负载均衡等功能 正向代理推荐一个: 搬瓦工, 比较好用.. 反向代理主 ...
随机推荐
- PAT乙级1042
题目链接 https://pintia.cn/problem-sets/994805260223102976/problems/994805280817135616 题解 用数组count存储字母出现 ...
- angular reactive form
这篇文章讲了angular reactive form, 这里是angular file upload 组件 https://malcoded.com/posts/angular-file-uploa ...
- R中数据的输入和数据的标注
数据的导入 默认情况下数据导入时,字符型变量将转化为因子.若不希望转化,可设置 stringsAsFactors=FALSE 从带分隔符的文本文件中导入数据 read.table() file --& ...
- solr 分面搜索(转载)
原文地址:http://blog.csdn.net/bingduanlbd/article/details/52199347 分面搜索(Faceting)基于索引词项对搜索结果进行分类,同时返回每个分 ...
- iOS native plugin 的代码sample
https://bitbucket.org/Unity-Technologies/iosnativecodesamples/src/stable/ 不在这个stable版本 在2017 dev这个版本
- tar命令--数据解档(三)解压.tar.gz文件报错 gzip:stdin:not in gzip format
毕竟是生产..... 提示以下信息: gzip: stdin: not in gzip format tar: Child returned status 1 tar: Error is not ...
- vue-cli使用less
vue-cli中使用less package.json 中添加 less,less-loader 之后不需要进行其他配置 在vue-cli构建的项目中 utils.js 已经帮我们引入了各种css编辑 ...
- ila核数据输出
在Tcl Console中输入以下命令(其中dataxxxx表示文件名,hw_ila_2则为ila窗口名): write_hw_ila_data -csv_file -force dataxxxx [ ...
- git branch/meger step(3)
# update last repositories git pull git log # create yourself repositories base on last repositories ...
- C++关键字——register
register修饰符暗示编译程序相应的变量将被频繁地使用,如果可能的话,应将其保存在CPU的寄存器中,以加快其存储速度.例如下面的内存块拷贝代码, #ifdef NOSTRUCTASSIGN mem ...