负载均衡

#可以将long里面的所有代码删除,复制粘贴一下内容即可生效负载均衡
#这个写在server模块上面
upstream a.com {
  server  192.168.1.127:80;  #有多少个服务器就添加多少个ip
  server  192.168.1.127:8080;  #有多少个服务器就添加多少个ip
}
server {
        listen 80 ;
        server_name long;
# localtion里面
        location / {
        proxy_pass         http://a.com;   #这个地址一定是上面定义的负载均衡的名字
        proxy_set_header   Host             $host;
        proxy_set_header   X-Real-IP        $remote_addr;
        proxy_set_header   X-Forwarded-For  $proxy_add_x_forwarded_for;
        }
   }

也可以加上以下两种轮训方式

1.weight
指定轮询几率,weight和访问比率成正比,用于后端服务器性能不均的情况。
upstream a.com {
    server 192.168.1.127:80 weight=5;
    server 192.168.1.127:8080 weight=10;
}
2.ip_hash
每个请求按访问ip的hash结果分配,这样每个访客固定访问一个后端服务器,可以解决session的问题。
upstream a.com {
                  ip_hash;   //实现轮询 ,一个电脑再次访问一个网站时,所访问的服务器不变
                  192.168.1.127:80 weight=2; //weight是权重默认是1数值越大,被访问到的概率越大。(加weight的时候,必须去掉ip_hash)   //自己的网站的IP
                  192.168.1.127:8080;  //自己网站的IP
            }
  • 注意,server后面只能写ip,不可以写站点名
  • 我们也可以只在一个服务器上做测试,只需要复制下site-avilable/default并改称不冲突的端口号即可。我这里改成了8080端口

upstream模块:upstream指令主要是用于设置一组可以在proxy_pass和fastcgi_pass指令中使用代理服务器,默认负载均衡方式为轮询 ip_hash(轮询)和weight(权重)是互斥的,只可以选择使用一种方式

动静分离的配置

#可以将long里面的所有代码删除,复制粘贴一下内容即可生效负载均衡
upstream static {
server  192.168.1.127:80;  #这个对应default站点
}
upstream php {
server  192.168.1.127:8080;  #这个对应jin站点,我们要在
}
server {
      listen 80 ;
      server_name long;
index index.html index.php index.htm index.nginx-debian.html;
# localtion里面

      location / {
#此处我不知道为什么这样写,我想静态的我们一般都用html
# 根据匹配php的写法,我改成   location  ~\.html${  测试发现也是可以的
      proxy_pass         http://static;   #这个地址一定是上面定义的负载均衡的名字
      proxy_set_header   Host             $host;
      proxy_set_header   X-Real-IP        $remote_addr;
      proxy_set_header   X-Forwarded-For  $proxy_add_x_forwarded_for;
      }
         location ~ \.php$ { #匹配php文件用这个代理
        proxy_pass         http://php;   #这个地址一定是上面定义的负载均衡的名字
        proxy_set_header   Host             $host;
        proxy_set_header   X-Real-IP        $remote_addr;
        proxy_set_header   X-Forwarded-For  $proxy_add_x_forwarded_for;
    }
 }

# 上面的upstream内容,严格来说不应该写在`/etc/nginx/site-avilible/long`里面,
我们应该写在`cd /etc/nginx/con.d`文件夹里。这个文件夹是个个空文件夹
`vim upstream.conf`(注意,此处名字可以随便写,但必须以.conf为后缀)

upstream static {
server  192.168.1.127:80;  #这个对应default站点
}
upstream php {
server  192.168.1.127:8080;  #这个对应jin站点,我们要在
}

实验。我们在fefault对应的站点下写index.html,test.html,在jin对应的站点下面写index.php,test.php;此时我们访问http://long/index.html,http://index.php,得到的结果分别就是我们相应站点下面的内容



user  nginx nginx;
worker_processes  1;

#error_log  logs/error.log;
#error_log  logs/error.log  notice;
#error_log  logs/error.log  info;

#pid        logs/nginx.pid;


events {
    use epoll;
    worker_connections  1024;
}


