PHP使用Nginx实现反向代理


Posted in PHP onSeptember 20, 2017

一、代理服务器

1、什么是代理服务器

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

PHP使用Nginx实现反向代理

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

1)提高访问速度

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

2)防火墙作用

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

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

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

二、反向代理 VS 正向代理

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

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

PHP使用Nginx实现反向代理

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

PHP使用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接收返回首页

PHP使用Nginx实现反向代理

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

PHP使用Nginx实现反向代理

四、总结

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

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

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

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

PHP 相关文章推荐
常用的php ADODB使用方法集锦
Mar 25 PHP
php中get_headers函数的作用及用法的详细介绍
Apr 27 PHP
解析php安全性问题中的:Null 字符问题
Jun 21 PHP
PHP网页游戏学习之Xnova(ogame)源码解读(五)
Jun 23 PHP
ThinkPHP中处理表单中的注意事项
Nov 22 PHP
PHP时间和日期函数详解
May 08 PHP
从性能方面考虑PHP下载远程文件的3种方法
Dec 29 PHP
PHP编程基本语法快速入门手册
Jan 07 PHP
PHP实现通过URL提取根域名
Mar 31 PHP
用PHP写的一个冒泡排序法的函数简单实例
May 26 PHP
Ajax中的JSON格式与php传输过程全面解析
Nov 14 PHP
PHP实现搜索时记住状态的方法示例
May 11 PHP
弹出模态框modal的实现方法及实例
Sep 19 #PHP
PHP 进度条函数的简单实例
Sep 19 #PHP
yii2.0整合阿里云oss删除单个文件的方法
Sep 19 #PHP
yii2.0整合阿里云oss上传单个文件的示例
Sep 19 #PHP
yii2.0整合阿里云oss的示例代码
Sep 19 #PHP
PHP文件系统管理(实例讲解)
Sep 19 #PHP
Laravel学习教程之View模块详解
Sep 18 #PHP
You might like
《雄兵连》《烈阳天道》真的来了
2020/07/13 国漫
用ADODB来让PHP操作ACCESS数据库的方法
2006/12/31 PHP
php flush类输出缓冲剖析
2008/10/19 PHP
php获取远程文件大小
2015/10/20 PHP
RSA实现JS前端加密与PHP后端解密功能示例
2019/08/05 PHP
phpstudy后门rce批量利用脚本的实现
2019/12/12 PHP
javascript div 弹出可拖动窗口
2009/02/26 Javascript
Jquey拖拽控件Draggable使用方法(asp.net环境)
2010/09/28 Javascript
JQuery实现倒计时按钮的实现代码
2012/03/23 Javascript
js防止表单重复提交的两种方法
2013/09/30 Javascript
浅析hasOwnProperty方法的应用
2013/11/20 Javascript
jQuery异步获取json数据方法汇总
2014/12/22 Javascript
Jquery代码实现图片轮播效果(一)
2015/08/12 Javascript
jQuery中cookie插件用法实例分析
2015/12/04 Javascript
JavaScript笔记之数据属性和存储器属性
2016/03/31 Javascript
jQuery使用JSONP实现跨域获取数据的三种方法详解
2017/05/04 jQuery
一步步教你利用webpack如何搭一个vue脚手架(超详细讲解和注释)
2018/01/08 Javascript
Vue的自定义组件不能使用click方法的解决
2020/07/28 Javascript
vue 导航锚点_点击平滑滚动,导航栏对应变化详解
2020/08/10 Javascript
[29:10]Ti4 冒泡赛第二天 NEWBEE vs Titan 3
2014/07/15 DOTA
[00:34]DOTA2上海特级锦标赛 Spirit战队宣传片
2016/03/04 DOTA
[00:49]完美世界DOTA2联赛10月28日开团时刻:随便打
2020/10/29 DOTA
[05:23]DOTA2-DPC中国联赛2月1日Recap集锦
2021/03/11 DOTA
汽车运用工程专业毕业生推荐信
2013/12/25 职场文书
市政施工员自我鉴定
2014/01/15 职场文书
给女儿的表扬信
2014/01/18 职场文书
大学生个人自荐信
2014/02/24 职场文书
党员公开承诺书范文
2014/03/25 职场文书
《泉水》教学反思
2014/04/11 职场文书
员工三分钟演讲稿
2014/08/19 职场文书
授权委托书样本
2014/09/25 职场文书
个人作风建设心得体会
2014/10/22 职场文书
2014年幼儿园班级工作总结
2014/12/17 职场文书
工作能力自我评价2015
2015/03/05 职场文书
老人节主持词
2015/07/04 职场文书
小学数学继续教育研修日志
2015/11/13 职场文书