资源描述
实验7:利用IIS6.0配置企业Web服务器
实验名称: 利用IIS6.0配置企业Web服务器 成绩:
实验日期: 年 月 日 实验报告日期: 年 月 日
一、实验目的
1.掌握IIS6.0的安装方法。
2.掌握利用IIS6.0配置企业Web服务器。
二、实验环境
1、一台没有任何服务器角色的Windows server 2003服务器
2、一台装有IE5.0以上版本浏览器的Windows XP客户端
3、两台机器通过交叉线组成对等网
三、实验内容
1、安装IIS6.0
2、利用IIS6.0配置企业Web服务器
3、用浏览器访问Web服务器的站点
四、实验步骤、过程
1、打开“控制面板”窗口,双击【添加/删除程序】图标,打开“添加或删除程序”窗口。单击“添加/删除Windows组件”按钮,打开“Windows组件安装向导”对话框。
2、在“Windows组件”对话框中双击【应用程序服务器】选项,打开【应用程序服务器】对话框。在【应用程序服务器 的子组件】列表中双击【Internet 信息服务(IIS)】复选框。
3、打开“Internet 信息服务(IIS)”对话框,在“Internet 信息服务(IIS) 的子组件”列表中选中【万维网服务】和【Internet信息服务管理器】复选框。依次单击【确定】→【确定】按钮。
4、系统开始安装IIS 6.0和Web服务组件。在安装过程中需要提供Windows Server 2003系统安装光盘或指定安装文件路径。安装完成后单击【完成】按钮即可。成功安装Web服务组件以后,我们就可以搭建一个的Web站点了。
5、在开始菜单中依次单击【管理工具】→【Internet信息服务(IIS)管理器】菜单项,打开“Internet信息服务(IIS)管理器”窗口。在左窗格中展开【网站】目录,右键单击【默认网站】选项,在弹出的快捷菜单中选择【属性】命令。
6、打开“默认网站 属性”对话框,在【网站】选项卡中的“网站标识”选项区域里可以在“描述”文本框更改Web站点的名称,单击【IP地址】右侧的下拉三角按钮,并选中该站点要绑定的IP地址(本机的IP地址)。在“TCP端口”文本框输入WWW默认的80端口。
7、切换到【主目录】选项卡,单击【本地路径】编辑框右侧的【浏览】按钮,选择网站程序所在的主目录并单击【确定】按钮。
8、单击【文档】选项卡,选中【启用默认内容文档】复选框。然后在文档列表中查找是否有网站首页文件的名称(静态网站首页文件名称一般为index.htm)。如果没有,则单击【添加】按钮,在打开的“添加内容页”对话框中输入网站首页文件名(如index.html),并单击【确定】按钮。
9、返回“默认网站 属性”对话框,并单击【确定】按钮。至此静态网站基本搭建完毕,用户只要将开发的网站源程序复制到所设置的网站主目录中,即可使用指定的IP地址访问该网站。
以下内容可选做:
动态网站环境搭建
1、在“Internet信息服务(IIS)管理器”窗口中右键单击【网站】目录,依次选择【新建】→【网站】命令。
2、打开“网站创建向导”对话框,在欢迎对话框中单击【下一步】按钮。打开“网站描述”对话框,在【描述】编辑框中输入一段描述网站内容的文字信息,并单击【下一步】按钮。
3、在打开的“IP地址和端口设置”对话框中可以设置新网站的IP地址和端口号。单击【网站IP地址】编辑框右侧的下拉三角按钮,在下拉菜单中选择一个未被其他Web站点占用的IP地址。【网站TCP端口】编辑框中保持默认值80不变,并单击【下一步】按钮。
提示:80端口是指派给HTTP的标准端口,主要用于Web站点的发布。如果所创建的Web站点是一个公共站点,那么只需采用默认的80端口即可。这样用户在浏览器中输入网址或IP地址时,客户端浏览器会自动尝试在80端口上连接Web站点。如果该Web站点有特殊用途,需要增强其安全性,那么可以设置特定的端口号。
4、打开“网站主目录”对话框,单击【浏览】按钮选择动态网站所在的主目录。依次单击【确定】→【下一步】按钮。
提示:如果该Web站点是公开发布的网站,则可以保持“允许匿名访问网站”复选框的选中状态,这样可以使任何用户都能连接到该Web站点。如果希望该站点是一个需要验证用户访问权限的特殊网站,则需要取消该复选框禁止用户匿名访问。
5、在打开的“网站访问权限”对话框中,保持默认权限设置,单击【下一步】按钮。打开完成网站创建向导对话框,单击【完成】按钮。
提示:用户可以根据实际需要设置网站的访问权限,每种权限所允许进行的操作如下所述:
【读取】允许用户从该Web站点读取文件;
【运行脚本(如ASP)】允许在Web站点中运行活动服务器页面(Active Server Pages,ASP)脚本;
【执行(如ISAPI应用程序或CGI)】允许在网站上执行ISAPI或者CGI应用程序,且启用该权限后将自动启用“运行脚本”的权限;
【写入】允许用户通过客户端浏览器向Web站点中写入数据(如填写注册表格等);
【浏览】当用户没有向Web站点发出针对某个具体文件的请求,并且Web站点中也没有定义默认的文档时,则IIS会返回该站点根目录下各文件和子目录的HTML表示形式。
6、基于安全方面的考虑,IISS 6.0默认禁用了ASP程序支持属性,需要用户手动开启此功能。在“Internet信息服务(IIS)管理器”窗口中依次展开服务器→【Web服务器扩展】目录,然后在右窗格中选中Active Server Pages选项,并单击【允许】按钮。
7、在“Internet信息服务(IIS)管理器”窗口中右键单击ASP动态网站名称(如),选择【属性】命令。在打开的“的属性”对话框中切换到【文档】选项卡,单击【添加】按钮。打开“添加内容页”对话框,在【默认内容页】编辑框中输入ASP网站默认的首页文件名称(一般为index.asp)。依次单击【确定】→【确定】按钮。
至此,ASP动态网站的服务器端设置成功完成。用户需要将开发的ASP网站源程序复制到网站主目录中,从而实现ASP动态网站的发布
Web网站中的所有内容一般都存储在主目录中,但随着网站内容的不断丰富,用户需要把不同层次的内容组织成网站主目录下的子目录。有两种方式可以实现这一目标,一种方式是在网站主目录中新建一个子目录,并把相关内容复制到这个目录中。另一种方式就是创建虚拟目录,虚拟目录既可以是本地磁盘中的任何一个目录,也可以是网络中其他计算机中的目录。相对而言,创建子目录的方式更安全高效。
虚拟目录需要在主目录的基础上进行创建,创建步骤如下所述:
1、在开始菜单中依次单击【管理工具】→【Internet信息服务(IIS)管理器】菜单项,打开“Internet 信息服务(IIS)管理器”窗口。在左窗格中依次展开服务器→【网站】目录,右键单击Web站点名称(如),在弹出的快捷菜单中依次选择【新建】→【虚拟目录】命令。
2、在打开的“虚拟目录创建向导”中单击【下一步】按钮,打开“虚拟目录别名”对话框。然后在【别名】编辑框中输入一个能够反映该虚拟目录用途的名称(如JinshouzhiBook),并单击【下一步】按钮。
3、打开“网站内容目录”对话框,在此处需要指定虚拟目录所在的路径。单击【浏览】按钮,在本地磁盘或网上邻居中选择目标目录,虚拟目录与网站的主目录可以不在一个分区或物理磁盘中。依次单击【确定】→【下一步】按钮。
4、在打开的“虚拟目录访问权限”对话框中,可以设置该虚拟目录准备赋予用户的访问权限。用户可以根据实际需要设置合适的权限,并单击【下一步】按钮。
5、打开完成创建虚拟目录对话框,单击【完成】按钮关闭虚拟目录创建向导。
通过上述设置,用户可以通过
要想在同一台物理服务器中创建多个Web站点,很多用户会选择在服务器中添加多个IP地址,然后将每个Web站点分别指向不同IP地址的方式。这种方式固然可行,不过随着IP地址(主要是指Internet中的IP地址)资源越来越紧缺,该方式的弊端也越来明显。其实在IIS 5.0和IIS6.0中,用户完全可以为每个Web站点添加HTTP主机头,从而使用一个IP地址和端口号创建多个Web站点。这种方式通常被称为搭建“虚拟主机”。在IIS 6.0中搭建虚拟主机的步骤如下所述:
1、在“Internet信息服务(IIS)管理器”窗口中右键单击【网站】目录,依次选择【新建】→【网站】命令。打开“网站创建向导”对话框,在欢迎对话框中单击【下一步】按钮。
2、打开“网站描述”对话框中,在【描述】编辑框中输入一段描述网站内容的文字信息,并单击【下一步】按钮。
3、在打开的“IP地址和端口设置”对话框中,单击【网站IP地址】编辑框右侧的下拉三角按钮,在下拉菜单中选择一个未被其他Web站点使用的IP地址。“网站TCP端口”保持默认值80不变,在【此网站的主机头】编辑框中输入该网站的域名(如),并单击【下一步】按钮。提示:如果不选择未被使用的IP地址,并且已被使用的IP地址所绑定的Web站点没有被删除,则后来创建的Web站点将因为端口冲突而被全部停止。
4、打开“网站主目录”对话框,单击【浏览】按钮选择网站所在的主目录,并依次单击【确定】→【下一步】按钮。
5、在打开的“网站访问权限”对话中,保持默认权限设置,单击【下一步】按钮。打开完成网站创建向导对话框,单击【完成】按钮。
6、重复上述步骤创建多个含有主机头的虚拟主机,从而实现虚拟主机系统的搭建。当用户使用域名访问Web站点时,尽管这些Web站点使用的是同一个IP地址和端口号,却能准确打开网站域名所对应的站点。
提示:要想使网络用户使用HTTP主机头(即域名)访问特定的网站,必须在DNS服务器中为每个网站创建主机A记录。
附录资料:
Ehcache缓存配置
简介
Cache的配置很灵活,官方提供的Cache配置方式有好几种。你可以通过声明配置、在xml中配置、在程序里配置或者调用构造方法时传入不同的参数。
你可以将Cache的配置从代码中剥离出来,也可以在使用运行时配置,所谓的运行时配置无非也就是在代码中配置。以下是运行时配置的好处:
· 在同一个地方配置所有的Cache,这样很容易管理Cache的内存和磁盘消耗。
· 发布时可更改Cache配置。
· 可再安装阶段就检查出配置错误信息,而避免了运行时错误。
本文将会对ehcache.xml配置文件进行详细的阐述。在配置的时可以拷贝一个现有的ehcache.xml,如果没有请点击这里去下载。
ehcache-failsafe.xml
如果你调用了CacheManager默认构造方法去创建CacheManager的实例,此方法会到classpath中找ehcache.xml文件,否则它会到类路径下找ehcache-failsafe.xml文件。而ehcache-failsafe.xml被包含在jar包中,所有它肯定能找的到。
ehcache-failsafe.xml提供了一个非常简单的默认配置,这样可以使用户在没有创建ehcache.xml的情况下使用Ehcache。
不过这样做Ehcache会提醒用户创建一个正确的Ehcache配置。
ehcache.xml片段:
<ehcache>
<diskStore path="java.io.tmpdir"/>
<defaultCache
maxElementsInMemory="10000"
eternal="false"
timeToIdleSeconds="120"
timeToLiveSeconds="120"
overflowToDisk="true"
maxElementsOnDisk="10000000"
diskPersistent="false"
diskExpiryThreadIntervalSeconds="120"
memoryStoreEvictionPolicy="LRU"
/>
</ehcache>
ehcache.xml和其他配置文件
在Ehcache-1.6之前的版本,只支持ASCII编码的ehcache.xml配置文件。在Ehcach-1.6之后版本中,支持UTF8编码的ehcache.xml配置文件。因为向后兼容,所有采用ASCII编码的配置文件完全没有必要转换为UTF8。
一个CacheManager必须要有一个XML配置。由于磁盘路径或是监听端口,多个CacheManager使用同一个配置文件时会出现错误。
下面是ehcache.xml具体实例以及配置指南
<ehcache xmlns:xsi=http://www.w3.org/2001/XMLSchema-instance
· CacheManager配置
DmulticastGroupPort=4446,这样可以配置监听端口。
· DiskStore配置
如果你使用的DiskStore(磁盘缓存),你必须要配置DiskStore配置项。如果不配置,Ehcache将会使用java.io.tmpdir。
diskStroe的“path”属性是用来配置磁盘缓存使用的物理路径的,Ehcache磁盘缓存使用的文件后缀名是.data和.index。
<disStore path=”java.io.tmpdir”/>
· CacheManagerEventListener配置
我们通过CacheManagerEventListenerFactory可以实例化一个CacheManagerPeerProvider,当我们从CacheManager中added和removed Cache时,将通知CacheManagerPeerProvider,这样一来,我们就可以很方面的对CacheManager中的Cache做一些统计。
注册到CacheManager的事件监听类名有: adding a Cache和removing a Cache
<cacheManagerEventListenerFacotory class=”” properties=””/>
· CacheManagerPeerProvider配置
在集群中CacheManager配置CacheManagerPeerProviderFactory创建CacheManagerPeerProvider。具体的实例如下:
<cacheManagerPeerProviderFactoryclass="net.sf.ehcache.distribution.
RMICacheManagerPeerProviderFactory"
properties="peerDiscovery=manual, rmiUrls=//server1:40000/sampleCache1|//server2:40000/sampleCache1| //server1:40000/sampleCache2|//server2:40000/sampleCache2"
propertySeparator="," />
· CacheManagerPeerListener配置
CacheManagerPeerListener配置是用来监听集群中缓存消息的分发的。
<cacheManagerPeerListenerFactory
class="net.sf.ehcache.distribution.RMICacheManagerPeerListenerFactory"
properties="hostName=fully_qualified_hostname_or_ip,
port=40001,
socketTimeoutMillis=120000"
propertySeparator="," />
· Cache配置
· name:Cache的唯一标识
· maxElementsInMemory:内存中最大缓存对象数。
· maxElementsOnDisk:磁盘中最大缓存对象数,若是0表示无穷大。
· eternal:Element是否永久有效,一但设置了,timeout将不起作用。
· overflowToDisk:配置此属性,当内存中Element数量达到maxElementsInMemory时,Ehcache将会Element写到磁盘中。
· timeToIdleSeconds:设置Element在失效前的允许闲置时间。仅当element不是永久有效时使用,可选属性,默认值是0,也就是可闲置时间无穷大。
· timeToLiveSeconds:设置Element在失效前允许存活时间。最大时间介于创建时间和失效时间之间。仅当element不是永久有效时使用,默认是0.,也就是element存活时间无穷大。
· diskPersistent:是否缓存虚拟机重启期数据。(这个虚拟机是指什么虚拟机一直没看明白是什么,有高人还希望能指点一二)。
· diskExpiryThreadIntervalSeconds:磁盘失效线程运行时间间隔,默认是120秒。
· diskSpoolBufferSizeMB:这个参数设置DiskStore(磁盘缓存)的缓存区大小。默认是30MB。每个Cache都应该有自己的一个缓冲区。
· memoryStoreEvictionPolicy:当达到maxElementsInMemory限制时,Ehcache将会根据指定的策略去清理内存。默认策略是LRU(最近最少使用)。你可以设置为FIFO(先进先出)或是LFU(较少使用)。这里比较遗憾,Ehcache并没有提供一个用户定制策略的接口,仅仅支持三种指定策略,感觉做的不够理想。
· Cache Exception Handling配置
<cacheExceptionHandlerFactory class="com.example.ExampleExceptionHandlerFactory" properties="logLevel=FINE"/>
总结
这里只对通用缓存的配置做了详细的阐述,至于RMI缓存和集群缓存可以参考这里。
下面给出几个配置示例:
· Ehcache默认Cache配置
<defaultCache
maxElementsInMemory="10000"
eternal="false"
timeToIdleSeconds="120"
timeToLiveSeconds="120"
overflowToDisk="true"
diskSpoolBufferSizeMB="30"
maxElementsOnDisk="10000000"
diskPersistent="false"
diskExpiryThreadIntervalSeconds="120"
memoryStoreEvictionPolicy="LRU"
/>
· SampleCache1配置
简单配置,在ehcache.xml文件中有此配置,在使用Ehcache前最好将其删除掉,自己配置。
缓存名sampleCache1,内存中最多可缓存10000个Element,其中的element会在闲置5分钟或是存活10分钟之后失效。
超过10000element时,element将会输出到磁盘中,输出路径是java.io.tmpdir。
<cache name="sampleCache1"
maxElementsInMemory="10000"
maxElementsOnDisk="1000"
eternal="false"
overflowToDisk="true"
diskSpoolBufferSizeMB="20"
timeToIdleSeconds="300"
timeToLiveSeconds="600"
memoryStoreEvictionPolicy="LFU"
/>
· SampleCache2配置
Cache名为SampleCache2,内存中最多可以缓存1000个element,超出1000不能输出到磁盘中。缓存是永久有效的。
<cache name="sampleCache2"
maxElementsInMemory="1000"
eternal="true"
overflowToDisk="false"
memoryStoreEvictionPolicy="FIFO"
/>
· SampleCache3配置
Cache名为SampleCache3。可缓存到磁盘。磁盘缓存将会缓存虚拟机重启期的数据。磁盘缓存失效线程运行间隔时间是10分钟。
<cache name="sampleCache3"
maxElementsInMemory="500"
eternal="false"
overflowToDisk="true"
timeToIdleSeconds="300"
timeToLiveSeconds="600"
diskPersistent="true"
diskExpiryThreadIntervalSeconds="1"
memoryStoreEvictionPolicy="LFU"
/>
· sampleDistributedCache1配置
Cache名为sampleDistributedCache1。
<cache name="sampleDistributedCache1"
maxElementsInMemory="10"
eternal="false"
timeToIdleSeconds="100"
timeToLiveSeconds="100"
overflowToDisk="false">
<cacheEventListenerFactory
class="net.sf.ehcache.distribution.RMICacheReplicatorFactory"/>
<bootstrapCacheLoaderFactory
class="net.sf.ehcache.distribution.RMIBootstrapCacheLoaderFactory"/>
</cache>
· sampleDistributedCache2配置
<cache name="sampleDistributedCache2"
maxElementsInMemory="10"
eternal="false"
timeToIdleSeconds="100"
timeToLiveSeconds="100"
overflowToDisk="false">
<cacheEventListenerFactory
class="net.sf.ehcache.distribution.RMICacheReplicatorFactory"
properties="replicateAsynchronously=false, replicatePuts=false,
replicateUpdates=true, replicateUpdatesViaCopy=true,
replicateRemovals=false"/>
</cache>
· sampleDistributedCache3配置
<!--
Sample distributed cache named sampleDistributedCache3.
This cache replicates using defaults except that the asynchronous replication
interval is set to 200ms.
-->
<cache name="sampleDistributedCache3"
maxElementsInMemory="10"
eternal="false"
timeToIdleSeconds="100"
timeToLiveSeconds="100"
overflowToDisk="false">
<cacheEventListenerFactory
class="net.sf.ehcache.distribution.RMICacheReplicatorFactory"
properties="asynchronousReplicationIntervalMillis=200"/>
</cache>
展开阅读全文