链路聚合

1.交换机支持:一般是网管类型的交换机
2.连接对你支持多网卡

如何判断一个网络交换机是否支持链路聚合?
通过链路聚合,可以将NAS的两个端口与交换机的两个端口捆绑,从而实现网络速度倍增,以及网络容错功能。
但是,并不是所有的网络交换机都支持链路聚合。如何判断一个网络交换机是否支持链路聚合呢?
链路聚合的英文缩写是:LACP
通常,你查询网络交换机的功能列表,只要有LACP字样,一般来说,这个交换机都可以支持端口捆绑了

https://www.chiphell.com/forum.php?mod=viewthread&tid=1449752

已安装nginx动态添加模块

http://blog.csdn.net/cxm19881208/article/details/64441890

已安装nginx动态添加模块

说明:
已经安装好的nginx,需要添加一个未被编译安装的模块,需要怎么弄呢?

具体:
这里以安装第三方ngx_http_google_filter_module模块为例
nginx的模块是需要重新编译nginx,而不是像apache一样配置文件引用.so
1. 下载第三方扩展模块ngx_http_google_filter_module

#cd /data/software/
#git clone https://github.com/cuber/ngx_http_google_filter_module

  1. 查看nginx编译安装时安装了哪些模块

#nginx -V
nginx version: nginx/1.8.0
built by gcc 4.4.7 20120313 (Red Hat 4.4.7-11) (GCC)
built with OpenSSL 1.0.1e-fips 11 Feb 2013
TLS SNI support enabled
configure arguments: –prefix=/usr/local/nginx –with-http_ssl_module –with-http_sub_module –with-http_gzip_static_module –with-http_stub_status_module –add-module=/data/software/ngx_http_substitutions_filter_module

可以看出编译安装使用了–prefix=/usr/local/nginx –with-http_ssl_module –with-http_sub_module –with-http_gzip_static_module –with-http_stub_status_module –add-module=/data/software/ngx_http_substitutions_filter_module这些参数。–add-module=/data/software/ngx_http_substitutions_filter_module是之前编译添加ngx_http_substitutions_filter_module模块时添加

  1. 加入需要安装的模块,重新编译,如这里添加–add-module=/data/software/ngx_http_google_filter_module

# ./configure –prefix=/usr/local/nginx –with-http_ssl_module –with-http_sub_module –with-http_gzip_static_module –with-http_stub_status_module –add-module=/data/software/ngx_http_substitutions_filter_module –add-module=/data/software/ngx_http_google_filter_module
# make //千万不要make install,不然就真的覆盖了

  1. 替换nginx二进制文件:

# cp /usr/local/nginx/sbin/nginx /usr/local/nginx/sbin/nginx.bak
# /usr/local/nginx/sbin/nginx -s stop #如果不能执行,使用kill -9
# cp ./objs/nginx /usr/local/nginx/sbin/
# /usr/local/nginx/sbin/nginx #重新启动


注:
0.千万不要make install,不然就真的覆盖了
1.记得重新./configure时,要把以前的参数也加进去
2.记得开放443端口
3.如果没有下载第三方模块,自带的源码已经有,但未加入编译参数,跳过1步骤

nginx负载均衡/反向代理(http)

1.模块:httpproxymodule,httpupstreammodule
2.配置方式:

upstream servers { 
      server 10.0.6.108:7080; 
      server 10.0.0.85:8980; 
}
location / { 
            root  html; 
            index  index.html index.htm; 
            proxy_pass http://servers;  #使用proxy_pass实现反向代理
}

3.负载的五种分配策略/算法
1、轮询(默认)

每个请求按时间顺序逐一分配到不同的后端服务器,如果后端服务器down掉,能自动剔除。

2、weight
指定轮询几率,weight和访问比率成正比,用于后端服务器性能不均的情况。
例如:
复制代码 代码如下:

upstream backend {
server 192.168.0.14 weight=10;
server 192.168.0.15 weight=10;
}

3、ip_hash
每个请求按访问ip的hash结果分配,这样每个访客固定访问一个后端服务器,可以解决session的问题。
例如:
复制代码 代码如下:

upstream backend {
ip_hash;
server 192.168.0.14:88;
server 192.168.0.15:80;
}

4、fair(第三方)
按后端服务器的响应时间来分配请求,响应时间短的优先分配。
复制代码 代码如下:

upstream backend {
server server1.linuxany.com;
server server2.linuxany.com;
fair;
}

5、url_hash(第三方)

按访问url的hash结果来分配请求,使每个url定向到同一个后端服务器,后端服务器为缓存时比较有效。

例:在upstream中加入hash语句,server语句中不能写入weight等其他的参数,hash_method是使用的hash算法
复制代码 代码如下:

upstream backend {
server squid1:3128;
server squid2:3128;
hash $request_uri;
hash_method crc32;
}
#定义负载均衡设备的Ip及设备状态
upstream backend{
ip_hash;
server 127.0.0.1:9090 down;
server 127.0.0.1:8080 weight=2;
server 127.0.0.1:6060;
server 127.0.0.1:7070 backup;
}

在需要使用负载均衡的server中增加
proxy_pass http://bakend/;

每个设备的状态设置为:
1.down 表示单前的server暂时不参与负载
2.weight 默认为1.weight越大,负载的权重就越大。
3.max_fails :允许请求失败的次数默认为1.当超过最大次数时,返回proxy_next_upstream 模块定义的错误
4.fail_timeout:max_fails次失败后,暂停的时间。
5.backup: 其它所有的非backup机器down或者忙的时候,请求backup机器。所以这台机器压力会最轻。

nginx支持同时设置多组的负载均衡,用来给不用的server来使用。

client_body_in_file_only 设置为On 可以讲client post过来的数据记录到文件中用来做debug
client_body_temp_path 设置记录文件的目录 可以设置最多3层目录

location 对URL进行匹配.可以进行重定向或者进行新的代理 负载均衡

测试代理IIS完全可以的,因为只是转发

ulimit和/etc/security/limits.conf的区别及使用注意

ulimit -a 打印所有状态,想更改可以使用ulimit [-SOperation_name] [value] 来修改(网上教程太多,不一一说明了),但是修改后的值只会适用于当前的Session及其衍生Session。
如果想要永久改变属性值,据需要修改/etc/security/limits.conf文件。
修改limits.conf文件的注释在文件中介绍的很明白,也不多介绍。
需要注意的是在nproc修改的过程中我遇到一个问题,不管在limits.conf中如何修改值,soft及hard都改掉,也不会修改-n的值。
原因在google之后得到是,在redhat6之后。系统引入了/etc/security/limits.d/90-nproc.conf配置文件。而nproc的修改也需要在此文件修改。
http://www.linuxde.net/2013/03/13045.html这是一个详细介绍nproc的文章,写得还不错。。