使用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、什么是代理服务器 代理服务器,客户机在发送请求时,不会直接发送给目的主机,而是先发送给代理服务器,代理服务接受客户机请求之后,再向主机发出,并接收目的主机返回的数据,存放在代理...
  • lishaojun0115
  • lishaojun0115
  • 2016年11月17日 15:26
  • 63995

使用Nginx实现反向代理

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

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

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

【Nginx-反向代理服务器】实践篇(三)之Tomcat+Nginx搭建集群

继前面的博客,本篇博客来实践操作体会一下 Nginx配置过程如下: (1)到Nginx官网下载Nginx的Windows版本:点击打开链接(这里我们使用nginx/Windows-1.4.7版本进行实...
  • hejingyuan6
  • hejingyuan6
  • 2015年08月03日 21:14
  • 17176

Nginx反向代理

Nginx反向代理,负载均衡,tornado服务
  • dutsoft
  • dutsoft
  • 2017年02月12日 18:09
  • 1728

Keepalived安装与配置

一、简介Keepalived是一个免费开源的,用C编写的类似于layer3, 4 & 7交换机制软件,具备我们平时说的第3层、第4层和第7层交换机的功能。主要提供loadbalancing(负载均衡)...
  • xyang81
  • xyang81
  • 2016年09月16日 14:04
  • 38881

nginx反向代理配置

nginx反向代理配置什么是代理代理在普通生活中的意义就是本来应该你做的事情,你让别人代你做了,那么那个帮你做的人就是你的代理。而在计算机网络中代理的概念差不多,就是本来要客户端要做的网络访问,现在移...
  • physicsdandan
  • physicsdandan
  • 2015年05月12日 11:36
  • 30758

Nginx反向代理的应用例子及简单的笔记

最近手上有两台服务器,都是cenos7系统,不同的是,一个是LAMP环境,一个是LNMP环境。对于Nginx,之前了解的时候,就知道nginx在反向代理和负载均衡方面的能力比较强,于是今天就拿ngin...
  • Gavin_new
  • Gavin_new
  • 2016年09月28日 21:06
  • 2237

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

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

linux系统上nginx安装及简单的反向代理配置

本文是写给那些刚刚接触linux的新手写的,#符号后面的都是命令可以复制进去,你有发展linux的打算也可以手打加深对命令的了解。 第一步:# yum -y installgcc-c++(C编译器下...
  • Chen_________
  • Chen_________
  • 2017年03月30日 16:24
  • 3332
内容举报
返回顶部
收藏助手
不良信息举报
您举报文章:使用Nginx搭建反向代理
举报原因:
原因补充:

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