2014-02-07 16:38:01
来 源
ITJS.CN
Nginx
本文介绍Nginx服务器配置反向代理,希望对于初学Nginx服务器相关的朋友有帮助,更多Nginx安装、配置、报错处理等资源请本站内搜索。。

题记:

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

声明: 此文观点不代表本站立场;转载须要保留原文链接;版权疑问请联系我们。