来源:帕兰映像

11款网站服务器监测通知工具。没有哪个站长愿意自己的网站宕机,但Google服务器都会出问题,何况是我等小网站、破服务器。

宕机所带来的损失和付出的代价往往是巨大的,我们除了能够尽量购买一个稳定的服务器之外,对待Down机的最好解决办法只有一个了: 及时解决。要及时解决就得及时知道网站服务器什么时候Down了。你不可能24小时刷新着自己的网页去查看网页是否正常,更不要奢望你的用户会在第一时间通知你网站Down了,除非你是Google。

所以,做为一个站长,网站监测通知工具几乎是必备的工具。本文里面,帕兰映像为你精心收集整理了一些在线网站服务器监测通知工具。通过这些工具,你可以及时的通知Feed订阅、Email邮件、SMS短信或电话提醒来获知网站是否出现了问题,以减少损失。
1. Alertyx
Alertyx是一个网站服务器监测通知工具,监测对象包括Web服务器、邮件服务器和数据库服务器等。当你添加的网站服务器出现Down机情况时,它会以你指定的方式通知你: 包括电话通知、SMS短信通知和邮件通知。

它有免费帐户和收费收户,但免费帐户对于大多数人来说已经足够了,免费帐户甚至包含了电话提醒功能,免费电话提醒支持的国家地区中也包含有中国。

帕兰还没有具体试用,不过推荐有兴趣的站长朋友去体验一下。
2. Howsthe
这个跟上面的Alertyx差不多,它支持Email通知、Feed订阅通知和SMS短信提醒(但不支持中国通信服务商)。另外,还可以设置关键字监控,监控频率和通知频率等。
3. Host-tracker
HostTracker是美国的一家提供网站服务器监测服务的网站,使用HostTracker,当你的网站不能正常在线访问时其会发邮件通知你。 HostTracker免费网站服务器监测服务可以监测最多2个网站,最少每30分钟监测一次,每周发送统计报告,提供在线率统计图标(可放置在你的网站上);HostTracker试用版可以使用 30天,最多可监测100个网站,最少每分钟监测一次,每天发送报告,试用期结束后你可以升级为免费版继续使用。HostTracker还提供了全球网站访问速度测试,在全球有30多个测试点,可测响应时间和下载速度。
4. 超级网站监控 (Monitorx)
超级网站监控(monitorX)是国内的一家网站服务器监测服务商,除了收费监控服务,还为广大站长提供免费的网站监控服务:每6分钟检测一个网址一 次、免费赠送10条短信通知、每月30封网站出错邮件通知。超级网站监控支持监控页面包含关键词,可有效防止一般的黑客修改、挂马,DNS劫持。
5. chinaz的网站服务器监测服务
网站保姆是由中国站长站(ChinaZ)推出的网站服务器监测服务,对于免费用户,可以监测一个网站(可监测域名或IP,可设置监测端口),每隔10-15分钟监测一次,出现问题会给你发送Email通知。
Read the rest of this entry

Apache 安全配置

Apache 安全配置
声明:关于安全的事情没有保证的或者绝对的。这些建议可以让你的服务器更安全,但不要认为遵循这些建议后你的服务器就理所当然是安全的。

另外,在这些建议中有的建议可能会降低服务器性能或者因为你的环境引起问题。我建议所作的任何改变是否适合你的需求完全由你决定。换句话说,那是你的风险。

一、确保你安装的是最新的补丁

如果门是敞开的话,在窗户上加锁就毫无意义。同样道理,如果你没有打补丁,继续下面的操作就没有什么必要。

二、隐藏Apache的版本号及其它敏感信息

默认情况下,很多Apache安装时会显示版本号及操作系统版本,甚至会显示服务器上安装的是什么样的Apache模块。这些信息可以为黑客所用,并且黑客还可以从中得知你所配置的服务器上的很多设置都是默认状态。

这里有两条语句,你需要添加到你的httpd.conf文件中:

