原文地址:http://blog.chinaunix.net/u/11169/showart_1189864.html
ldirectord使用一个配置文件建立IPVS表,你可以给这个文件取任意合法的名字,但你必须将其放于/etc/ha.d/conf目录下,例如:在VIP
209.100.100.3上的IPVS配置文件可以是:
checktimeout=20
checkinterval=5
autoreload=yes
quiescent=no
logfile='info'
virtual=209.100.100.3:80
real=127.0.0.1:80 gate 1 '.healthcheck.html', 'OKAY'
real=209.100.100.100:80 gate 1 '.healthcheck.html', 'OKAY'
service=http
checkport=80
protocol=tcp
scheduler=wrr
checktype=negotiate
fallback=127.0.0.1
|
注意:在virtual行后面的行必须缩进4个空格或一个tab字符进行标记。
这个文件的前面4行是“全局”设置,它们应用到多个虚拟主机,但是当使用Heartbeat时,这
更多详细内容请参考:http://www.wenzizone.cn/?p=7
环境:
主服务器:192.168.2.187
备服务器:192.168.2.189
VIP: 192.168.2.158
lvs配置部分
安装lvs所需要的软件
yum -y install heartbeat
yum -y install heartbeat-ldirectord
yum -y install heartbeat-devel
yum -y install ipvsadm
1.配置Ldirector (以下配置都是以主服务器为例)
vi /etc/ha.d/ldirectord.cf设置如下内容,两台机器文件内容相同
#
# Sample ldirectord configuration file to configure various virtual
services.
#
# Ldirectord will connect to each real server once per second and
request
# /index.html. If the data returned by the server does not contain
the
# string 'Test Message' then the test fails and the real server
will be
# taken out of the available pool. The real server will be added
back into
# the pool once the test succeeds. If all real servers are removed
from t
转自:http://www.yanghengfei.com/show-294-1.html
Memcache是什么?
Memcache是一个自由和开放源代码、高性能、分配的内存对象缓存系统。用于加速动态web应用程序,减轻数据库负载。
它可以应对任意多个连接,使用非阻塞的网络IO。由于它的工作机制是在内存中开辟一块空间,然后建立一个HashTable,Memcached自管理这些HashTable。
Memcached是简单而强大的。它简单的设计促进迅速部署,易于发展所面临的问题,解决了很多大型数据缓存。它的API可供最流行的语言。
Memcache的知名用户有:LiveJournal、Wikipedia、Flickr、Bebo、Twitter、Typepad、Yellowbot、Youtube
等。
Memcache官方网站:http://memcached.org/
Memcached又是什么?
Memcache是该系统的项目名称,Memcached是该系统的主程序文件,以守护程序方式运行于一个或多个服务器中,随时接受客户端的连接操作,使用共享内存存取数据。
那PHP中的Memcache是什么?
php中的所讲的memcache是用于连接Memecached的
1.找出test目录下小于100k和大于300k的文件
# !/bin/sh
ls -l /tmp/test/ |awk '{print $9}' |grep -v ^$ | while read
LINE
do
size=`ls -l /tmp/test/$LINE |awk '{print $5}'`
if [ $size -le 100 -o $size -ge 300 ];then
#mv $LINE
/tmp
echo $LINE
fi
done
或:
find /tmp -size -100k -o
-size +300k -exec ls -l {} \;
2.找出test目录下大小在40K-60K之间的文件
find test -size +40k -a
-size -60k -exec ls -l {} \;
3、在目录/tmp下找到100个以abc开头的文件,然后把这些文件的第一行保存到文件new中。
#!/bin/sh
cd /tmp
for i in `find . -type f -name
'abc*'| head -n 100`
转自:http://blog.topsage.com/thread-763311-1-1.html
lvs和nginx都可以用作多机负载的方案,它们各有优缺,在生产环境中需要好好分析实际情况并加以利用。
首先提醒,做技术切不可人云亦云,我云即你云;同时也不可太趋向保守,过于相信旧有方式而等别人来帮你做垫被测试。把所有即时听说到的好东西加以钻研,从而提高自己对技术的认知和水平,乃是一个好习惯。
下面来分析一下两者:
一、lvs的优势:
1、抗负载能力强,因为lvs工作方式的逻辑是非常之简单,而且工作在网络4层仅做请求分发之用,没有流量,所以在效率上基本不需要太过考虑。在我手里的
lvs,仅仅出过一次问题:在并发最高的一小段时间内均衡器出现丢包现象,据分析为网络问题,即网卡或linux2.4内核的承载能力已到上限,内存和
cpu方面基本无消耗。
2、配置性低,这通常是一大劣势,但同时也是一大优势,因为没有太多可配置的选项,所以除了增减服务器,并不需要经常去触碰它,大大减少了人为出错的几率。
3、工作稳定,因为其本身抗负载能力很强,所以稳定性高也是顺理成章,另外各种lvs都有完整的双机热
保留一下,以备将来用到。
nginx文件类型错误解析漏洞原文地址:http://www.80sec.com/nginx-securit.html
漏洞介绍:nginx是一款高性能的web服务器,使用非常广泛,其不仅经常被用作反向代理,也可以非常好的支持PHP的运行。80sec发现其中存在一个较为严重的安全问题,默认情况下可能导致服务器错误的将任何类型的文件以PHP的方式进行解析,这将导致严重的安全问题,使得恶意的攻击者可能攻陷支持
php的nginx服务器。
漏洞分析:nginx默认以cgi的方式支持php的运行,譬如在配置文件当中可以以
location ~ \.php$ {
root html;
fastcgi_pass 127.0.0.1:9000;
fastcgi_index index.php;
fastcgi_param SCRIPT_FILENAME /scripts$fastcgi_script_name;
include fastcgi_params;
}
的方式支持对php的解析,location对请求进行选择的时候会使用URI环境变量进行选择,其中传递到后端Fastcgi的关键变量
SCRIPT_FILENAME由nginx生成的$fastcgi_script_name决定,而通过分析可以看到$fastcgi_script_name是直接由URI环境变量
转自:http://deidara.blog.51cto.com/400447/193887
在web服务器中需要中修改配置:
resion中:
shell $> vim resin.conf
## 查找 <http address='*'
port='8080'/>
## 注释掉 <!--http address='*' port='8080'/-->
## 查找 <server id=''
address='127.0.0.1' port='6800'>
## 替换成
<server id='a' address='192.168.6.121'
port='6800'>
<!-- server2 address=192.168.6.162
-->
<http id='' port='8080'/>
</server>
<server id='b' address='192.168.6.121'
port='6801'>
<!-- server2 address=192.168.6.162
-->
<http id='' port='8081'/>
</server>
tomcat中:(经过试验确认,虚拟主机也支持,只需按下面修改一次即可)
nginx:
[root@test1 html]# ab -n1000 -c100
http://test.domain.com/tomcat.gif
Benchmarking test.domain.com (be
patient)
Completed 100
requests
原文地址:http://blog.chinaunix.net/u/12066/showart_488771.html
1、默认 Resolver 发出的是递归查询,而且默认 BIND name server
也处理所有的递归请求。
2、但某些情况下,服务器应该被配置为不接受递归请求,例如根域服务器。根域服务器不接受递归请求的原因
:
因为根域服务器太忙了,它们没有精力来回答递归查询。
接受递归请求将会建立缓存,如此根域服务器的缓存将会变得十分巨大
3、关于递归/非递归方面的配置语句有 recursion 和
allow-recursion 语句。两者都只能放在 options 或者 view 语句中,不能用于 zone
语句,也就是说你不能设置 BIND 不接受对某个 zone 的递归请求。
4、recursion 与 allow-recursion 的区别
:
上面错误中的数字1有可能是其他数字,造成这个错误的原因是Apache在关闭并发线程的时候出现线程溢出,从而造成内存泄露,表现出来的就是Apache所占用的系统资源持续增长。
具体来说,Apache的子进程在结束当前请求之前会首先将所有的并发线程进行关闭,在关闭的时候会等待3分钟,如果3分钟之内没有将所有的线程关闭则会抛出上述的错误提示,然后强制关闭。这样就造成了内存溢出,时间一长会使得Apache所占用资源持续增长直到无法工作。这个时候可以适当将MaxRequestsPerChild的值降低,使得Apache子进程所并发的线程数量减少,从而降低该错误出现的几率。
但是这种方式并不能彻底解决问题,幸好Apache2.0.x的最新版本(2.0.63)解决了之前版本的这个问题,如果3分钟之内有线程没有关闭的话会自动根据时间情况再增加等待结束的时间直到最终将所有的线程结束。日志文件中会出现类似下面的信息:
Child 1952: Waiting 150 more seconds for 2 worker threads to
finish.
Child 1952: Waiting 120 more seconds for 1 worker threads to
finish.
Child 1952: All wo