Apache是个好东西,多研究一下
引用
在配置文件httpd.conf里查找“CustomLog”一行,整行修改为

CustomLog “|bin/rotatelogs.exe -l E:/logs/access%Y-%m-%d.log 86400″ common

意思是让日志每隔24小时会滚一次,会滚后日志名为“access年-月-日.log”,保存路径为“E:\logs”这样日志就可以按天存入不同的文件中了,另外也可以配合计划任务删除N天之前的日志文件。

同样错误日志也可以使用这样的方法,查找“ErrorLog”一行,整行修改为

ErrorLog “|bin/rotatelogs.exe -l E:/logs/errorlog.%Y-%m-%d-%H_%M_%S.log 86400

同样是每天会滚日志,日志文件名“errorlog.年-月-日-小时_分钟_秒.log”。

由上可以看出%Y表示当前年份,%m表示当前月份以此类推就可以灵活运用保存为需要的文件名。

上面的例子里,日志格式使用的是通用日志模式(common),当然也可以使用组合日志模式(Combined),只需要把上面代码最后的“common”修改成“Combined”。

这种格式与通用日志格式类似,但是多了两个 %{header}i 项,其中的header可以是任何请求头。这种格式的记录形如:

192.168.0.2 - frank [10/Oct/2000:13:55:36 -0700] "GET /apache_pb.gif HTTP/1.0" 200 2326 http://www.huaxiren.cn/index.php "Mozilla/4.08 [en] (Win98; I ;Nav)"

配置完成后保存httpd.conf,重新启动Apache服务器,日志就会从重启Apache的时刻开始每隔一天回滚日志。

值得一提的是在配置了rotatelogs回滚后在windows进程里会多出几个rotatelogs.exe和cmd.exe进程,无须担心,这是rotatelogs在工作。
引用
ProxyPassMatch Directive
Description: Maps remote servers into the local server URL-space using regular expressions
Syntax: ProxyPassMatch [regex] !|url [key=value [key=value ...]]
Context: server config, virtual host, directory
Status: Extension
Module: mod_proxy
Compatibility: available in Apache 2.2.5 and later


比如,把asp的请求放到8080端口的服务器

<VirtualHost *:80>
    ServerAdmin webmaster@aslibra.com
    DocumentRoot "E:/webapps/www.aslibra.com"
    ServerName www.aslibra.com
    ErrorLog "logs/test.localhost-error.log"
    CustomLog "logs/test.localhost-access.log" common

    ProxyRequests Off
    <Proxy *>
  Order deny,allow
  Allow from all
    </Proxy>
    ProxyPassMatch .*\.asp http://127.0.0.1:8080/
    ProxyPassReverse / http://127.0.0.1:8080/
</VirtualHost>


这个会对给proxy带来很大的灵活性,参考官方介绍:
http://httpd.apache.org/docs/current/mod/mod_proxy.html
Tags: ,
这个是属于apache的设置,虽然我已经基本上没有用apache了,可发现此说明,还是记录一下,以后备用,很多知识还是通用的,碰到问题可以参考。

以下是整理过的原文

.htaccess可以做大量范围的事情,包括:文件夹密码保护、用户自动重新指向、自定义错误页面、变更你的文件扩展名、屏蔽特定的用户IP地址、只允许特定的IP地址、停止目录表以及使用其他文件作为index文件,等等......

1. Introduction 介绍

文件名 .htaccess 属性 644 (RW-R–R–)
htaccess会影响它所在目录下的所有子目录
注意大多数内容都要求保持在一行之内,不要换行,否则会引起错误

2. Error Documents 错误文档

Official document: ErrorDocument Directive
ErrorDocument code document
例子
ErrorDocument 400 /errors/badrequest.html
ErrorDocument 404 http://yoursite/errors/notfound.html
ErrorDocument 401 “Authorization Required”
(注意之后内容如果出现的双引号需要转义为 \”)
Tags: ,
点击在新窗口中浏览此图片

几天前阿权和陕兄调整服务器,陕兄和我一样头晕,他居然把一个机器的ssh远程登录服务去掉,然后重启了,结果直接叫机房帮忙开服务了。而我却忘记把apache的mpm模式的注释打开了,但我们找问题找了快一个小时,我还以为是服务器硬盘很有问题,差点去找另外一个服务器做尝试,陕兄也差点希望把原先的环境复制一份过来,后来发现了mpm没打开。

看看apache手册的说明:

引用
Apache HTTP服务器被设计为一个强大的、灵活的能够在多种平台以及不同环境下工作的服务器。不同的平台和不同的环境经常产生不同的需求,或是为了达到同样的最佳效果而采用不同的方法。Apache凭借它的模块化设计很好的适应了大量不同的环境。这一设计使得网站管理员能够在编译时和运行时凭借载入不同的模块来决定服务器的不同附加功能。

