Nginx实现反向代理


Posted in Servers onSeptember 20, 2017

一、代理服务器

1、什么是代理服务器

代理服务器,客户机在发送请求时,不会直接发送给目的主机,而是先发送给代理服务器,代理服务接受客户机请求之后,再向主机发出,并接收目的主机返回的数据,存放在代理服务器的硬盘中,再发送给客户机。

Nginx实现反向代理

2、为什么要使用代理服务器

1)提高访问速度

    由于目标主机返回的数据会存放在代理服务器的硬盘中,因此下一次客户再访问相同的站点数据时,会直接从代理服务器的硬盘中读取,起到了缓存的作用,尤其对于热门站点能明显提高请求速度。

2)防火墙作用

    由于所有的客户机请求都必须通过代理服务器访问远程站点,因此可在代理服务器上设限,过滤某些不安全信息。

3)通过代理服务器访问不能访问的目标站点

    互联网上有许多开发的代理服务器,客户机在访问受限时,可通过不受限的代理服务器访问目标站点,通俗说,我们使用的翻墙浏览器就是利用了代理服务器,虽然不能出国,但也可直接访问外网。

二、反向代理 VS 正向代理

1、什么是正向代理?什么是反向代理?

正向代理,架设在客户机与目标主机之间,只用于代理内部网络对Internet的连接请求,客户机必须指定代理服务器,并将本来要直接发送到Web服务器上的http请求发送到代理服务器中。

Nginx实现反向代理

反向代理服务器架设在服务器端,通过缓冲经常被请求的页面来缓解服务器的工作量,将客户机请求转发给内部网络上的目标服务器;并将从服务器上得到的结果返回给Internet上请求连接的客户端,此时代理服务器与目标主机一起对外表现为一个服务器。

Nginx实现反向代理

2、反向代理有哪些主要应用?

现在许多大型web网站都用到反向代理。除了可以防止外网对内网服务器的恶性攻击、缓存以减少服务器的压力和访问安全控制之外,还可以进行负载均衡,将用户请求分配给多个服务器。

三、方向代理服务器Nginx

Nginx作为近年来较火的反向代理服务器,安装在目的主机端,主要用于转发客户机请求,后台有多个http服务器提供服务,nginx的功能就是把请求转发给后面的服务器,决定哪台目标主机来处理当前请求。下面演示如何进行配置使Nginx发挥作用。

1、模拟n个http服务器作为目标主机

用作测试,简单的使用2个tomcat实例模拟两台http服务器,分别将tomcat的端口改为8081和8082

2、配置IP域名

192.168.72.49 8081.max.com

192.168.72.49 8082.max.com

3、配置nginx.conf

upstream tomcatserver1 {   
server 192.168.72.49:8081;   

 } 

upstream tomcatserver2 {    
server 192.168.72.49:8082;   

} 

 server {    

     listen    80;      

    server_name 8081.max.com;      
    #charset koi8-r;      
    #access_log logs/host.access.log main;      
    location / {       
     proxy_pass  http://tomcatserver1;       

     index index.html index.htm;     

 }      

} 

server {     

      listen    80;     
     server_name 8082.max.com;      
      #charset koi8-r;      
      #access_log logs/host.access.log main;      
     location / {       
     proxy_pass  http://tomcatserver2;       
     index index.html index.htm;     

  }       

 }

流程:

1)浏览器访问8081.max.com,通过本地host文件域名解析,找到192.168.72.49服务器(安装nginx)

2)nginx反向代理接受客户机请求,找到server_name为8081.max.com的server节点,根据proxy_pass对应的http路径,将请求转发到upstream tomcatserver1上,即端口号为8081的tomcat服务器。

4、效果展示

 请求8081.max.com,tomcat1接收返回首页

Nginx实现反向代理

请求8082.max.com,tomcat2接收返回首页

Nginx实现反向代理

四、总结

     通过分析我们不难得出,以百度为例,如果客户机的IP和百度服务器(目标主机)的IP在同一个网段,那就形同局域网内部发送请求,速度极快。

     但如果满足不了这种需求还想到达到一个较好的请求响应时,百度服务器就可以对外提供一个与目标服务器在一个网段的公网IP,也就是反向代理服务的IP,通过代理服务器转发客户机请求,决定幕后的N台服务器谁来处理这个请求,并且由于反向代理服务器与目标主机在一个网段,访问速度也会很快。

     Nginx用作反向代理服务器时,它就是众多反向代理服务器中的一种,通过简单的配置,指定到服务器IP或域名地址便可将客户机请求转发给指定服务器处理请求。

