apache服务器如何配置多站点
Windows下m的WWW服务器以3其架设方1便、操作简单赢得了c很多人o的青睐,下w面笔者将以3Windows
Server
2005为3例来介6绍如何配置一r个vWeb服务器,望能对刚入z门r的网管员有所帮助。
一l、架设Web服务器
默认2安装的Windows
Server
2008没有配置IIS服务,需要我们手5工h安装。进入p控制面板,执行“添加或删除程序→添加。删除
Windows
组件”进入jWindows组件向导窗口b,勾2选“应用程序服务器→Internet
信息服务”,“确定”后返回Windows组件向导窗口o点击“下a一t步”即可添加好IIS服务。在控制面板的管理工f具中7执行“Internet
信息服务(IIS)管理器”进入aIIS管理器主界面(如图),在图上n可以3看出Windows
Server
2005下p的IIS默认5支v持静态网站,若要执行动态页面还需设置Web服务扩展属性,比1如要执行ASP网站则要在“Web服务扩展”列表中3选中2“Active
Server
Pages”然后单击“允3许”按钮来启用该功能。接下b来就可以0具体配置Web站点了r。
图0
6.
网站基本配置。在“默认3网站”的右键菜单中4选择“属性”进入b“默认5网站属性”窗口w,在“网站”选项卡上y的“描述”里可以6为7网站取一g个z标示0名称,如果本机分0配了v多个i
IP
地址,则要在IP
地址框中8选择一p个y赋予3此Web站点的IP地址;然后进入b“主目录”选项卡中8指定网站Web内4容的来源并在“文0档”中4设置好IIS默认3启动的文2档。单击“应用”按钮后就可以3使用来验证网站了w。
2.
网站性能配置。进入d“性能”选项卡,在这里可以7对网站访问的带宽和连接数进行限定,以8更好地控制站点的通信量,如果是多站点服务器,通过对一e个y站点的带宽和连接数限制可以7放宽对其他站点访问量的限制和为0其他站点释放更多的系统资源。(提示6:在实际的限定操作中8我们要根据网络通信量和使用变化3情况进行调整。)
6.
网站的安全性配置。为5了b保证Web网站和服务器的运行安全,可以5在“目录安全性”选项卡上v为5网站进行“身份验证和访问控制”、“IP地址和域名限制”的设置,不j过如果没有别的要求一f般采用默认7设置就可以6了m。
二e、IIS的备份和移植
为8了m防止5系统损坏对IIS配置的影响,我们可以5采用选择本地计6算机右键菜单中1的“所有任务→备份。还原配置”来备份IIS,但这种操作如果遇到重装Web服务器或将一e台Web服务器移植到另一q台Web服务器时就无u能为3α耍
我们可以6使用IIS备份精灵来实现IIS的备份和移植了g。
启动软件,在IIS备份精灵的站点列表上z就会列出IIS服务器上g配置的各种站点了k,勾4选你要备份的站点然后单击“导出站点”按钮,在弹出的“导出IIS站点”窗口i上p选择好文3件保存路径,“确定”后,站点配置信息就会以6一z个hTXT文0本文0件保存下s来了y。
在重装IIS服务器需要导入q站点信息时,运行IIS备份精灵,单击“导入i站点”按钮在弹出的“IIS导入d站点”窗口p上f选择要导入t的事先备份好的IIS站点信息文2件,“确定”后即可导入x。若需要移植IIS站点信息应先把备份的站点信息文1件复制到目的机器上a,然后在这个q机器上c再下o载安装IIS备份精灵,执行“导入t站点”操作就可以6了a。
wvl┢o⊕qg护铅郡zl┢s╂ㄡx穿
与80端口需要备案无关。
问题出在路由上。比如:访问路由地址http://19216811
1、要在路由上设置“虚拟主机”:添加要“架设服务器”的计算机固定ip,如:19216812,将路由“虚拟主机”指向19216812。这样,在内网就可以访问这台“服务器”了。
2、在路由上设置“DMZ主机”:将DMZ主机IP地址设为:19216812。这样这台“服务器”就能通过路由上显示的公网ip访问了。
3、在路由“运行状态”WAN口状态查看IP地址:如公网IP地址为:1831422982。公网上的任何一台电脑就能通过http://1831422982访问这台“服务器”了。
另:这台“服务器”的网关为路由地址:19216811,子网掩码为:2552552550,dns服务器为:路由“运行状态”WAN口状态下DNS服务器。
一、配置文件
Apache是一个后台运行的程序,没有界面。所有的配置,都包含在配置文件里。主配置文件是:
C:/Program Files/Apache Group/Apache/conf/httpdconf
如果要修改Apache的配置,可以用任何一个文本编辑工具(例如记事本)编辑这个配置文件。在配置文件里,以“#”开头的行是注释行。
二、配置选项
在配置文件里的主要选项如下:
#Listen 3000
#Listen
12345678:80
Apache的IP地址和端口。一般来说不需要设置,Apache会绑定在本机所有IP地址的80端口上。
Port 80
Apache的端口。默认值是80。
ServerName testdnscheknet
Web服务器的名字。安装时输入的“Server Name”就是保存在这里。
DocumentRoot "C:/Program
Files/Apache Group/Apache/htdocs"
这是网站的根目录。如果您想把网站文件存放在“D:/myweb”目录下,可以把DocumentRoot后面的目录修改为“D:/myweb”。
Options Indexes FollowSymLinks MultiViews
为了安全起见,请把上面的“Indexes”删掉。否则别人可以浏览到您网站里的所有文件。
DirectoryIndex
indexhtml
默认首页文件名。在浏览器里输入一个地址(例如http://testdnscheknet/)的时候,Apache会查找这个默认的首页文件打开。如果要配置多个默认首页文件名,请用空格分开。
ScriptAlias /cgi-bin/ "C:/Program Files/Apache Group/Apache/cgi-bin/"
CGI文件存放路径。
1、如何设置请求等待时间
在httpdconf里面设置: TimeOut n 其中n为整数,单位是秒。 设置这个TimeOut适用于三种情况:
2、如何接收一个get请求的总时间
接收一个post和put请求的TCP包之间的时间 TCP包传输中的响应(ack)时间间隔
3、如何使得apache监听在特定的端口
修改httpdconf里面关于Listen的选项,例如: Listen 8000 是使apache监听在8000端口
而如果要同时指定监听端口和监听地址,可以使用: Listen 19217021:80 Listen 19217025:8000
这样就使得apache同时监听在19217021的80端口和19217025的8000端口。
当然也可以在httpdconf里面设置: Port 80 这样来实现类似的效果。
4、如何设置apache的最大空闲进程数
修改httpdconf,在里面设置: MaxSpareServers n
其中n是一个整数。这样当空闲进程超过n的时候,apache主进程会杀掉多余的空闲进程而保持空闲进程在n,节省了系统资源。如果在一个apache非
常繁忙的站点调节这个参数才是必要的,但是在任何时候把这个参数调到很大都不是一个好主意。 同时也可以设置: MinSpareServers n
来限制最少空闲进程数目来加快反应速度。
5、apache如何设置启动时的子服务进程个数
在httpdconf里面设置: StartServers 5 这样启动apache后就有5个空闲子进程等待接受请求。 也可以参考MinSpareServers和MaxSpareServers设置。 6、如何在apache中设置每个连接的最大请求数
在httpdconf里面设置: MaxKeepAliveRequests 100
这样就能保证在一个连接中,如果同时请求数达到100就不再响应这个连接的新请求,保证了系统资源不会被某个连接大量占用。但是在实际配置中要求尽量把这
个数值调高来获得较高的系统性能。
7、如何在apache中设置session的持续时间
在apache12以上的版本中,可以在httpdconf里面设置: KeepAlive on KeepAliveTimeout 15
这样就能限制每个session的保持时间是15秒。session的使用可以使得很多请求都可以通过同一个tcp连接来发送,节约了网络资源和系统资
源。
8、如何使得apache对客户端进行域名验证
可以在httpdconf里面设置: HostnameLookups on|off|double
如果是使用on,那么只有进行一次反查,如果用double,那么进行反查之后还要进行一次正向解析,只有两次的结果互相符合才行,而off就是不进行域
名验证。 如果为了安全,建议使用double;为了加快访问速度,建议使用off。
9、如何使得apache只监听在特定的ip
修改httpdconf,在里面使用 BindAddress 19216801
这样就能使得apache只监听外界对19216801的http请求。如果使用: BindAddress
就表明apache监听所有网络接口上的http请求。 当然用防火墙也可以实现。
10、apache中如何限制http请求的消息主体的大小
在httpdconf里面设置: LimitRequestBody n n是整数,单位是byte。
cgi脚本一般把表单里面内容作为消息的主体提交给服务器处理,所以现在消息主体的大小在使用cgi的时候很有用。比如使用cgi来上传文件,如果有设
置: LimitRequestBody 102400 那么上传文件超过100k的时候就会报错。 11、如何修改apache的文档根目录
修改httpdconf里面的DocumentRoot选项到指定的目录,比如: DocumentRoot /www/htdocs 这样http://localhost/indexhtml就是对应/www/htdocs/indexhtml
12、如何修改apache的最大连接数
在httpdconf中设置: MaxClients n n是整数,表示最大连接数,取值范围在1和256之间,如果要让apache支持更多的连接数,那么需要修改源码中的httpdh文件,把定义的HARD_SERVER_LIMIT值改大然后再编译。
13、如何使每个用户有独立的cgi-bin目录
有两种可选择的方法: (1)在Apache配置文件里面关于public_html的设置后面加入下面的属性:
ScriptAliasMatch ^/~([^/])/cgi-bin/() /home//cgi-bin/
(2)在Apache配置文件里面关于public_html的设置里面加入下面的属性: <Directory
/home//public_html/cgi-bin> Options ExecCGI SetHandler cgi-script
</Directory>
14、如何调整Apache的最大进程数
Apache允许为请求开的最大进程数是256,MaxClients的限制是256如果用户多了,用户就只能看到Waiting for
reply然后等到下一个可用进程的出现。这个最大数,是Apache的程序决定的--它的NT版可以有1024,但Unix版只有256,你可
以在src/include/httpdh中看到: #ifndef HARD_SERVER_LIMIT #ifdef WIN32
#define HARD_SERVER_LIMIT 1024 #else #define HARD_SERVER_LIMIT 256
#endif #endif 你可以把它调到1024,然后再编译你的系统。
15、如何屏蔽来自某个Internet地址的用户访问Apache服务器
可以使用deny和allow来限制访问,比如要禁止202202202xx网络的用户访问: <Directory
/www/htdocs> order deny,allow deny from 2022022020/24
</Directory>
16、如何在日志里面记录apache浏览器和引用信息
你需要把mod_log_config编译到你的Apache服务器中,然后使用下面类似的配置: CustomLog logs/access_log "%h %l %u %t "%r" %s %b "%i" "%i""
17、如何修改Apache返回的头部信息
问题分析:当客户端连接到Apache服务器的时候,Apache一般会返回服务器版本、非缺省模块等信息,例如: Server:
Apache/1326 (Unix) mod_perl/126 解决:
你可以在Apache的配置文件里面作如下设置让它返回的关于服务器的信息减少到最少: ServerTokens Prod 注意:
这样设置以后Apache还会返回一定的服务器信息,比如: Server: Apache
但是这个不会对服务器安全产生太多的影响,因为很多扫描软件是扫描的时候是不顾你服务器返回的头部信息的。你如果想把服务器返回的相关信息变成:
Server: It iS a nOnE-aPaCHe Server 那么你就要去修改源码了。
说明: 控制哪些主机能够访问服务器的一个区域
语法: Allow from all|host|env=env-variable [host|env=env-variable]
上下文: 目录, htaccess
覆盖项: Limit
状态: Base
模块: mod_access
Allow指令影响哪些主机可以访问服务器的一个区域。可以用主机名、IP地址、 IP地址范围或者其他环境变量中捕获的客户端请求特性来对访问进行控制。
这个指令的第一个参数总是from。随后的参数可以有三种不同形式。 如果指定Allow from all,则允许所有主机访问,需要 Deny和Order指令像下面讨论的那样配置。 要只允许特定一部分主机或主机群访问服务器,host可以用下面任何一种格式来指定:
一个域名(部分)
例子:Allow from apacheorg
允许名字与给定字符串匹配或者以该字符串结尾的主机访问。 只有完整的名字组成部分才被匹配,因此上述例子将匹配fooapacheorg而不能匹配fooapacheorg。 这样的配置将引起服务器执行一个对客户IP地址的反查域名操作而不管HostnameLookups指令是否设置
完整的IP地址
例子:Allow from 10123
允许一个主机的一个IP地址访问。
部分IP地址
例子:Allow from 101
IP地址的开始1到3个字节,用于子网限制。
网络/掩码对
例子:Allow from 10100/25525500
一个网络abcd,和一个掩码wxyz。用于更精确的子网限制。
网络/nnn 无内别域间路由规格
例子:Allow from 10100/16
同前一种情况相似,除了掩码由nnn个高位字节构成。
注意以上后三个例子完全匹配同一组主机。
IPv6地址和IPv6子网可以像下面这样指定:
Allow from fe80::a00:20ff:fea7:ccea
Allow from fe80::a00:20ff:fea7:ccea/10
Allow指令的第三种参数格式允许对服务器的访问由 环境变量的一个扩展指定。指定 Allow from env=env-variable时,如果环境变量env-variable存在则访问请求被允许。 使用由mod_setenvif提供的指令,服务器用一种基于客户端请求的弹性方式提供了设置环境变量的能力。 因此,这条指令可以用于允许基于像User-Agent(浏览器类型)、Referer或者其他Http请求头字段 的访问。
例子:
SetEnvIf User-Agent ^KnockKnock/20 let_me_in
<Directory /docroot>
order Deny,Allow
Deny from all
Allow from env=let_me_in
</Directory>
这种情况下,发送以KnockKnock/20开头的用户代理标示的浏览器将被允许访问,而所有其他浏览器将被禁止访问。
Deny 指令
说明: 控制哪些主机被禁止访问服务器
语法: Deny from all|host|env=env-variable [host|env=env-variable]
上下文: 目录, htaccess
覆盖项: Limit
状态: Base
模块: mod_access
这条指令允许基于主机名、IP地址或者环境变量限制对服务器的访问。 Deny指令的参数设置和Allow指令完全相同。
order 指令
说明: 控制缺省的访问状态和Allow与Deny指令被评估的顺序。
语法: order ordering
默认值: order Deny,Allow
上下文: 目录, htaccess
覆盖项: Limit
状态: Base
模块: mod_access
order指令控制缺省的访问状态和 Allow与Deny指令被评估的顺序。 ordering是以下几种范例之一:
Deny,Allow
Deny指令在 Allow指令之前被评估。缺省允许所有访问。 任何不匹配Deny指令或者匹配 Allow指令的客户都被允许访问服务器。
Allow,Deny
Allow指令在 Deny指令之前被评估。缺省禁止所有访问。 任何不匹配Allow指令或者匹配 Deny指令的客户都将被禁止访问服务器。
Mutual-failure
只有出现在Allow列表并且不出现在 Deny列表中的主机才被允许访问。 这种顺序与Order Allow,Deny具有同样效果,不赞成使用,它包括了哪一种配置。
关键字只能用逗号分隔;它们之间不能有空格。注意在所有情况下每个Allow和Deny指令语句都将被评估。
在下面的例子中,apacheorg域中所有主机都允许访问,而其他任何主机访问都被拒绝。
order Deny,Allow
Deny from all
Allow from apacheorg
下面例子中,apacheorg域中所有主机,除了fooapacheorg子域包含的主机被拒绝访问以外,都允许访问。 而所有不在apacheorg域中的主机都不允许访问,因为缺省状态是拒绝对服务器的访问。
order Allow,Deny
Allow from apacheorg
Deny from fooapacheorg
另一方面,如果上个例子中的Order指令改变为Deny,Allow, 将允许所有主机的访问。这是因为,不管配置文件中指令的实际顺序如何, Allow from apacheorg指令会最后被评估到并覆盖之前的 Deny from fooapacheorg。所有不在apacheorg 域中的主机也允许访问是因为缺省状态被改变到了允许。
即使没有伴随Allow和Deny指令,一个Order 指令的存在也会影响到服务器上某一个部分的访问, 这是由于他对缺省访问状态的影响。例如,
<Directory /www>
order Allow,Deny
</Directory>
这样将会禁止所有对/www目录的访问,因为缺省状态将被设置为拒绝
order指令只在服务器配置的每个段内部控制访问指令的处理。 这暗示着,例如,一个在<Location>段出现的 Allow或者Deny指令总是将会在一个<Directory>段或者 htaccess文件中出现的 Allow或Deny 指令之后被评估,而不管Order指令中的设置为何。要了解配置段落合并的详细信息, 参看How Directory, Location and Files sections work相关文档。
0条评论