http {
    include       mime.types;
    default_type  application/octet-stream;

    #log_format  main  '$remote_addr - $remote_user [$time_local] "$request" '
    #                  '$status $body_bytes_sent "$http_referer" '
    #                  '"$http_user_agent" "$http_x_forwarded_for"';

    #access_log  logs/access.log  main;

    sendfile        on;
    #tcp_nopush     on;

    #keepalive_timeout  0;
    keepalive_timeout  65;

    #gzip  on;
    #Tomcat的服务器集群
    upstream up {
    server 101.1.1.1 weight=5 max_fails=2 fail_timeout=30;  
    server 101.2.2.2 weight=5 max_fails=2 fail_timeout=30 down;
    }

    server {
        listen       80;
        server_name  123.com  test.com;
        root            /usr/local;

        if ($host = test.com) {
            return   301 https://$host$request_uri;
        }

          #java服务器提供api的公共服务
        location ^~ /test {
          proxy_pass http://up/test;
          proxy_cookie_path /up/ /;
          
          proxy_redirect off;
          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_connect_timeout   10;
          proxy_send_timeout      30;
          proxy_read_timeout      90;
        }
    }


    # HTTPS server
    #
    server {
         listen       443 ssl;
         server_name  kjzb.com;

         ssl_certificate      /usr/local/nginx/conf/kjzb_com.crt;
         ssl_certificate_key  /usr/local/nginx/conf/kjzb_com.key;


    #    ssl_session_cache    shared:SSL:1m;
    #    ssl_session_timeout  5m;

    #    ssl_ciphers  HIGH:!aNULL:!MD5;
    #    ssl_prefer_server_ciphers  on;

        location / {
                    root   html/icp;
                #如果是手机移动端访问内容
                   if ( $http_user_agent ~ "(MIDP)|(WAP)|(UP.Browser)|(Smartphone)|(Obigo)|(Mobile)|(AU.Browser)|(wxd.Mms)|(WxdB.Browser)|(CLDC)|(UP.Link)|(KM.Browser)|(UCWEB)|(SEMC-Browser)|(Mini)|(Symbian)|(Palm)|(Nokia)|(Panasonic)|(MOT-)|(SonyEricsson)|(NEC-)|(Alcatel)|(Ericsson)|(BENQ)|(BenQ)|(Amoisonic)|(Amoi-)|(Capitel)|(PHILIPS)|(SAMSUNG)|(Lenovo)|(Mitsu)|(Motorola)|(SHARP)|(WAPPER)|(LG-)|(LG/)|(EG900)|(CECT)|(Compal)|(kejian)|(Bird)|(BIRD)|(G900/V1.0)|(Arima)|(CTL)|(TDG)|(Daxian)|(DAXIAN)|(DBTEL)|(Eastcom)|(EASTCOM)|(PANTECH)|(Dopod)|(Haier)|(HAIER)|(KONKA)|(KEJIAN)|(LENOVO)|(Soutec)|(SOUTEC)|(SAGEM)|(SEC-)|(SED-)|(EMOL-)|(INNO55)|(ZTE)|(iPhone)|(Android)|(Windows CE)|(Wget)|(Java)|(curl)|(Opera)" )
                           {
                                      root html/m.icp;
                           }     
                index  index.html index.htm;
                
          }
        location ~ \.php$ {
               root       html/icp;
             if ( $http_user_agent ~ "(MIDP)|(WAP)|(UP.Browser)|(Smartphone)|(Obigo)|(Mobile)|(AU.Browser)|(wxd.Mms)|(WxdB.Browser)|(CLDC)|(UP.Link)|(KM.Browser)|(UCWEB)|(SEMC-Browser)|(Mini)|(Symbian)|(Palm)|(Nokia)|(Panasonic)|(MOT-)|(SonyEricsson)|(NEC-)|(Alcatel)|(Ericsson)|(BENQ)|(BenQ)|(Amoisonic)|(Amoi-)|(Capitel)|(PHILIPS)|(SAMSUNG)|(Lenovo)|(Mitsu)|(Motorola)|(SHARP)|(WAPPER)|(LG-)|(LG/)|(EG900)|(CECT)|(Compal)|(kejian)|(Bird)|(BIRD)|(G900/V1.0)|(Arima)|(CTL)|(TDG)|(Daxian)|(DAXIAN)|(DBTEL)|(Eastcom)|(EASTCOM)|(PANTECH)|(Dopod)|(Haier)|(HAIER)|(KONKA)|(KEJIAN)|(LENOVO)|(Soutec)|(SOUTEC)|(SAGEM)|(SEC-)|(SED-)|(EMOL-)|(INNO55)|(ZTE)|(iPhone)|(Android)|(Windows CE)|(Wget)|(Java)|(curl)|(Opera)" )
                {
                                root html/m.icp;
                }     
                fastcgi_pass   127.0.0.1:9000; 
                fastcgi_index  index.php;
                fastcgi_param  SCRIPT_FILENAME $document_root$fastcgi_script_name;                                                               fastcgi_param HTTPS on;
                include        fastcgi_params;
        }
 }
}

nginx实现屏蔽IP

手册-Module ngx_stream_access_module

随便写一个 .conf结尾的配置文件, 比如我们此处用 ip.conf文件

ip.conf 文件
# 屏蔽127.0.0.1
 deny 127.0.0.1; 
