《使用nginx搭建反向代理》由会员分享,可在线阅读,更多相关《使用nginx搭建反向代理(4页珍藏版)》请在金锄头文库上搜索。
1、 引言:最近公司有台服务器遭受 DDOS 攻击,流量在 70M 以上,由于服务器硬件配置较高所以不需要 DDOS 硬件防火墙。但我们要知道,IDC 机房是肯定不 允许这种流量一直处于这么高的,因为没法具体知道后面陆续攻击的流量会有多大,如果流量过大就会导致整个 IDC 网络瘫痪。我们都知道北方的数据中心和南方 的数据中心从带宽出口上来讲南方多数机房完全有能力扛得住DDOS 攻击,东莞的电信机房就不错。有朋友说过面对这种攻击可以在南方电信在放一台服务器,然 后做个反向代理;令我不解的是倘若再在南方放一台服务器,然后在南方电信服务器上做反向代理的话北方的用户访问速度肯定会很慢(南方机房多为电信单线
2、,北 京的多为双线或 BGP 线路)。好了,我们言归正传,不管用反向代理是怎么去实现,首先我们要解决的是如何搭建一台反向代理服务器,免得临时抱佛脚。首先我们来看理解一下什么是反向代理,如下图:当客户机向站点发出请求时,请求将转到代理服务器,然后然后代理服务器将请求转发给内部网络上的服务器,并 将从服务器上得到的结果返回给 Internet 上请求连接的客户,对于访问服务器的用户来讲,此时的代理服务器对外就表现为一台服务器;我们还可以在反向 代理服务器上加上一些策略,这样就对 web 服务器进行了一种安全保护,即使用户想入侵网站,也无法到达 web 服务器;反向代理服务器后端还可以放置多台 we
3、b 服务器,从而可以减轻网站压力,起到集群作用我们都知道 Nginx 是一款非常不错的程序,其最大的优点就是能承载高并发连接,这次我们就用 Nginx 来做一台反向代理服务器环境描述:反向代理服务器为 Linux 系统,安装有 Nginx;web 服务器为windows 系统,装有 IIS目标:客户端在访问 192.168.1.20 的时候得到的内容必须是 192.168.1.10 这台 web 服务器上的内容首先我们在 Nginx 上设置反向代理,修改 Nginx 配置文件,将如下部分删除删除完成后添加内容如下: server name 在真实环境中需要设置域名,因为我们实际访问网站很少用
4、IP,proxy_pass 为 web 服务器的地址,如web 服务器的网站用的是 8080 端口,那么我们的 proxy_pass 的格式就是 http:/web 网站 IP 或者域名:8080serverlisten 80; server_name 192.168.1.20; /反向代理服务器 IPlocation / proxy_pass http:/192.168.1.10; /web 服务器 IPproxy_redirect off;proxy_set_header X-Real-IP $remote_addr;proxy_set_header X-Forwarded-For $pr
5、oxy_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 访问的,而不是客户端