六 24
虚拟主机的概念:安装了Apache程序的主机被称为网页服务器,在此服务器上可同时运行多个不同的网站,而每个网站可以被配置为不同的身份,这个身份就被成为虚拟主机。打个比方,如果网页服务器代表某个人的本名,则虚拟主机则是这个人的绰号。
参考:http://www.uplinux.com/download/doc/apache/ApacheManual/vhosts/
1. 不配置虚拟主机,直接以网页服务器的网页文件目录做为网站目录。网页服务器有一个IP地址,并且通过此IP地址访问,这也是最简单的配置。
在Apache的配置文件,httpd.conf中设置
ServerName 127.0.0.1
DocumentRoot “d:/phproot”
这样就可以通过http://127.0.0.1访问phproot下的文件。
通过ServerAlias参数配置对特定的虚拟主机设定多个名称。
Read the rest of this entry »
Related posts
十二 27
之前介绍安装awstats的环境是Windows+IIS,日前在一台Windows+Apache的机子上安装awstats却出现了一些小问题。在进行完一些基础的配置之后,才发现浏览awstats.pl的时候,出来的它的源码而不是日志统计的结果。归结原因,在于Apache并不是直接就支持perl脚本的,还需要对其httpd.conf文件进行下配置。
- 首先还是要安装ActivePerl。 按照默认配置安装在c:\perl目录下。
- 配置perl脚本的运行目录。一般情况下在http.conf中有这样一句:
#ScriptAlias /cgi-bin/ “C:/Apache/cgi-bin/”
去掉#,表示cgi-bin目录为perl脚本的目录。这意味着你需要把perl脚本放到这里才能运行。
如果你希望在任何目录下的脚本文件都可以运行,就要按照下面的配置。
- 找到这行:Options Indexes FollowSymLinks
修改为 Options Indexes FollowSymLinks ExecCGI
- 找到这行:#AddHandler cgi-script .cgi
修改为 AddHandler cgi-script .cgi .pl
- 修改perl脚本文件中的perl path。将perl脚本的首行修改为 #!c:\Perl\bin\perl。否则会出现浏览器500错误。
这样就OK了。再说一下用awstats分析Apache的日志。由于Apache日志文件不是按天分割的,需要首先用cronolog对Apache的日志文件格式进行改造,然后再用于awstats分析。
Related posts
十二 19
最近发现服务器的流量猛增,打开网页速度很慢,查看了一下Apache的log,发现:
166.111.208.185 – - [18/Dec/2007:22:27:55 +0800] “GET /music/tea.mp3 HTTP/1.1″ 206 2120152
166.111.208.185 – - [18/Dec/2007:22:27:56 +0800] “GET /music/tea.mp3 HTTP/1.1″ 206 2025202
166.111.208.185 – - [18/Dec/2007:22:27:56 +0800] “GET /music/tea.mp3 HTTP/1.1″ 206 757441
59.70.246.42 – - [18/Dec/2007:22:27:57 +0800] “GET /music/tea.mp3 HTTP/1.1″ 206 3012532
59.70.246.42 – - [18/Dec/2007:22:27:58 +0800] “GET /music/tea.mp3 HTTP/1.1″ 206 2809812
59.70.246.42 – - [18/Dec/2007:22:28:00 +0800] “GET /music/tea.mp3 HTTP/1.1″ 206 3033136
59.70.246.42 – - [18/Dec/2007:22:28:00 +0800] “GET /music/tea.mp3 HTTP/1.1″ 206 3036570
原来是因为服务器上的mp3文件被盗链了或者被迅雷这类的下载软件当成了种,被别人多线程下载,造成带宽被占,Apache响应不过来。
在网上找了一下,发现利用mod_rewrite模块就可以很好的完成Apache 的防盗链。
1. 在httpd.conf中加载mod_rewrite模块:
- 去掉#LoadModule rewrite_module modules/mod_rewrite.so 中的#号
- <Directory />
Options FollowSymLinks
AllowOverride None
</Directory>,将AllowOverride None改成AllowOverride All
2. 在music目录下新建一个.htaccess文件
RewriteEngine on
RewriteCond %{HTTP_REFERER} !^http://(www\.)?xmulib\.net/.*$ [NC]
RewriteCond %{HTTP_REFERER} !^http://210.34.4.17/.*$ [NC]
RewriteRule \.(mp3|jpg)$ http://www.xmulib.net [R,NC]
#RewriteLog “logs/rewrite.log”
#RewriteLogLevel 3
参数说明:
- RewriteCond :rewrite规则定义,只有满足这里定义的规则,才执行rewrite
- %{HTTP_REFERER} :表示链接的来源参照
- !^http://(www\.)?xmulib\.net/.*$ :表示与%{HTTP_REFERER}进行匹配的字符串
- [NC] :nocase,表示在进行匹配的时候忽略大小写。当有多个RewriteCond时默认其关系为And,如果要改成OR,可用[NC, OR]表示
- RewriteRule :当满足RewriteCond条件时,访问mp3或者jpg文件就会被重定向到http://www.xmulib.net
- RewriteLog : 日志文件,帮助分析rewrite规则是否正确
Related posts
十一 20
Apache有两个log文件access.log 和error.log。error.log中存放诊断信息和处理请求中出现的错误,由于这里经常包含了出错细节以及如何解决,如果服务器启动或运行中有问题,首先就应该查看这个错误日志。access.log 访问日志中会记录服务器所处理的所有请求。
在默认情况下,log记录存在于这两个单独的文件中,当网站访问量较大或者错误信息较多的时候,log文件的大小会急速增长。一般每10000个请求,访问日志就会增加1MB或更多。在这种情况下,如果当日志文件过大,就很难通过日志文件来分析。而且,对于AWStats这样的日志分析软件,它要求日志文件是按日存储的。
Apache httpd可以通过管道将访问记录和出错信息传递给另一个进程,而不是写入一个文件。只要用管道操作符”|“后面跟一个可执行文件名,就可以使这个程序从标准输入设备获得事件记录。Apache在启动时,会同时启动这个管道日志进程,并且在运行过程中,如果这个进程崩溃了,会重新启动这个进程(所以我们称这个技术为”可靠管道日志”)。
Apache推荐使用cronolog程序对log文件进行截断并按日存放。根据web服务器的操作系统,下载win32 version的cronolog程序。
- 复制cronolog.exe to /apache/bin/
- 在httpd.conf中:
用CustomLog “|bin/cronolog.exe logs/global/access%Y%m%d.log” combined
替换 CustomLog logs/access.log
用ErrorLog “|bin/cronolog.exe logs/global/error%Y%m%d.log”
替换 ErrorLog logs/error.log
- 重启Apache
Related posts
十二 22
近日一台服务器上的Web服务不正常,连接速度和打开页面都很慢。经查发现主机CPU和内存占用率都很高,查看发现进程中竟然有很多PHP.exe。这台服务器在配置Web服务时,采用的时IIS+PHP的组合,IIS采用CGI方式调用PHP,这样客户端每浏览一个网页,就会调用一次PHP.exe,在大量访问的情况下,服务器的负担可想而知。
从PHP4.3版本开始,PHP就提供了两种方式供Web Server运行PHP,一种是原来的CGI方式,还有一种就是CLI(command line interface)。
CGI 方式除了上面所说的在每打开一个php页面时都会产生一个PHP.exe进程以外,还包括一些不安全因素,存在某些安全漏洞。
CLI 方式,把PHP视为Web Server 的一个模块进行调用,比CGI方式提供更多选项和更好的性能。
注意:对于php.exe文件,PHP4中的是CGI方式的(在php目录下的cli文件夹下的php.exe是cli方式的),而PHP5中是CLI方式的(另有一个名为php-cgi.exe)。
IIS和Apache都支持模块化调用PHP,具体方法如下:
IIS6中添加一个新的Web扩展服务,扩展名为php,选择文件php4isapi.dll,然后把扩展服务设为允许。然后在网站属性-》主目录-》配置添加一个新的应用程序扩展名映射。
IIS5中配置应用程序-》添加应用程序映射,可执行文件选php4isapi,后缀名为.php,isapi筛选器-》同样是选php4isapi。
Apache中,在httpd.conf文件中加入[code]LoadModule php4_module "c:/php/sapi/php4apache2.dll"
addtype application/x-httpd-php .php
[/code]
Related posts
Recent Comments