Apache 中 KeepAlive 配置的合理使用

在 Apache 服务器中,KeepAlive 是一个布尔值,On 代表打开,Off 代表关闭,这个指令在其他众多的 HTTPD 服务器中都是存在的。

KeepAlive 配置指令决定当处理完用户发起的 HTTP 请求后是否立即关闭 TCP 连接,如果 KeepAlive 设置为 On,那么用户完成一次访问后,不会立即断开连接,如果还有请求,那么会继续在这一次 TCP 连接中完成,而不用重复建立新的 TCP 连接和关闭 TCP 连接,可以提高用户访问速度。

那么我们考虑3种情况:
1。用户浏览一个网页时,除了网页本身外,还引用了多个 javascript. 文件,多个 文件,多个图片文件,并且这些文件都在同一个 HTTP 服务器上。
2。用户浏览一个网页时,除了网页本身外,还引用一个 javascript. 文件,一个图片文件。
3。 用户浏览的是一个动态网页,由程序即时生成内容,并且不引用其他内容。

对于上面3中情况,我认为:1 最适合打开 KeepAlive ,2 随意,3 最适合关闭 KeepAlive

下面我来分析一下原因。

在 Apache 中,打开和关闭 KeepAlive 功能,服务器端会有什么异同呢?

先看看理论分析。
(更多…)

标签Tags:,

404错误的处理方式及对SEO的影响

404错误的处理方式及对SEO的影响

HTTP 404 错误意味着链接指向的网页不存在,即原始网页的URL失效,这种情况经常会发生,很难避免,比如说:网页URL生成规则改变、网页文件更名或移动位置、导入链接拼写

错误等,导致原来的URL地址无法访问;当Web 服务器接到类似请求时,会返回一个404 状态

码,告诉浏览器要请求的资源并不存在。但是,Web服务器默认的404错误页面,无论Apache

还是IIS,均十分简陋、呆板且对用户不友好,无法给用户提供必要的信息以获取更多线索,

无疑这会造成用户的流失。

因此,很多网站均使用自定义404错误的方式以提供用户体验避免用户流失。一般而言,

自定义404页面通用的做法是在页面中放置网站快速导航链接、搜索框以及网站提供的特色服

务,这样可以有效的帮助用户访问站点并获取需要的信息。
HTTP404对SEO的影响

自定义404错误页面是提供用户体验的很好的做法,但在应用过程中往往并未注意到对搜

索引擎的影响,譬如:错误的服务器端配置导致返回“200”状态码或自定义404错误页面使

用Meta Refresh导致返回“302”状态码。正确设置的自定义404错误页面,不仅应当能够正

确地显示,同时,应该返回“404”错误代码,而不是 “200”或“302”。虽然对访问的用

户而言,HTTP状态码究竟是“404”还是“200”来说并没有什么区别,但对搜索引擎而言,

这则是相当重要的。

(一)自定义404错误页返回“200”状态码

当搜索引擎蜘蛛在请求某个URL时得到“404”状态回应时,即知道该URL已经失效,便不

再索引该网页,并向数据中心反馈将该URL表示的网页从索引数据库中删除,当然,删除过程

有可能需要很长时间;而当搜索引擎得到“200”状态回应时,则会认为该url是有效的,便

会去索引,并会将其收录到索引数据库,这样的结果便是这两个不同的url具有完全相同的内

容:自定义404错误页面的内容,这会导致出现复制网页问题。对搜索引擎而言,特别是

Google,不但很难获得信任指数TrustRank,也会大大降低 Google对网站质量的评定。(为

什么会出现返回“200”状态码的情况??请参看下面内容“自定义404错误页面的基本原则

”)
(二)自定义404错误页使用Meta Refresh返回“302”状态码

常常看到许多网站的自定义404错误页面采取类似这样的形式:首先显示一段错误信息,

然后,通过Meta Refresh将页面跳转到网站首页、网页地图或其他类似页。根据具体实现方

式不同,这类404页面可能返回“200”状态码,也可能返回“302”,但不论哪种,从SEO技

术角度看,均不是一种合适的选择。

对“200”状态的情况我们上面已经谈过,那么,当404页面返回“302” 时,搜索引擎

会怎么对待呢?从理论上说,对“302”错误,搜索引擎认为该网页是存在的,只不过临时改

变了地址,仍然会索引收录该页,这样,同样会出现类似于“200”状态码时的重复文本问题

