习惯了SERV-U?习惯了IIS-FTP?习惯了cuteftp?习惯了flashfxp?这一切,有开源免费的代替品:filezilla。
想试试看?来这里下载:http://filezilla-project.org/download.php
试用了客户端,有点类似flashfxp,界面很友好。
谁有需要,可以试用一下服务器端。
习惯了SERV-U?习惯了IIS-FTP?习惯了cuteftp?习惯了flashfxp?这一切,有开源免费的代替品:filezilla。
想试试看?来这里下载:http://filezilla-project.org/download.php
试用了客户端,有点类似flashfxp,界面很友好。
谁有需要,可以试用一下服务器端。
在windows server 2003 + IIS 6 的时候,就已经能实现多用户FTP的功能,不过设置有写繁琐,如果站点多的话,设置账号、权限这些东西都要搞很久。
Windows server 2008 + IIS 7.5 同样能够实现多用户FTP,并且要比IIS 6 便捷许多。
一,设置。为了安全起见,建议使用独立的账号作为FTP账号。账号建立好以后,通过建立站点的“添加FTP发布”来添加FTP站点即可。一个WEB站点对应一个FTP发布,也就是一个FTP站点。建立的流程如下图:
添加“添加FTP发布”
绑定域名和SSL,注意需要选“允许”或“需要”。
身份验证和授权信息。这里我选择“指定用户”,那么这个FTP就只有一个用户能使用了,当然你也可以选择“指定角色或用户组”,这样就可以支持一个站点多人使用。点击完成就可以了。
2、登录设置。上面的“启用虚拟主机名”有什么作用呢?难道要使用WEB这样登录:ftp://www.ljf.cn?不是的。这个虚拟主机名是跟用户名一起组成FTP的登录名。例如上面的设置,则FTP的登录名是这样的:
使用竖线|分开虚拟主机名和用户名。密码就是系统账号的密码。
3、权限设置。FTP的主目录就是WEB的主目录,所以要为其添加FTP登录账号的读取、写入权限,这样FTP才能正常使用。这部分跟windows server 2003 没什么区别。
IIS默认是没有启用父路径的。你需要在这里启用这个选项:
1、单击站点,找到“IIS”这个项目,双击项目中的ASP图标。
2、找到“启用父路径”项目,将对应的值设置为“TRUE”即可。如下图:
当然还有其他附加选项也可以在这里配置。
利用 URL重写规则来实现网站资源(例如图片、音乐)的防盗链接。windows server 2003 系统只要使用免费版的isapi rewrite就可以实现了。下载地址:http://www.helicontech.com/download-isapi_rewrite3.htm
isapi_rewrite 2 的防盗链接规则:
# 3600 = 1 hour CacheClockRate 3600 #根据需要将允许访问的域名按下面例子添加即可。 #可根据需要自行设置需要防盗链的文件后缀。 #/block.html为盗链替换的网页,可以设置版权提醒。 RepeatLimit 32 RewriteCond Host: ^(.+)$ RewriteCond Referer: ^(?!http://1.*).*$ RewriteCond Referer: ^(?!http://(.*.google.com|.*.baidu.com|.*.ljf.cn).*).*$ RewriteRule ^.*.(?:gif|jpg|png|exe|rar|zip|jpeg|mp3|rar)$ /block.html [I,O,N]
ISAPI Rewrite 3 的防盗链规则
# 3600 = 1 hour
CacheClockRate 3600
#根据需要将允许访问的域名按下面例子添加即可。
#可根据需要自行设置需要防盗链的文件后缀。
#/block.html为盗链替换的网页,可以设置版权提醒。
RepeatLimit 32
RewriteCond %{HTTP:Host} ^(.+)$
RewriteCond %{HTTP:Referer} ^(?!http://1.*).*$
RewriteCond %{HTTP:Referer} ^(?!http://(.*.google.com|.*.baidu.com|.*.ljf.cn).*).*$
RewriteRule ^.*.(?:gif|jpg|png|exe|rar|zip|jpeg|mp3|rar)$ /block.html [I,O,N]
至于windows server 2008 和 apache 的URL重写规则,可以参考上面的规则自作调整即可。
注意,做了防盗链接之后,直接在浏览器中打入资源的URL是无法显示的,例如直接打入一个图片的URL,将显示上面定义的block.html页面。
JS引用的路径错了,导致导航栏菜单不能显示,不能发帖。换系统重新安装了两次,结果居然是这个问题,非常郁闷。
换成GBK版本的程序就一切正常了。
js位于static/js/目录下,不管哪个版本都是有的,只是UTF8版本的路径写错了而已。
查看模板/template/default/common/header.html可以看到变量$_G[setting][jspath],这应该是在后台“全局”、“优化设置”、“服务器优化”、“JS文件目录”中设置的,可是设置之后没有起作用。
静待官方的X2.0发布之后再升级吧。据说到时QQ登陆插件都不会做限制了。
今天网站被人注了几千条垃圾评论。虽然需要审核才会显示,对用户并没有什么影响,但影响了管理。并且,被人注了垃圾,本身就是不好的。
想到通过查日志来分析问题的页面是哪个。
短时间内被访问最多的页面一般来说嫌疑最大,于是“查找访问量最大的前10个页面”这个任务是我需要做的。另外,网站今天的访问速度偏慢,于是“查找网站内运行最慢的10个页面”也是我需要的,可以通过分析代码来提高执行效率。
logPaser,微软出品的小工具,把上面这两个需求变成可能,而且只需一条命令即可获得。
下载地址:http://www.microsoft.com/downloads/en/details.aspx?FamilyID=890cd06b-abf8-4c25-91b2-f8d975cf8c07&displaylang=en 可怜没有中文版。算了,英文版也不碍事。
附录(以下资料来源于:http://www.cnblogs.com/chenleiustc/archive/2009/07/25/1530719.html):
虽然有了IIS日志,但是我们如果在浩如烟海的日志中提取出我们需要的信息呢?幸运的是微软早就为我们准备好了一个不错的工具----LogParser。LogParser功能非常的强大,不但可以分析IIS日志,还可以分析系统事件日志,CSV,XML等格式日志,同时LogParser还支持编程接口,LogParser的帮助文档里自带了一个使用C#查询系统日志的例子。 下面给出LogParser的下载地址 下载,安装完成后执行LogPaser,会打开一个类似于命令行的窗口。我们先来执行一个最简单的查询 在LogParser的输入窗口输入 LogParser "Select top 10 cs-uri-stem , count(cs-uri-stem) as hits from 'D:\147\W3SVC1\ex090531.log' Where TO_LOWERCASE(EXTRACT_EXTENSION(cs-uri-stem)) ='aspx' group by cs-uri-stem Order by hits DESC" 我来解释一下这句话的意思:LogParser的查询语法是一种类型于Sql的语法,和SQL语法很接近,但是不完全一样. Select Top 10 这个不用解释了,和SQL语法一样,取出前十个符合条件的记录. cs-uri-stem 是日志中的一列,表示用户请求的URI部分(不包括查询字符串) Count 和SQL中的意义相同 AS 和SQL中一样,也是取别名 From 后面可以跟一个完整文件名,也可以跟一个 D:\147\W3SVC1\*.log 这样的文件名,甚至还可以一些特定的词 如后跟” System” 表示查询系统日志 Where 同SQL TO_LOWERCASE 是LogParser提供的函数,用于将字符串转为小写 EXTRACT_EXTENSION 也是LogParser中提供的函数,用于从字符串中提取扩展名(是不是很贴心?) 后面的Group by 和Ordery By 以及 DESC都和SQL一样了 由于Time-Taken项目在IIS日志里是默认不记录的,你需要在查询之前在IIS里设置记录Time-Taken LogParser "Select top 10 cs-uri-stem , max(time-taken) as t from 'D:\147\W3SVC1\ex090531.log' Where TO_LOWERCASE(EXTRACT_EXTENSION(cs-uri-stem)) ='aspx' group by cs-uri-stem Order by t DESC" LogParser “Select cs-uri-stem ,count(cs-uri-stem) as hits from 'D:\147\W3SVC1\ex090531.log' where sc-status='404' group by cs-uri-stem Order by hits DESC"LogParser简介
LogParser的使用
查找访问量最大的前10个页面
查找网站内运行最慢的10个页面
查找所有返回404的请求
服务器托管了?ADSL租用了?想知道实际网速,实际带宽是多少吗?
在空闲时间使用下面两个网址进行测试几次,聚其平均值,可以较客观地把握真实的数据。
http://www.linkwan.com/gb/broadmeter/speedauto/ (推荐)
http://tool.114la.com/live/speed/
选择在网络空闲时进行测试有助于提高准备度,避免被其它应用占用了带宽。
IIS7的URL重写模块 URL Rewrite Module 2.0 功能非常强劲,我想随着时间的推移,windows 下重写模块的著名提供商 Hellicon 公司应该会受到致命的打击。因为windows 提供的这个免费的 URL 重写模块,基本上已经可以取代 Hellicon 公司的产品。
安装:通过windows platform installer 智能安装,非常便捷。下载:http://www.iis.net/extensions/urlrewrite
安装后可以直接通过IIS7撰写规则,会自动保存到目录下的web.config配置文件。不管你的站点是.net写的还是php写的,都能使用!因为这个模块是属于IIS的,而不是属于.net的。
亮点:规则导入功能。
从hellicon isapi rewriter 3 转过来的站点,只需通过导入功能把规则导入,就会自动生成适用于URL Rewriter Module 2.0 的规则,并写入配置文件。这也非常直观地为刚使用的人提供了鲜活的示范例子。不过要注意,在规则前面加上根标记——斜杠“/”可能会产生让你摸不着头脑的效果。
最后推荐一下几个文档:
微软提供的URL Rewriter Module 2.0 官言参考文档 http://learn.iis.net/page.aspx/665/url-rewrite-module-20-configuration-reference/
快速上手:http://learn.iis.net/page.aspx/664/using-url-rewrite-module-20/
更多IIS7插件:http://www.iis.net/download
WebService 进行URL重写有两种情形:
1、重写后,重写前的路径不能访问。
2、重写后,重写前的路径依然能够访问。
第1种情形会造成可以查看asmx文件,但不能引用WebService的错误,错误提示是这样的:
文档未被识别为已知的文档类型
来自“XML 架构”的报告是“无法识别此文档格式(内容类型为“text/html; charset=utf-8”)。”。
“无法识别此文档格式(内容类型为“text/html; charset=utf-8”)。
通过查看该WebService的WSDL发现,文档未尾附带的地址,是重写前的地址。这就是问题所在。WebService会把真实地址“暴露”给调用者,然而,这个址实地址,重写后已经不可访问,返回404错误(被重写到别的路径去了),所以VS在引用检测时,才有上面提示。
解决办法:把错误的地址再重写回来,让原来的真实地址可以访问。
顺便说一下,在做URL重写时,我认为第1种情况是比较符合逻辑,因为如果重写前后的URL不小心让搜索引擎都收录了,会造成“元字符”重复的错误。即同一个页面应只有唯一一个URL,不应该有多个可访问的URL。