ServerSignature Off

ServerTokens Prod

ServerSignature出现在Apache所产生的像404页面、目录列表等页面的底部。ServerTokens目录被用来判断 Apache会在Server HTTP响应包的头部填充什么信息。如果把ServerTokens设为Prod,那么HTTP响应包头就会被设置成:

Server:Apache

如果你非常想尝试其它事物,你可以通过编辑源代码改成不是Apache的其它东西,或者你可以通过下面将要介绍的mod_security实现。

三、确保Apache以其自身的用户账号和组运行

有的Apache安装过程使得服务器以nobody的用户运行,所以,假定Apache和你的邮件服务器都是以nobody的账号运行的,那么通过Apache发起的攻击就可能同时攻击到邮件服务器,反之亦然。

User apache

Group apache

四、确保web根目录之外的文件没有提供服务

我们不让Apache访问web根目录之外的任何文件。假设你的所以web站点文件都放在一个目录下(例如/web),你可以如下设置: Read the rest of this entry

本地发布东西,跳出错误Request 对象 错误 'ASP 0104 : 80004005',郁闷,看了一下好像是上传的内容大小超过限制,默认是200K..按IIS6的方法改的不行,试了N次,最后发现直接在Internet 信息服务(IIS)管理器中修改就行了.郁闷

IIS6解决方法:首先停止 IIS 服务,之后打开 C:\Windows\System32\Inetsrv 中的 metabase.XML, 并修改 AspMaxRequestEntityAllowed 为你需要的值(例如 1073741824, 1GB)。
启动IIS服务。

IIS7解决方法:启动Internet 信息服务(IIS)管理器,选中要修改的站点,下面看图吧,省得菜鸟找不到..

修改好之后,点击右上角的应用即可.然后就接着发布东西吧...

100 Continue 初始的请求已经接受,客户应当继续发送请求的其余部分。(HTTP 1.1新)

  101 Switching Protocols 服务器将遵从客户的请求转换到另外一种协议(HTTP 1.1新)

  200 OK 一切正常,对GET和POST请求的应答文档跟在后面。

  201 Created 服务器已经创建了文档,Location头给出了它的URL。

  202 Accepted 已经接受请求,但处理尚未完成。

  203 Non-Authoritative Information 文档已经正常地返回,但一些应答头可能不正确,因为使用的是文档的拷贝(HTTP 1.1新)。

  204 No Content 没有新文档,浏览器应该继续显示原来的文档。如果用户定期地刷新页面,而Servlet可以确定用户文档足够新,这个状态代码是很有用的。

  205 Reset Content 没有新的内容,但浏览器应该重置它所显示的内容。用来强制浏览器清除表单输入内容(HTTP 1.1新)。

  206 Partial Content 客户发送了一个带有Range头的GET请求,服务器完成了它(HTTP 1.1新)。

  300 Multiple Choices 客户请求的文档可以在多个位置找到,这些位置已经在返回的文档内列出。如果服务器要提出优先选择,则应该在Location应答头指明。

  301 Moved Permanently 客户请求的文档在其他地方,新的URL在Location头中给出,浏览器应该自动地访问新的URL。

Read the rest of this entry

Windows下:
1、开启安全模式,可以禁用exec()、system()等函数
2、在httpd.conf中用php_admin_value open_basedir限制PHP的存取目录
3、在php_admin_value open_basedir别忘了加上php.ini中指定的PHP临时上传目录和session保存目录,不然会无法上传文件、存取session
php.ini中按如下配置:
upload_tmp_dir = "E:/APMServ5.2.0/PHP/uploadtemp/"
session.save_path = "E:/APMServ5.2.0/PHP/sessiondata/"

4、更多内容参考我的APMServ软件的配置 http://apmserv.s135.com

httpd.conf配置(假如将PHP读写权限限制在E:\smis目录下)

Apache2.0配置示例:

<VirtualHost *:80>
ServerName www.abc.com
DocumentRoot "E:/smis"
Options FollowSymLinks IncludesNOEXEC Indexes
DirectoryIndex index.html index.htm default.htm index.php default.php
AllowOverride None
Order Deny,Allow
Allow from all
php_admin_value open_basedir "E:/smis/;E:/APMServ5.2.0/PHP/uploadtemp/;E:/APMServ5.2.0/PHP/sessiondata/"
php_admin_value safe_mode On
</VirtualHost>

Apache2.2配置示例:

<VirtualHost *:80>
ServerName www.abc.com
DocumentRoot "E:/smis"
</VirtualHost>
<Directory "E:/smis">
Options FollowSymLinks IncludesNOEXEC Indexes
DirectoryIndex index.html index.htm default.htm index.php default.php
AllowOverride None
Order Deny,Allow
Allow from all
php_admin_value open_basedir "E:/smis/;E:/APMServ5.2.0/PHP/uploadtemp/;E:/APMServ5.2.0/PHP/sessiondata/"
php_admin_value safe_mode On
</Directory>

至今还有这么多传统ASP (Classic ASP) 应用程序和开发者,真让我感到惊讶。我还记得96、97年的时候IIS3问世,我体验了最原始的ASP程序,并为它与ColdFusion相比表现出的惊人的可编程性赞叹不已。使用传统ASP我建立了许多应用, 它将成为我记忆中永不褪色的闪光点:)
使用传统ASP编程的开发人员应该对IIS7的几个小变化引起注意。

ASP缺省不安装

重要的事先来! 如果从XP迁移到Vista / Longhorn Server, 您也许会得到这个错误:
--------------------------------------------------------------------------------------------------------------------

HTTP Error 404.3 - Not Found

Description: The page you are requesting cannot be served because of the Multipurpose Internet Mail Extensions (MIME) map policy that is configured on the Web server. The page you requested has a file name extension that is not recognized, and is not allowed.

--------------------------------------------------------------------------------------------------------------------
这是您没有安装ASP组件时的情形,所以去您安装IIS的地方找到IIS/WWW Services(WWW服务)/Application Development(应用程序开发)/ASP 来安装它。:)

Access 与传统ASP