;其次,以google为代表的主流搜索引擎对302重定向的适用范围要求越来越严格,这类不当

使用302重定向的情况存在很大的风险。
确保自定义404错误页面能够返回“404”状态码

在自定义404错误页面设置完毕后,一定要检查一下其是不是能够正确地返回“404”状

态码。可以使用Server Header检查工具,输入一个不存在网页的url,查看一下HTTP Header

的返回情况,确信其返回的是“404 Not found”。
404错误的处理方式
(一)定制404错误页面的基本原则

首先应明确的是,404错误应工作在服务器级而不是网页级。对定制使用动态页面如PHP

脚本类型的404页时,必须确保在PHP执行前服务器已经顺利地送出“404”状态码,不然,一

旦执行到了ISAPI级别,返回的状态码便只能是“200”或其他如“302”之类的重定向状态码

了。

其次,在自定义网站的404错误页面时,对设置的错误页面URL链接应使用相对路径而不

是绝对路径,而且自定义404页面应该放在网站根目录下。尽管无效链接可能是多种形式的

URL,但当发生404访问错误时,WEB服务器会自动将其转到自定义的当404错误页中,这跟URL

的形似没有关系。

标签Tags:

监控mysql的工具MysqlReport的windows下安装

监控mysql的工具MysqlReport的安装

下载mysqlreport的pl脚本文件,这个pl脚本地址 http://hackmysql.com/mysqlreport
下载过了的文件是没有后缀的,你要自己加一个.pl后缀
文本编辑器打开,修改如下内容:
安装配置:

修改mysqlreport的 第73 74 75 76 77 行

$mycnf{‘host’}   = “127.0.0.1″;
$mycnf{‘port’}   = “3306″; #mysql的端口
$mycnf{‘socket’} = $op{‘socket’} if have_op ‘socket’;
$mycnf{‘user’}   = “root”;#mysql的用户名
$mycnf{‘pass’}   = “admin”;#mysql的用户名密码

 

在Web页面上嵌入,使用更方便。
接下来就尝试一下:
1、 搭建Apache + Perl 环境;windows下要预先安装安装activeperl5.5.8
2、 配置一下Apache;要启用cgi模块
3、 将MysqlReport脚本放入指定目录(cgi-bin);
4、 访问http://xxx.com.cn/cgi-bin/mysqlreport.pl即可查看运行结果。

注意的是,ActivexPerl连接mysql需要有对应的mysql驱动,安装方法如下:
下下载DBD-mysql.ppd ,下载路径:http://theoryx5.uwinnipeg.ca/ppms/DBD-mysql.ppd

将DBD-mysql.ppd 拷贝到perl/bin目录下
然后再 运行 c:\perl\bin\ppm install DBD-mysql.pps
或者直接运行C:\Documents and Settings\Administrator>ppm install http://theoryx5.uwinnipeg.ca/ppms/DBD-mysql.ppd
即可自动下载。
这样安装完成,
TroubleShooting
1   Apache的错误日志中可能会报

系统找不到指定的路径。  : couldn’t spawn child process:
因为pl文件第一行没有标出perl解释器的位置,改正之后就正常了。修改MysqlReport这个文件
第一行如下 #!c:/Perl/bin/perl.exe -w  (就是perl.exe的路径)

2  通过浏览器访问该mysqlreport.pl时发现是显示该脚本的源代码

这是因为没有启用apache的cgi模块

标签Tags:, ,

CMD命令行重启网卡:Win2003不重启计算机情况下重新启动网卡的方法

方法一:使用netsh

RestartLan.bat

代码

rem 适用于Win2003
rem 把Win2003的ifmon.dll拷贝到WinXP以后WinXP也可以用

rem 禁用网卡
netsh interface set interface name=”本地连接” admin=DISABLED

rem 启用网卡
netsh interface set interface name=”本地连接” admin=ENABLED

方法二:使用devcon.exe

代码

@echo off

rem 需要devcon.exe的支持

echo 请输入你的选择:(禁用网卡为N,启用为Y)

set/p SELECT=

if /i %SELECT%==Y set SELECT=ENABLE&GOTO :D O

if /i %SELECT%==N set SELECT=DISABLE

:D O

for /f “tokens=2 delims=&” %%i in (‘devcon find pci\* ^| findstr “Fast Ethernet”‘) do devcon %SELECT% *%%i*>NUL

