nginx实现反向代理

反向代理服务器:代理服务器对WEB用户的访问!也就是说它是真真服务器的“脸”!

当我们需要隐藏一台服务器真真放在哪个国家时,可以这样做:

代理服务器放在中国,真真的服务器可以放在任何一个地方,而用户只知道你的代理服务器在中国,通过设置代理服务器去访问真真的服务器!

具体实现如下

1.基础工作

  安装linux,nginx,php/.net/....

2.模拟环境

 IP为192.168.1.219的机器设置三个站点,通过端口访问

192.168.1.219
192.168.1.219:82
192.168.1.219 :83
3.实现

在nginx.conf文件里 添加 include 网站配置文件的路径

假设 192.168.1.219
配置文件在/etc/nginx/sites-enabled/default
nginx.conf添加 include /etc/nginx/sites-enabled/*;

192.168.1.219:82
配置文件在/etc/nginx/sites-2/default
nginx.conf添加 include /etc/nginx/sites-2/*;

192.168.1.219:83   将重定向为http://www.163.com/
配置文件在/etc/nginx/sites-3/default
nginx.conf添加 include /etc/nginx/sites-3/*;

192.168.1.219,192.168.1.219:82配置文件结构如下
server {
        listen       80;//或82
        server_name  192.168.1.219;
        charset utf-8;
        location / {
            root   /var/www/nginx/sites-enabled/; //对应的站点目录
            index  index.html index.htm;          
        }
}

192.168.1.219:83配置文件结构如下
server {
        listen   83;
        server_name  192.168.1.219:83;

        access_log  /var/log/nginx/localhost.access.log;

 location / {
             proxy_pass http://www.163.com/; //将192.168.1.219:83转向为163服务器
          }

          location ^~ /test/ {
             proxy_pass  http://192.168.1.219:82/; //将192.168.1.219:83/test转向82
          }
          location ~ \.php$ {
             proxy_pass  http://192.168.1.219;//将192.168.1.219:83/xxx.php转向80
           }
}

posted @ 2012-10-07 22:41  bobsoft  阅读(339)  评论(0编辑  收藏  举报