转载 如何搭建web服务器 使用Nginx搭建反向代理服务器 : http://blog.csdn.net/w13770269691/article/details/6977727html
引言:最近公司有台服务器遭受DDOS攻击,流量在70M以上,因为服务器硬件配置较高因此不须要DDOS硬件防火 墙。但咱们要知道,IDC机房是确定不容许这种流量一直处于这么高的,由于无法具体知道后面陆续攻击的流量会有多大,若是流量过大就会致使整个IDC网络 瘫痪。咱们都知道北方的数据中心和南方的数据中心从带宽出口上来说南方多数机房彻底有能力扛得住DDOS攻击,东莞的电信机房就不错。有朋友说过面对这种 攻击能够在南方电信在放一台服务器,而后作个反向代理;令我不解的是假若再在南方放一台服务器,而后在南方电信服务器上作反向代理的话北方的用户访问速度确定会很慢(南方机房多为电信单线,北京的多为双线或BGP线路)。好了,咱们言归正传,无论用反向代理是怎么去实现,首先咱们要解决的是如何搭建一台反向代理服务器,省得临时抱佛脚。
首先咱们来看理解一下什么是反向代理,以下图:当客户机向站点发出请求时,请求将转到代理服务器,而后而后代理服务器将请求转发给内部网络上的服务器,并将从服务器上获得的结果返回给Internet上请求链接的客户,对于访问服务器的用户来说,此时的代理服务器对外就表现为一台服务器;咱们还能够在反向代理服务器上加上一些策略,这样就对web服务器进行了一种安全保护,即便用户想入侵网站,也没法到达web服务器;反向代理服务器后端还能够放置多台web服务器,从而能够减轻网站压力,起到集群做用nginx
咱们都知道Nginx是一款很是不错的程序,其最大的优势就是能承载高并发链接,此次咱们就用Nginx来作一台反向代理服务器
环境描述:反向代理服务器为Linux系统,安装有Nginx;web服务器为windows系统,装有IISweb
首先咱们在Nginx上设置反向代理,修改Nginx配置文件,将以下部分删除windows
删除完成后添加内容以下: server name 在真实环境中须要设置域名,由于咱们实际访问网站不多用IP,proxy_pass 为web服务器的地址,如web服务器的网站用的是8080端口,那么咱们的 proxy_pass 的格式就是
后端
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访问的,而不是客户端安全