(更多…)

标签Tags:

Nginx监控脚本

本shell脚本用于监控Nginx的连接数,Nginx所占用内存的总数,以及进程数。

#/bin/bash

host=`hostname`
ip=`ifconfig eth0 | grep ‘inet addr’|sed ‘s/.*addr://g’|sed ‘s/B.*//g’`
#监控nginx的连接数
http_req=`netstat -nat|grep -i “80″|wc -l `
time_stamp=`date “+%Y/%m/%d %T”`
if [ ${http_req} -ge 300 ];
then
echo “alert ==> ${host}@${ip}: http connection ${http_req} >= 300 @${time_stamp} ”
else
echo “${host}@${ip}: http connection ${http_req} @ ${time_stamp}”
fi
##监控nginx的进程
nginx_proc=`ps -C nginx –no-header | wc -l `
time_stamp=`date “+%Y/%m/%d %T”`
if [ ${nginx_proc} -ge 100 ]
then
echo “alert ==> ${host}@${ip}: nginx process ${nginx_proc} >= 100 @${time_stamp} ”
else
echo “${host}@${ip}: nginx process ${nginx_proc} @ ${time_stamp}”
fi

#监控nginx所占用的内存总数
nginx_mem=`top -b -n1 | grep nginx |gawk ‘{sum += $6}; END {print int(sum/1024)}’ `
time_stamp=`date “+%Y/%m/%d %T”`
if [ ${nginx_mem} -ge 500 ]
then
echo “alert ==> ${host}@${ip}: nginx memory usage ${nginx_mem} MB >= 500 @${time_stamp} ”
else
echo “${host}@${ip}: nginx memory ${nginx_mem}MB @ ${time_stamp}”
fi

标签Tags:

利用Tomcat建立多个Web Server的方法:tomcat 配置多个

通过配置多个<Service>元素(多端口 多应用)
在<>下配置多个<Service>元素
修改server.xml文件,在</server>之前插入,其中请注意修改 docBase=”c:/apache-tomcat-6.0.18/app2″为你的。
还有端口号。
<Service name=”Catalina2″>
<Connector acceptCount=”100″ connectionTimeout=”20000″ disableUploadTimeout=”true” port=”8090″ redirectPort=”8453″ maxSpareThreads=”75″ maxThreads=”150″ minSpareThreads=”25″/>

<Connector port=”8019″ protocol=”AJP/1.3″ protocolHandlerClassName=”org.apache.jk.server.JkCoyoteHandler” redirectPort=”8453″/>

<Engine defaultHost=”localhost” name=”Catalina”>

<Host appBase=”app2″ name=”localhost”>

<Context path=”" docBase=”c:/apache-tomcat-6.0.18/app2″ debug=”0″ reloadable=”true”></Context>

</Host>

<Realm className=”org.apache.catalina.realm.UserDatabaseRealm”/>

</Engine>

</Service>

这个时候可以通过访问 http://localhost:8090/ 来进行访问

标签Tags:

APT命令的用法

Apt命令 作用

apt-cache search package 搜索包

apt-cache show package 获取包的相关信息,如说明、大小、版本等 sudo apt-get install package 安装包

sudo apt-get install package – – reinstall 重新安装包

sudo apt-get -f install 强制安装

sudo apt-get remove package 删除包

sudo apt-get remove package – – purge 删除包,包括删除配置文件等 sudo apt-get autoremove 自动删除不需要的包

sudo apt-get update 更新源

sudo apt-get upgrade 更新已安装的包

sudo apt-get dist-upgrade 升级系统

sudo apt-get dselect-upgrade 使用 dselect 升级

apt-cache depends package 了解使用依赖

apt-cache rdepends package 了解某个具体的依赖

sudo apt-get build-dep package 安装相关的编译环境

apt-get source package 下载该包的源代码

sudo apt-get clean && sudo apt-get autoclean 清理下载文件的存档 sudo apt-get check 检查是否有损坏的依赖

标签Tags:

修复移动硬盘”文件或目录损坏且无法读取”

修复移动硬盘”文件或目录损坏且无法读取”

