Jan
29
前几天接手一台parking服务器,发现其流量经常达到上百M,为了进行流量分流。同时启用另两台机器做分流机。
因数据经整改后。可生成静态页面。所以对分流的服务器的系统就没什么要求了。只要可以显示静态网页的服务器即可。
选了两台电信机房及一台浙江机房的服务器。共三台,其中一台,可跑asp程序,用以生成静态页,其他两台一台是windows系统,另一台是linux系统。分别使用iis及apache实现web服务。
主服务器A 从服务器为B、C
架构为
A->B
A->C
数据通过contab及at指令,定时从A服务器自动用rsync实现数据同步。
因流量过大,经观察需要做的细化步骤有:
1.对IIS服务器要将所有的可能加载的dll工具等如7i24/iistracer等全部卸载。同时因是使用做parking服务器,将其所有的404页面做跳转到首页。
2.取消所有的动态执行权限。
3.对iis要注意观察是否会造成类似的CC全链接攻击。
4.对apache需进行重编译。许可超过256个链接数。
5.加入监控。实现跟踪自动化。
经过这几天的跟踪发现几点结论:
1.虽然我使用的目标服务器提供的web服务是基础是基于dns轮循查询方法上的。但从服务器的流量观察来看。每天都有一台机器要承受较大的流量的。即dns轮循实现的负载均衡不见得是实际的流量及响应均衡。
这点的证据是:浙江电信B与厦门电信C的流量明显不对等。
2.因A服务器同时提供udp53端口的查询功能。将所有域名的的dns解析记录直接都轮流指到A/B/C同时A服务器还提供asp服务cpu的负载稍高。
3.经过几天的观察,发现每天能响应的域名查询量差异较大。高时的流量ip>5万低时,只有2万多。
以此备注。rsync在对静态数据的同步化方面,用途明显。适合轻量级的数据同步。
因数据经整改后。可生成静态页面。所以对分流的服务器的系统就没什么要求了。只要可以显示静态网页的服务器即可。
选了两台电信机房及一台浙江机房的服务器。共三台,其中一台,可跑asp程序,用以生成静态页,其他两台一台是windows系统,另一台是linux系统。分别使用iis及apache实现web服务。
主服务器A 从服务器为B、C
架构为
A->B
A->C
数据通过contab及at指令,定时从A服务器自动用rsync实现数据同步。
因流量过大,经观察需要做的细化步骤有:
1.对IIS服务器要将所有的可能加载的dll工具等如7i24/iistracer等全部卸载。同时因是使用做parking服务器,将其所有的404页面做跳转到首页。
2.取消所有的动态执行权限。
3.对iis要注意观察是否会造成类似的CC全链接攻击。
4.对apache需进行重编译。许可超过256个链接数。
5.加入监控。实现跟踪自动化。
经过这几天的跟踪发现几点结论:
1.虽然我使用的目标服务器提供的web服务是基础是基于dns轮循查询方法上的。但从服务器的流量观察来看。每天都有一台机器要承受较大的流量的。即dns轮循实现的负载均衡不见得是实际的流量及响应均衡。
这点的证据是:浙江电信B与厦门电信C的流量明显不对等。
2.因A服务器同时提供udp53端口的查询功能。将所有域名的的dns解析记录直接都轮流指到A/B/C同时A服务器还提供asp服务cpu的负载稍高。
3.经过几天的观察,发现每天能响应的域名查询量差异较大。高时的流量ip>5万低时,只有2万多。
以此备注。rsync在对静态数据的同步化方面,用途明显。适合轻量级的数据同步。
Jan
20
今天想找一个手机短信发送程序。以解决服务器报警问题。
在搜索结果中找到了张宴博客。
http://blog.s135.com
发现这位工作于新浪播客的系统工程师中的很多文章很有借签意义。
不小心在他的博客上停留了好几个小时。
但感觉收获不少。相比于他的博客,我的可是差劲多了。
特此纪念一下。牛人-------张宴博客 http://blog.s135.com
其技术文章列表: http://blog.s135.com/tech/
在搜索结果中找到了张宴博客。
http://blog.s135.com
发现这位工作于新浪播客的系统工程师中的很多文章很有借签意义。
不小心在他的博客上停留了好几个小时。
但感觉收获不少。相比于他的博客,我的可是差劲多了。
特此纪念一下。牛人-------张宴博客 http://blog.s135.com
其技术文章列表: http://blog.s135.com/tech/
Jan
17
今天重新再翻看了一下shell程序相关的资料。准备重新将shell再提高一下。
将http://seo-dic.com.cn/archives/2496 提到的《Advanced Bash-Scripting Guide》《高级bash脚本编程指南》上附带的源码重新再看一次。
为了方便查看。我将所有的源代码全部导到一个文件中,再一一查看。省去了每次只打开一个脚本的麻烦。同时,将几个经常用的shell脚本函数稍做了下列举。希望后面可以用得到。
find -type f -name "*.sh" -exec cat {} >>sh.all \;
检查目录是否存在,若不存在,则创建相应目录。
[code]
# Check for and create datadir if necessary:
if test ! -d $datadir
then
mkdir $datadir
fi
[/code]
shell参数判断,若不符合则显示使用方式及退出。
[code]
E_BADARGS=65
case $# in
0|1) # The vertical bar means "or" in this context.
echo "Usage: `basename $0` old_file_suffix new_file_suffix"
exit $E_BADARGS # If 0 or 1 arg, then bail out.
;;
esac
[/code]
另例:
[code]
E_OPTERR=65
if [ "$#" -eq 0 ]
then # Script needs at least one command-line argument.
echo "Usage $0 -[options a,b,c]"
exit $E_OPTERR
fi
[/code]
检查是用户是否是root权限的方式:
ROOT_UID=0 # Root has $UID 0.
E_WRONG_USER=65 # Not root?
E_NOSUCHUSER=70
SUCCESS=0
if [ "$UID" -ne "$ROOT_UID" ]
then
echo; echo "Only root can run this script."; echo
exit $E_WRONG_USER
else
echo
echo "You should know better than to run this script, root."
echo "Even root users get the blues... "
echo
fi
进行用户目录判断:
LOG_DIR=/var/log
ROOT_UID=0 # Only users with $UID 0 have root privileges.
LINES=50 # Default number of lines saved.
E_XCD=66 # Can't change directory?
E_NOTROOT=67 # Non-root exit error.
cd $LOG_DIR
if [ `pwd` != "$LOG_DIR" ] # or if [ "$PWD" != "$LOG_DIR" ]
# Not in /var/log?
then
echo "Can't change to $LOG_DIR."
exit $E_XCD
fi # Doublecheck if in right directory, before messing with log file.
将http://seo-dic.com.cn/archives/2496 提到的《Advanced Bash-Scripting Guide》《高级bash脚本编程指南》上附带的源码重新再看一次。
为了方便查看。我将所有的源代码全部导到一个文件中,再一一查看。省去了每次只打开一个脚本的麻烦。同时,将几个经常用的shell脚本函数稍做了下列举。希望后面可以用得到。
find -type f -name "*.sh" -exec cat {} >>sh.all \;
检查目录是否存在,若不存在,则创建相应目录。
[code]
# Check for and create datadir if necessary:
if test ! -d $datadir
then
mkdir $datadir
fi
[/code]
shell参数判断,若不符合则显示使用方式及退出。
[code]
E_BADARGS=65
case $# in
0|1) # The vertical bar means "or" in this context.
echo "Usage: `basename $0` old_file_suffix new_file_suffix"
exit $E_BADARGS # If 0 or 1 arg, then bail out.
;;
esac
[/code]
另例:
[code]
E_OPTERR=65
if [ "$#" -eq 0 ]
then # Script needs at least one command-line argument.
echo "Usage $0 -[options a,b,c]"
exit $E_OPTERR
fi
[/code]
检查是用户是否是root权限的方式:
ROOT_UID=0 # Root has $UID 0.
E_WRONG_USER=65 # Not root?
E_NOSUCHUSER=70
SUCCESS=0
if [ "$UID" -ne "$ROOT_UID" ]
then
echo; echo "Only root can run this script."; echo
exit $E_WRONG_USER
else
echo
echo "You should know better than to run this script, root."
echo "Even root users get the blues... "
echo
fi
进行用户目录判断:
LOG_DIR=/var/log
ROOT_UID=0 # Only users with $UID 0 have root privileges.
LINES=50 # Default number of lines saved.
E_XCD=66 # Can't change directory?
E_NOTROOT=67 # Non-root exit error.
cd $LOG_DIR
if [ `pwd` != "$LOG_DIR" ] # or if [ "$PWD" != "$LOG_DIR" ]
# Not in /var/log?
then
echo "Can't change to $LOG_DIR."
exit $E_XCD
fi # Doublecheck if in right directory, before messing with log file.
Nov
14
Hi
设置特定ip许可访问:
Please follow the steps below to configure specific IPs to access PMP.
1. Before editing take a back up copy of server.xml present in <PMP HOME>\conf folder.
2. Find the below 2 lines in server.xml
3. Replace it with the below lines
4. Restart the PMP Service
You can replace the IP address which you want to give access. You can specify the IP in comma separated format.
设置特定ip许可访问:
Please follow the steps below to configure specific IPs to access PMP.
1. Before editing take a back up copy of server.xml present in <PMP HOME>\conf folder.
2. Find the below 2 lines in server.xml
| Quote: |
| <-- Tomcat Root Context --> <Context path="" docBase="PassTrix" debug="0"/> |
3. Replace it with the below lines
| Quote: |
| <-- Tomcat Root Context --> <Context path="" docBase="PassTrix" debug="0"> <Valve className="org.apache.catalina.valves.RemoteAddrValve" allow="127.0.0.1,192.168.112.*" /> </Context> |
4. Restart the PMP Service
You can replace the IP address which you want to give access. You can specify the IP in comma separated format.