Apache2.0将这种模块化的设计延伸到了web服务器的基础功能上。这个版本带有多路处理模块(MPM)的选择以处理网络端口绑定、接受请求并指派子进程来处理这些请求。

将模块化设计延伸到这一层次主要有以下两大好处:

Apache可以更简洁、更有效地支持各种操作系统。尤其是在mpm_winnt中使用本地网络特性代替Apache1.3中使用的POSIX模拟层后,Windows版本的Apache现在具有更好的性能。这个优势借助特定的MPM同样延伸到了其他各种操作系统。
服务器可以为某些特定的站点进行定制。比如,需要更好伸缩性的站点可以选择象worker或event这样线程化的MPM,而需要更好的稳定性和兼容性以适应一些旧的软件的站点可以用prefork 。
从用户角度来看,MPM更像其他的Apache模块。主要的不同在于:不论何时,必须有且仅有一个MPM被载入到服务器中。现有的MPM列表可以在模块索引中找到。


linux下默认安装是 prefork 模式:

引用
这个多路处理模块(MPM)实现了一个非线程型的、预派生的web服务器,它的工作方式类似于Apache 1.3。它适合于没有线程安全库,需要避免线程兼容性问题的系统。它是要求将每个请求相互独立的情况下最好的MPM,这样若一个请求出现问题就不会影响到其他请求。

这个MPM具有很强的自我调节能力,只需要很少的配置指令调整。最重要的是将MaxClients设置为一个足够大的数值以处理潜在的请求高峰,同时又不能太大,以致需要使用的内存超出物理内存的大小。


如果没有打开,默认的连接数量是很小的,所以一般不能满足正常的服务器需求。可以看到第一个图片的变化,连接数一定的情况下,包含了图片的访问,所以带宽占用比后段要多,把图片访问转移,则余下网页,带宽变小,但连接数还没变化,所以持续在一定的带宽占用而无法上涨。后来打开了mpm的设置,设置好StartServers, MinSpareServers, MaxSpareServers, MaxClients就正常了,代码也是从别的地方参考的,自行调节:

<IfModule mpm_prefork_module>
   StartServers          5
   MinSpareServers       5
   MaxSpareServers      10
   ServerLimit        4000
   MaxClients         4000
   MaxRequestsPerChild   0
</IfModule>
Tags:
最近做apache优化,希望跟大家分享一下阿权的心得。

点击在新窗口中浏览此图片

1 apache可以用redirect方式,把图片定义到别的服务器

RedirectMatch /aslibra_pic/(.*)     http://1.2.3.4/www.aslibra.com/pic/$1

#request http://www.aslibra.com/aslibra_pic/abc.jpg
#send to http://1.2.3.4/www.aslibra.com/pic/abc.jpg


如上图第一个红色框所示,流量变化就是图片切换的结果
图片交给另外的服务器处理会更加好,不用redirect更好,直接就引用

2 apache的deflate选项需要打开

############# gzip ############

<Location />
  SetOutputFilter DEFLATE
  BrowserMatch ^Mozilla/4 gzip-only-text/html
  BrowserMatch ^Mozilla/4\.0[678] no-gzip
  BrowserMatch \bMSIE !no-gzip !gzip-only-text/html
  SetEnvIfNoCase Request_URI \.(?:gif|jpe?g|png|swf|exe|ico)$ no-gzip dont-vary
  Header append Vary User-Agent env=!dont-vary
</Location>

## www.aslibra.com ##


以上其实是apache手册的代码,大家可以参考第一个图片的第二个红色框,可以减少大概四分之一的流量,虽然会对服务器cpu有一点提高,但是还是值得的。

3 apache的expire要打开

详情参考 《最近的Apache安装参数

4 apache的防盗链的重要性

点击在新窗口中浏览此图片

如果你不是做相册服务公司,比如flickr或者yupoo之类的,那一般还是得做防盗链,如上图所示,机器都跑到100M带宽,把服务器带宽都用完了,很是可恶,特别是哪些所谓的网盟,一下子就可以带来巨大的访问量,自己可就亏了。

<VirtualHost *:80>
   DocumentRoot /Data/webapps/www.aslibra.com
   ServerName www.aslibra.com
   #可以记录日志查看哪些来源使用了图片,这里可能还记录了网页
   #CustomLog "|/Data/apps/cronolog/sbin/cronolog /Data/logs/%Y/%m/%d/show.%m%d%H" combined env=!local_referal

   SetEnvIf Referer "^http://(.*).aslibra.com/" local_referal
   SetEnvIf Referer "^$" local_referal
   <Directory /Data/webapps/www.aslibra.com/pic>
     Order Deny,Allow
     Deny from all
     Allow from env=local_referal
   </Directory>
</VirtualHost>

Tags:
分页: 1/3 第一页 1 2 3 下页 最后页 [ 显示模式: 摘要 | 列表 ]

阅读推荐

服务器相关推荐

开发相关推荐

应用软件推荐