nginx 反向代理

原创 2012年03月28日 13:57:36

题记:

问题主要是因为自己工作的环境经常需要进行hosts绑定的操作,有时候要绑定10几个,多个环境切换非常麻烦,后来发现有的同事采用代理的方式统一绑定,实在觉得是个恢长好的办法啊,所以对代理工具就进行了比较详细调查,写下了这篇文章,文章的解决的关键问题也是如何通过代理进行hosts绑定。


以下文章是我的个人理解,不足或错误的地方敬请指正,谢谢!


代理这个词相信对大家来说都不陌生,熟悉翻墙的同学一定很熟悉。呵呵这篇文章不要说明如何找梯子,相信大家是八仙过海各有各的办法。


学习代理首先要明确两个概念:正向代理/反向代理。关于正向和反向的说明google一下资料很多。

简单理解所谓正向就是一个从内向外的访问,而所谓反向则是一个从外向内的访问。正向和反向是一个相对的概念。

简单说吧,我们知道nginx是一个非常优秀的反向代理工具,各大网站很多都在用nginx做反向代理,对于外部访问网站的用户开放的nginx反向代理服务器,而页面的生成工作则是通过内部的web服务来完成的,服务的实现方式可能千差万别。

而正向代理,则是我们一般意义的翻墙,通过代理去访问,然后从代理中返回结果,原理就是这样的。

那么何为相对呢?相对于内部的服务那么nginx就是反向代理,代理接受用户请求;而相对于用户,就是正向代理,代理用户去请求。明白了这个相对的过程,实际我们就可以让nginx成为我们的正向代理工具,而将外面的网络视为整个后端在给我们提供服务。

以上转载。


当通过http://www.XXX.com访问时, 实际上代理到了http://192.168.xxx.yyy:8080/Action/

server {
    listen          80;
    server_name     www.XXX.com; # 通过Windows的hosts配置来DNS这个域名
    location / {
        proxy_pass http://192.168.xxx.yyy:8080/Action/;
        proxy_redirect off;
        proxy_set_header Host $host;
        proxy_set_header X-Real-IP $remote_addr;
        proxy_set_header X-Forwarded-For $proxy_add_x_forwarded_for;
    }
}


反向代理:即上面的80端口只监听从外至内的访问中的80端口。



Windows 中Hosts文件的作用:

浏览器输入域名,如:www.sina.com.

windows会先查找hosts文件中是否已经存在此域名的映射,如果不存在,再通过dns域名解析服务器去解析这个域名,得到对应的新浪的IP地址。再通过这个ip地址访问新浪网。

目的就是一个:得到IP地址。

具体参考:http://wenku.baidu.com/view/180738bfc77da26925c5b0c4.html


更改nginx的配置文件后,在去访问浏览器,此时,浏览器存在缓存,可能不会立即应用nginx的配置,即使 nginx restart也无济于事,所以必须清楚浏览器缓存再执行。

         server {
                 listen  80;
                 server_name www.163.com;# 通过Windows的hosts配置来DNS这个域名

         location / {
                            proxy_pass    http://sina.com;
                            proxy_redirect off;
                     }
               }
         server {
                 listen  80;
                 server_name www.baidu.com;# 通过Windows的hosts配置来DNS这个域名

         location / {
                            proxy_pass    http://www.google.com;
                            proxy_redirect off;
                     }
               }


结果:输入www.163.com会跳转到新浪网,输入www.baidu.com会跳转到google首页。

hosts中的映射关系:

127.0.0.1 www.163.com
127.0.0.1 www.baidu.com

使用Nginx实现反向代理

一、代理服务器 1、什么是代理服务器 代理服务器,客户机在发送请求时,不会直接发送给目的主机,而是先发送给代理服务器,代理服务接受客户机请求之后,再向主机发出,并接收目的主机返回的数据,存放在代理...
  • Daybreak1209
  • Daybreak1209
  • 2016年05月31日 21:11
  • 8918

Nginx正反向代理、负载均衡等功能实现配置

系统环境: VirtualBox Manager Centos6.4 nginx1.10.0(yum 安装) 一、正向代理 概念这里不在介绍,可以查看此文http://my.oschina.ne...
  • hiyun9
  • hiyun9
  • 2016年06月07日 11:20
  • 58683

nginx 之 反向代理理解

nginx反向代理配置 什么是代理 代理在普通生活中的意义就是本来应该你做的事情,你让别人代你做了,那么那个帮你做的人就是你的代理。而在计算机网络中代理的概念差不多,就是本来要客户端要做的网络访问...
  • zhongzh86
  • zhongzh86
  • 2017年04月14日 15:57
  • 1308

nginx搭建反向代理配置并测试

系统centos6.2 首先装好contos ,此处略。 一、安装gcc    yum install gcc-c++ 二、安装所需要的依赖库    yum -y install zlib-d...
  • wjg_ww
  • wjg_ww
  • 2015年11月19日 10:41
  • 33990

使用Nginx实现反向代理

一、代理服务器 1、什么是代理服务器 代理服务器,客户机在发送请求时,不会直接发送给目的主机,而是先发送给代理服务器,代理服务接受客户机请求之后,再向主机发出,并接收目的主机返回的数据,存放在代理...
  • lishaojun0115
  • lishaojun0115
  • 2016年11月17日 15:26
  • 53380

反向代理及Nginx示例

1 反向代理的概念 反向代理(Reverse Proxy)方式是指以代理服务器来接受internet上的连接请求,然后将请求转发给内部网络上的服务器,并将从服务器上得到的结果返回给internet上请...
  • esonbest1234
  • esonbest1234
  • 2016年02月24日 11:24
  • 1716

Nginx反向代理缓存配置

这里给出示例,并详解。 http { [   proxy_cache_path  /data/nginx/cache/one  levels=1:2   keys_zone=one...
  • kobejayandy
  • kobejayandy
  • 2014年07月23日 23:42
  • 1843

nginx 反向代理和正向代理区别

一直对反射代理的反向不知道如何理解,经过百度知道,再结合下面这幅图,总算弄清楚一点了。简单的说从一个局域网出来到服务端为正向,从客户端要进入一个局域网为反向 概念:        反向代理(Rev...
  • lovesummerforever
  • lovesummerforever
  • 2015年01月24日 21:34
  • 6658

浅谈什么是正向代理和反向代理,如何使用nginx搭建正向代理和反向代理

转自:http://mengkang.net/78.html
  • yuxiangji
  • yuxiangji
  • 2014年04月21日 14:13
  • 19113

Nginx搭建反向代理服务器过程详解

http://www.cnblogs.com/crazyacking/p/5138146.html 一.反向代理   我们都知道,80端口是web服务的默认端口,其他主机访问web服务器也...
  • zdy0_2004
  • zdy0_2004
  • 2016年01月18日 18:38
  • 11744
内容举报
返回顶部
收藏助手
不良信息举报
您举报文章:nginx 反向代理
举报原因:
原因补充:

(最多只允许输入30个字)