以上就是本文的全部内容,希望对大家的学习有所帮助,也希望大家多多支持三水点靠木。


Tags in this post...

Servers 相关文章推荐
nginx 防盗链防爬虫配置详解
Mar 31 Servers
uwsgi+nginx代理Django无法访问静态资源的解决
May 10 Servers
Consul在linux环境的集群部署
Apr 08 Servers
nginx配置之并发频次限制
Apr 18 Servers
Windows server 2012搭建FTP服务器
Apr 29 Servers
nginx实现多geoserver服务的负载均衡
May 15 Servers
聊聊配置 Nginx 访问与错误日志的问题
May 25 Servers
Python安装及建立虚拟环境的完整步骤
Jun 25 Servers
Windows Server 2012 R2服务器安装与配置的完整步骤
Jul 15 Servers
Nginx使用ngx_http_upstream_module实现负载均衡功能示例
Aug 05 Servers
ssh服务器拒绝了密码 请再试一次已解决(亲测有效)
Aug 14 Servers
destoon在各个服务器下设置URL Rewrite(伪静态)的方法
Jun 21 #Servers
Centos7.7 64位利用本地完整安装包安装lnmp/lamp套件教程
nginx 设置多个站跨域
Mar 09 #Servers
使用Apache的rewrite
Mar 09 #Servers
Apache站点配置SSL强制跳转443
Mar 09 #Servers
Apache压力测试工具的安装使用
Nginx同一个域名配置多个项目的实现方法
Mar 31 #Servers
You might like
在PHP中执行系统外部命令
2006/10/09 PHP
php通过PHPExcel导入Excel表格到MySQL数据库的简单实例
2016/10/29 PHP
php7连接MySQL实现简易查询程序的方法
2020/10/13 PHP
不同编码的页面表单数据乱码问题解决方法
2015/02/15 Javascript
jQuery定义背景动态切换效果的方法
2015/03/23 Javascript
jquery实现弹出层效果实例
2015/05/19 Javascript
js调出上下文菜单的实例
2015/12/17 Javascript
实例解析jQuery中如何取消后续执行内容
2016/12/01 Javascript
读Javascript高性能编程重点笔记
2016/12/21 Javascript
如何使用bootstrap框架 bootstrap入门必看!
2017/04/13 Javascript
详解vue 模版组件的三种用法
2017/07/21 Javascript
Vue项目组件化工程开发实践方案
2018/01/09 Javascript
图文详解vue框架安装步骤
2019/02/12 Javascript
回顾Javascript React基础
2019/06/15 Javascript
layui监听下拉选框选中值变化的方法(包含监听普通下拉选框)
2019/09/24 Javascript
JavaScript实现跟随鼠标移动的盒子
2021/01/28 Javascript
[01:10]DOTA2亚洲邀请赛 征战号角响彻全场
2015/01/06 DOTA
[02:40]2018年度DOTA2最佳新人-完美盛典
2018/12/16 DOTA
wxpython 学习笔记 第一天
2009/03/16 Python
30分钟搭建Python的Flask框架并在上面编写第一个应用
2015/03/30 Python
Python实现的根据IP地址计算子网掩码位数功能示例
2018/05/23 Python
关于python写入文件自动换行的问题
2018/06/23 Python
Python Tkinter模块 GUI 可视化实例
2019/11/20 Python
python itsdangerous模块的具体使用方法
2020/02/17 Python
教你如何用python操作摄像头以及对视频流的处理
2020/10/12 Python
四方通行旅游网:台湾订房、出国旅游
2017/09/20 全球购物
澳大利亚波西米亚风连衣裙在线商店:Fortunate One
2019/04/01 全球购物
印度电子产品购物网站:Vijay Sales
2021/02/16 全球购物
用C#语言写出与SQLSERVER访问时的具体过程
2013/04/16 面试题
给市场的环保建议书
2014/05/14 职场文书
建筑专业毕业生自荐信
2014/05/25 职场文书
保密工作目标责任书
2014/07/28 职场文书
无犯罪记录证明范本
2014/09/15 职场文书
党员领导干部民主生活会批评与自我批评发言
2014/09/28 职场文书
六年级作文之关于梦
2019/10/22 职场文书
Python爬取用户观影数据并分析用户与电影之间的隐藏信息!
2021/06/29 Python