很多人使用Access作为数据库-因为它小巧,可复制, 容易处理。我们在Vista IIS7的一个变动就是缺省不使用ASP和Access。本篇我将详细描述这一变化, 但根本上这是因为应用程序池(Application Pool)缺省不再使用\windows\temp, 而改为应用程序池身份档案(identity's profile)和临时目录。并且因为只有"网络服务"才能向网络服务的临时目录执行写入操作, ASP使用虚拟身份(impersonated identity)访问数据库, 所以匿名或已认证的ASP应用程序就会中止。如果您在IIS7使用ASP+Access、你大概会看到与以下提示类似的错误信息:
--------------------------------------------------------------------------------------------------------------------

Microsoft JET Database Engine error '80004005'
Unspecified error

--------------------------------------------------------------------------------------------------------------------
回答很简单: 关闭loadUserProfile, 或者设置temp directory的访问权限以允许写操作. 这一问题和其它兼容性问题导致, 我们考虑在Longhorn Server / Vista SP1中取消这一变化.

不过现在, 您可以在下列措施中任选一项:

这个 appcmd 指令将为缺省应用程序池关闭 loadUserProfile. 假如您的程序运行于不同的应用程序池(AppPool), 就相应改动一下:

%windir%\system32\inetsrv\appcmd set config -section:applicationPools /[name='DefaultAppPool'].processModel.loadUserProfile:false

这条命令将把网络服务的临时目录权限改为可读可写。如果你是以另一个身份来运行程序,那么你还需要将那个身份的临时目录权限给打开:
icacls %windir%\serviceprofiles\networkservice\AppData\Local\Temp /grant Users:(CI)(S,WD,AD,X)

icacls %windir%\serviceprofiles\networkservice\AppData\Local\Temp /grant "CREATOR OWNER":(OI)(CI)(IO)(F)

脚本错误默认为不在浏览器中显示了

作为安全策略的一部分,我们关闭了ASP的自动在浏览器中显示脚本错误的提示。也就是说一般用户将不会再看到你的语句到底是哪一行出了差错。取而代之的是这个错误提示:
--------------------------------------------------------------------------------------------------------------------

An error occurred on the server when processing the URL. Please contact the system administrator

--------------------------------------------------------------------------------------------------------------------

要想恢复到IIS6的状态也很容易,运行下面命令即可:

%windir%\system32\inetsrv\appcmd set config -section:asp -scriptErrorSentToBrowser:true

或者你可以在窗口界面中找到以下这个选项:

 

iis7_1

之后你就能看到这样的错误提示信息了:
--------------------------------------------------------------------------------------------------------------------

Microsoft VBScript compilation error '800a03ea'

Syntax error

/test.asp, line 4

Read the rest of this entry

使用.Htaccess来防盗链

先解释一下图片防盗链和转向:

图片防盗链有什么用?

防止其它网站盗用你的图片,浪费你宝贵的流量。

图片转向有什么用?

如果你的网站以图片为主,哪天发现月底没到流量就快用光了,那就可以利用图片转向,在不修改网页的前提下,把图片下载请求转向到其它空间(比如试用主机),临时过渡。

下面开始讲解,比如你的图片都在img目录下,那就在该目录下放一个名为 .htaccess 的文件,内容如下:

RewriteEngine on

RewriteCond %{HTTP_REFERER} !^$ [NC]

RewriteCond %{HTTP_REFERER} !simcole.cn [NC]

RewriteCond %{HTTP_REFERER} !zhuaxia.com [NC]

RewriteCond %{HTTP_REFERER} !google.com [NC]

RewriteCond %{HTTP_REFERER} !baidu.com [NC]

RewriteCond %{HTTP_REFERER} !bloglines.com [NC]

RewriteRule .(jpg|gif|png|bmp|swf|jpeg) /image/replace.gif [R,NC,L]

RewriteRule ^(.*)$ http:\/\/image.lixiaopeng.org\/image\/$1 [L]

大概解释下:

RewriteCond %{HTTP_REFERER} !^$ [NC]

RewriteCond %{HTTP_REFERER} !simcole.cn [NC]

RewriteCond %{HTTP_REFERER} !zhuaxia.com [NC]

RewriteCond %{HTTP_REFERER} !google.com [NC]

RewriteCond %{HTTP_REFERER} !baidu.com [NC]

RewriteCond %{HTTP_REFERER} !bloglines.com [NC]

这部分是判断是否盗链,如果以上条件都成立(即访问图片的请求,既不是直接输入网址,也不是来自simcole.cn,也不是来自 zhuaxia.com,也不是来自google.com,也不是来自baidu.com,也不是来自bloglines.com 的话),就执行下列转向:

RewriteRule .(jpg|gif|png|bmp|swf|jpeg) /image/replace.gif [R,NC,L]

意思是让所有盗链 img 目录下 jpg、gif、png、bmp、swf、jpeg 文件的网页,显示的图片都用 image 目录下的 replace.gif 图片替换掉。注意替换显示的图片不要放在设置防盗链的 img 目录下。如果照上面的规则判断出图片请求不是盗链的,就执行以下转向:

RewriteRule ^(.*)$ http:\/\/image.lixiaopeng.org\/image\/$1 [L]

意思是对 img 目录下所有的请求都转向到目标服务器,比如有个图片原来的 url 是 http://www.lixiaopeng.org/img/logo.gif ,现在就会转到 http://www.lixiaopeng.org/templets/imagesN/logo.gif 去。当然了你得先把原服务器 img 目录下的文件统统拷贝到临时服务器的 image 目录下,转向才会真正可用。起到的效果就是把原服务器图片下载所占用的流量统统省下,让临时服务器来承受了.