0

Nginx反向代理(多域名,多ip)防攻击,快速切换

 7 months ago
source link: http://www.hn-seo.com/seo_1382.shtml
Go to the source link to view the article. You can view the picture content, updated content and better typesetting reading experience. If the link is broken, please click the button below to view the snapshot at that time.

Nginx反向代理(多域名,多ip)防攻击,快速切换

2015年7月2日 由 admin 留言 »

做站最烦人的就是被攻击,最最蛋疼的是,追着你打。你数据刚搬好到新的服务器上,他立马又给你干掉。坚持搞你一周,你会崩溃掉。最近被一个sb追着打了一个半月。搞的流量从几十万跌到十几万。搬数据,也搬的我吐血。
后面发现了一个好东东,反向代理。只要把数据备份一份到一台服务器上,作为源服务器。然后,有攻击,立马切换到抗攻击的服务器做的前台,几分钟搞定,无需搬数据。简单快速!
单个网站反向代理案例
服务器上的ip都可以解析。

server {
      listen       80;
      server_name doman.com www.doman.com;
      location /
                {
      proxy_set_header X-Real-IP $remote_addr;
      proxy_pass http://2.2.2.1;
      proxy_cache_key $host$uri$is_args$args;
      proxy_set_header Host $host;
      proxy_set_header X-Real-IP $remote_addr;
      proxy_set_header X-Forwarded-For $proxy_add_x_forwarded_for;
      proxy_set_header   Referer $http_referer;
      proxy_set_header Cookie $http_cookie;
      proxy_set_header Accept-Encoding "";
      proxy_intercept_errors on;
      #proxy_cache_valid  200 304 12h;
      #expires      1d;
                  }
      #access_log  off;
       }

服务器上只使用一个ip:1.1.1.1

server {
      listen  1.1.1.1:80;
      server_name doman.com www.doman.com;
      location /
                {
      proxy_set_header X-Real-IP $remote_addr;
      proxy_pass http://2.2.2.1;
      proxy_cache_key $host$uri$is_args$args;
      proxy_set_header Host $host;
      proxy_set_header X-Real-IP $remote_addr;
      proxy_set_header X-Forwarded-For $proxy_add_x_forwarded_for;
      proxy_set_header   Referer $http_referer;
      proxy_set_header Cookie $http_cookie;
      proxy_set_header Accept-Encoding "";
      proxy_intercept_errors on;
      #proxy_cache_valid  200 304 12h;
      #expires      1d;
                  }
      #access_log  off;
       }

单台服务器反向代理一个源服务器案例
只用服务器上的ip: 1.1.1.1
源服务器上的网站全部解析到这一个ip。

server {
listen 1.1.1.1:80 default backlog=1024 rcvbuf=32768 sndbuf=131072;
server_name $host;
location / {
proxy_pass http://2.2.2.1:80/;
proxy_set_header X-Real-IP $remote_addr;
proxy_set_header X-Forwarded-For $proxy_add_x_forwarded_for;
proxy_set_header Host $host;
proxy_redirect off;
proxy_set_header X-Nginx-Scheme $scheme;
client_max_body_size 15m;
access_log /var/log/nginx/2.2.2.1_access_log ;
error_log /var/log/nginx/2.2.2.1_error_log notice;
}
}

服务器是多ip: 1.1.1.1-1.1.1.128
源服务器上的网站可以解析到服务器上的任何ip。

server { 
listen 80; 
server_name $host; 
location / { 
proxy_pass http://2.2.2.1/;
proxy_set_header Host $host; 
proxy_redirect off; 
proxy_set_header X-Real-IP $remote_addr; 
proxy_set_header X-Forwarded-For $proxy_add_x_forwarded_for; 
proxy_connect_timeout 60; 
proxy_read_timeout 600; 
proxy_send_timeout 600; 
}  
}

一个ip反向代理案例
服务器ip对应源服务器ip
1.1.1.1>>>2.2.2.1(源服务器1)
1.1.1.2>>>2.2.2.2(源服务器2)
源服务器1上的网站全部解析到ip:1.1.1.1
源服务器2上的网站全部解析到ip:1.1.1.2

server { 
listen 1.1.1.1:80 backlog=1024 rcvbuf=32768 sndbuf=131072; 
server_name $host; 
location / { 
proxy_pass http://2.2.2.1/;
proxy_set_header Host $host; 
proxy_redirect off; 
proxy_set_header X-Real-IP $remote_addr; 
proxy_set_header X-Forwarded-For $proxy_add_x_forwarded_for; 
proxy_connect_timeout 60; 
proxy_read_timeout 600; 
proxy_send_timeout 600; 
}  
}
 
 
server {
listen 1.1.1.2:80 backlog=1024 rcvbuf=32768 sndbuf=131072;
server_name $host;
location / {
proxy_pass http://2.2.2.2/;
proxy_set_header X-Real-IP $remote_addr;
proxy_set_header X-Forwarded-For $proxy_add_x_forwarded_for;
proxy_set_header Host $host;
proxy_redirect off;
proxy_connect_timeout 60; 
proxy_read_timeout 600; 
proxy_send_timeout 600; 
 
}
}

proxy_set_header Referer http://www.cnbeta.com; #强制定义Referer,程序验证判断会用到
proxy_set_header Host www.cnbeta.com; #定义主机头,如果目标站点绑定的域名个server_name项的吻合则使用$host
proxy_pass http://www.cnbeta.com; #指定目标,建议使用IP或者nginx自定义池
proxy_set_header Accept-Encoding “”; #清除编码

给所有配置文件添加这个属性
location ~.*\.(jpg|png|jpeg)$
{
expires 30d;
}
location ~.*\.(js|css)?$
{
expires 1h;
}

发表在Linux, Nginx

若要跟踪这篇文章的任何更新,你可以使用 RSS 2.0 Feed.

你可以 发表评论 , 或者 trackback 自你的网站.

NOTICE: You should type some Chinese word (like “你好”) in your comment to pass the spam-check, thanks for your patience!

About Joyk


Aggregate valuable and interesting links.
Joyk means Joy of geeK