# 屏蔽所有ip
deny all;
# 允许127.0.0.1,192.168.1.1
 allow 127.0.0.1; 
 allow 192.168.1.1;
# 允许所有ip进入
allow all;
#屏蔽整个段即从123.0.0.1到123.255.255.254访问的命令
deny 123.0.0.0/8
#屏蔽IP段即从123.45.0.1到123.45.255.254访问的命令
deny 123.45.6.0/24


 然后进入配置文件的`http`模块,或者`server`文件,或者`server`里面的`localtion`匹配模块都可以
但是我们大多的需求其实是在 server里面
最后编辑于
©著作权归作者所有,转载或内容合作请联系作者
  • 序言:七十年代末,一起剥皮案震惊了整个滨河市,随后出现的几起案子,更是在滨河造成了极大的恐慌,老刑警刘岩,带你破解...
    沈念sama阅读 203,456评论 5 477
  • 序言:滨河连续发生了三起死亡事件,死亡现场离奇诡异,居然都是意外死亡,警方通过查阅死者的电脑和手机,发现死者居然都...
    沈念sama阅读 85,370评论 2 381
  • 文/潘晓璐 我一进店门,熙熙楼的掌柜王于贵愁眉苦脸地迎上来,“玉大人,你说我怎么就摊上这事。” “怎么了?”我有些...
    开封第一讲书人阅读 150,337评论 0 337
  • 文/不坏的土叔 我叫张陵,是天一观的道长。 经常有香客问我,道长,这世上最难降的妖魔是什么? 我笑而不...
    开封第一讲书人阅读 54,583评论 1 273
  • 正文 为了忘掉前任,我火速办了婚礼,结果婚礼上,老公的妹妹穿的比我还像新娘。我一直安慰自己,他们只是感情好,可当我...
    茶点故事阅读 63,596评论 5 365
  • 文/花漫 我一把揭开白布。 她就那样静静地躺着,像睡着了一般。 火红的嫁衣衬着肌肤如雪。 梳的纹丝不乱的头发上,一...
    开封第一讲书人阅读 48,572评论 1 281
  • 那天,我揣着相机与录音,去河边找鬼。 笑死,一个胖子当着我的面吹牛,可吹牛的内容都是我干的。 我是一名探鬼主播,决...
    沈念sama阅读 37,936评论 3 395
  • 文/苍兰香墨 我猛地睁开眼,长吁一口气:“原来是场噩梦啊……” “哼!你这毒妇竟也来了?” 一声冷哼从身侧响起,我...
    开封第一讲书人阅读 36,595评论 0 258
  • 序言:老挝万荣一对情侣失踪,失踪者是张志新(化名)和其女友刘颖,没想到半个月后,有当地人在树林里发现了一具尸体,经...
    沈念sama阅读 40,850评论 1 297
  • 正文 独居荒郊野岭守林人离奇死亡,尸身上长有42处带血的脓包…… 初始之章·张勋 以下内容为张勋视角 年9月15日...
    茶点故事阅读 35,601评论 2 321
  • 正文 我和宋清朗相恋三年,在试婚纱的时候发现自己被绿了。 大学时的朋友给我发了我未婚夫和他白月光在一起吃饭的照片。...
    茶点故事阅读 37,685评论 1 329
  • 序言:一个原本活蹦乱跳的男人离奇死亡,死状恐怖,灵堂内的尸体忽然破棺而出,到底是诈尸还是另有隐情,我是刑警宁泽,带...
    沈念sama阅读 33,371评论 4 318
  • 正文 年R本政府宣布,位于F岛的核电站,受9级特大地震影响,放射性物质发生泄漏。R本人自食恶果不足惜,却给世界环境...
    茶点故事阅读 38,951评论 3 307
  • 文/蒙蒙 一、第九天 我趴在偏房一处隐蔽的房顶上张望。 院中可真热闹,春花似锦、人声如沸。这庄子的主人今日做“春日...
    开封第一讲书人阅读 29,934评论 0 19
  • 文/苍兰香墨 我抬头看了看天上的太阳。三九已至,却和暖如春,着一层夹袄步出监牢的瞬间,已是汗流浃背。 一阵脚步声响...
    开封第一讲书人阅读 31,167评论 1 259
  • 我被黑心中介骗来泰国打工, 没想到刚下飞机就差点儿被人妖公主榨干…… 1. 我叫王不留,地道东北人。 一个月前我还...
    沈念sama阅读 43,636评论 2 349
  • 正文 我出身青楼,却偏偏与公主长得像,于是被迫代替她去往敌国和亲。 传闻我的和亲对象是个残疾皇子,可洞房花烛夜当晚...
    茶点故事阅读 42,411评论 2 342

推荐阅读更多精彩内容