今天在电脑上发现移动硬盘打不开了,甚是着急,后来上网一查才知道,似乎是什么文件索引错了,就在dos下(windows xp 命令行)输入chkdsk H: /x (H为移动硬盘盘符),等了一会就好了.
附:
1、MBR(Main Boot Record):主引导记录
2、CHKDSK [volume[[path]filename]]] [/F] [/V] [/R] [/X] [/I] [/C] [/L[:size]]
volume 指定驱动器(后面跟一个冒号)、装入点或卷名。
filename? 仅用于 FAT/FAT32: 指定要检查是否有碎片的文件
/F? 修复磁盘上的错误。
/V  在 FAT/FAT32 上: 显示磁盘上每个文件的完整路径和名称。
在 NTFS 上: 如果有清除消息,将其显示。
/R? 查找不正确的扇区并恢复可读信息(隐含 /F)。
/L:size 仅用于 NTFS:? 将日志文件大小改成指定的 KB 数。
如果没有指定大小,则显示当前的大小。
/X?? 如果必要,强制卷先卸下。
卷的所有打开的句柄就会无效(隐含 /F)
/I 仅用于 NTFS: 对索引项进行强度较小的检查
/C?? 仅用于 NTFS: 跳过文件夹结构的循环检查。
/I 和 /C 命令行开关跳过卷的某些检查,减少运行 Chkdsk 所需的时间。
操作过程系统提示
C:\Documents and Settings\Administrator>chkdsk m: /x
文件系统的类型是 NTFS。
卷标是 新加卷。
CHKDSK 正在校验文件(3 的阶段 1)…
文件校验完成。00。
CHKDSK 正在校验索引(3 的阶段 2)…
修正文件 5 索引 $I30 中的错误。
修正文件 5 索引 $I30 中的错误。
为文件 5 中的索引 $I30 排序。
修正文件 27456 索引 $I30 中的错误。
修正文件 27456 索引 $I30 中的错误。
为文件 27456 中的索引 $I30 排序。
索引校验完成。00。
CHKDSK 正在恢复丢失的文件。
恢复孤立文件 IMG_19~2.JPG (27487) 到目录文件 2745
恢复孤立文件 IMG_196400.jpg (27487) 到目录文件 27
恢复孤立文件 IMG_19~3.JPG (27488) 到目录文件 2745
恢复孤立文件 IMG_198200.jpg (27488) 到目录文件 27
恢复孤立文件 Thumbs.db (27490) 到目录文件 27456。
恢复孤立文件 UFDATA.MD_ (27491) 到目录文件 27456。
恢复孤立文件 UfErpInf.md_ (27492) 到目录文件 2745
恢复孤立文件 UfErpYer.Lst (27493) 到目录文件 2745
恢复孤立文件 yi1.bmp (27494) 到目录文件 27456。
恢复孤立文件 yi2.bmp (27495) 到目录文件 27456。
恢复孤立文件 _desktop.ini (27496) 到目录文件 2745
CHKDSK 正在校验安全描述符(3 的阶段 3)…
安全描述符校验完成。
正在修复主控文件表(MFT)镜像的错误。
修正大写文件的错误。
正在修复主控文件表(MFT)位图属性的错误。
正在修复卷位图的错误。
Windows 已更正文件系统。
总共有  156287999 KB 磁盘空间。
27650 个文件中有    9475792 KB。
1872 个索引       6928 KB。
不正确扇区          0 KB。
系统正在使用     106071 KB。
日志文件占用了      65536 KB。
磁盘上  146699208 KB 可用。
每个分配单元中有       4096 字节。
磁盘上共有   39071999 个分配单元。
磁盘上有   36674802 个可用的分配单元。
标签Tags:

彻底明白IP地址——计算相关地址

知道ip地址和子网掩码后可以算出:
1、 网络地址
2、 广播地址
3、 地址范围
4、 本网有几台主机
例1:下面例子IP地址为192·168·100·5 子网掩码是255·255·255·0。算出网络地址、广播地址、地址范围、主机数。 (更多…)
标签Tags:,

Nginx限速

看了网上很多的Nginx介绍,就跟着弄,发现总是限制不了速度: 配置如下

http {
limit_zone   one $binary_remote_addr 10m;

{ …..

location /attachments/ {
limit_conn   one 1;
limit_rate 100k;
}
}

}

在万般无奈下,找到这样句话“如果把limti_rate直接放在server{}中,而不是location中,确实能实现限速,但我只想限制附件下载的速度,请问大大该怎么搞?” (更多…)

标签Tags:, , , , , , , , , , ,