使用Nginx搭建反向代理

转载 2014年09月22日 16:30:10


           引言:最近公司有台服务器遭受DDOS攻击,流量在70M以上,由于服务器硬件配置较高所以不需要DDOS硬件防火墙。但我们要知道,IDC机房是肯定不 允许这种流量一直处于这么高的,因为没法具体知道后面陆续攻击的流量会有多大,如果流量过大就会导致整个IDC网络瘫痪。我们都知道北方的数据中心和南方 的数据中心从带宽出口上来讲南方多数机房完全有能力扛得住DDOS攻击,东莞的电信机房就不错。有朋友说过面对这种攻击可以在南方电信在放一台服务器,然 后做个反向代理;令我不解的是倘若再在南方放一台服务器,然后在南方电信服务器上做反向代理的话北方的用户访问速度肯定会很慢(南方机房多为电信单线,北 京的多为双线或BGP线路)。好了,我们言归正传,不管用反向代理是怎么去实现,首先我们要解决的是如何搭建一台反向代理服务器,免得临时抱佛脚。

            首先我们来看理解一下什么是反向代理,如下图:当客户机向站点发出请求时,请求将转到代理服务器,然后然后代理服务器将请求转发给内部网络上的服务器,并 将从服务器上得到的结果返回给Internet上请求连接的客户,对于访问服务器的用户来讲,此时的代理服务器对外就表现为一台服务器;我们还可以在反向 代理服务器上加上一些策略,这样就对web服务器进行了一种安全保护,即使用户想入侵网站,也无法到达web服务器;反向代理服务器后端还可以放置多台 web服务器,从而可以减轻网站压力,起到集群作用


 

         我们都知道Nginx是一款非常不错的程序,其最大的优点就是能承载高并发连接,这次我们就用Nginx来做一台反向代理服务器

环境描述:反向代理服务器为Linux系统,安装有Nginx;web服务器为windows系统,装有IIS

目标:客户端在访问192.168.1.20的时候得到的内容必须是192.168.1.10这台web服务器上的内容

 

 

首先我们在Nginx上设置反向代理,修改Nginx配置文件,将如下部分删除

 

 

 

        删除完成后添加内容如下:    server name 在真实环境中需要设置域名,因为我们实际访问网站很少用IP,proxy_pass 为web服务器的地址,如web服务器的网站用的是8080端口,那么我们的 proxy_pass 的格式就是 http://web网站IP或者域名:8080

   server
        {
        listen          80;
        server_name     192.168.1.20;    //反向代理服务器IP
        location / {
                proxy_pass              http://192.168.1.10;     //web服务器IP
                proxy_redirect          off;
                proxy_set_header        X-Real-IP       $remote_addr;
                proxy_set_header        X-Forwarded-For $proxy_add_x_forwarded_for;
                }
        #error_page  404              /404.html;

 

 

 

           设置完成后执行/usr/local/nginx/sbin/nginx -t 检查配置是否正常,如果显示:the configuration file /usr/local/nginx/conf/nginx.conf syntax is ok   configuration file /usr/local/nginx/conf/nginx.conf test is successful 则正常,否则按错误提示进行修改。检查配置文件无误后杀死Nginx进程,然后重新启动Nginx。这时候客户端访问192.168.1.20这台服务器 得到的就是192.168.1.10服务器上面的内容了。

            如下图,用户在访问192.168.1.20时,192.168.1.10这台服务器的IIS记录了访问日志,显示的均为192.168.1.20访问的,而不是客户端

 

 

相关文章推荐

使用Nginx实现反向代理

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

使用Nginx实现反向代理

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

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

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

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

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

nginx 之 反向代理理解

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

正向代理与反向代理的区别【Nginx读书笔记】

正向代理的概念正向代理,也就是传说中的代理,他的工作原理就像一个跳板,简单的说,我是一个用户,我访问不了某网站,但是我能访问一个代理服务器这个代理服务器呢,他能访问那个我不能访问的网站于是我先连上代理...

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

转自:http://mengkang.net/78.html

nginx配置反向代理

1.nginx配置反向代理 两个域名指向同一台nginx服务器 ,用户访问不同的域名显示不同的内容; 两个域名www.jd1.com和www.jd2.com nginx服务器使用的虚拟...

正向代理和Nginx反向代理配置介绍

正向代理和Nginx反向代理配置介绍 * Author QiuRiMangCao 秋日芒草*# 正向代理(代理对象是pc) 是一个位于客户端(pc)和原始服务器(google.com)之间的服务器 ...

Nginx 反向代理、负载均衡、页面缓存、URL重写及读写分离详解

大纲 一、前言 二、环境准备 三、安装与配置Nginx 四、Nginx之反向代理 五、Nginx之负载均衡 六、Nginx之页面缓存 七、Nginx之UR...
内容举报
返回顶部
收藏助手
不良信息举报
您举报文章:使用Nginx搭建反向代理
举报原因:
原因补充:

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