关闭

nginx 反向代理

1741人阅读 评论(1) 收藏 举报

题记:

问题主要是因为自己工作的环境经常需要进行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

0
0

查看评论
* 以上用户言论只代表其个人观点,不代表CSDN网站的观点或立场
    个人资料
    • 访问:496404次
    • 积分:4519
    • 等级:
    • 排名:第6504名
    • 原创:36篇
    • 转载:201篇
    • 译文:0篇
    • 评论:58条
    最新评论