9月 172010
 

搞了两天,综合网上优秀BLOG并且联系实际整理了下 Apache Mysql 的优化,虽然不一定适合每一个人,但里面的一些参数自己可以自己琢磨测试.不过Apache感觉不怎么样,爷爷的 15分钟在线 2000多IP就卡得不得了,每天90多W PV 都卡,看了下163他们的网络架构,不管是前端还是源段服务器都全是NGINX,看样子以后还得继续努力学习了,

Apache优化

KeepAlive On

KeepAliveTimeout 10


    StartServers          5
    MinSpareServers       10
    MaxSpareServers      20
    ServerLimit          1000
    MaxClients          1000
    MaxRequestsPerChild   10000

主要优化这几个参数,在服务器完全可以承受访问量的时候建议把KeepAlive设置为 on,但网上很多人设置了on但是KeepAliveTime设置为 3-5秒,我认为这样设置根本就没有效果,还不如KeepAlive设置为off,打开一个网页算快也要2秒,人家不可能看3秒又去打开新页面,所以这样设置个人觉得不科学,至少也要10秒,建议使用默认的15秒,如果服务器压力太大可以尝试KeepAlive设置off,以减少一些无效连接,

并发计算参考公式: Continue reading »

9月 172010
 

Apache 2.0在性能上的改善最吸引人。在支持POSIX线程的Unix系统上,Apache可以通过不同的MPM运行在一种多进程与多线程相混合的模式下,增强部分配置的可扩充性能。相比于Apache 1.3,2.0版本做了大量的优化来提升处理能力和可伸缩性,并且大多数改进在默认状态下即可生效。但是在编译和运行时刻,2.0也有许多可以显著提高性能的选择。本文不想叙述那些以功能换取速度的指令,如HostnameLookups等,而只是说明在2.0中影响性能的最核心特性:MPM(Multi -Processing Modules,多道处理模块)的基本工作原理和配置指令。

  毫不夸张地说,MPM的引入是Apache 2.0最重要的变化。大家知道,Apache是基于模块化的设计,而Apache 2.0更扩展了模块化设计到Web服务器的最基本功能。服务器装载了一种多道处理模块,负责绑定本机网络端口、接受请求,并调度子进程来处理请求。扩展模块化设计有两个重要好处: Continue reading »

8月 242010
 

在APACHE的httpd.conf中,KeepAlive指的是保持连接活跃,类似于Mysql的永久连接。换一句话说,如果将KeepAlive设置为On,那么来自同一客户端的请求就不需要再一次连接,避免每次请求都要新建一个连接而加重服务器的负担。    

KeepAlive的连接活跃时间当然是受KeepAliveTimeOut限制的。如果第二次请求和第一次请求之间超过KeepAliveTimeOut的时间的话,第一次连接就会中断,再新建第二个连接。  

所以,一般情况下,图片较多的网站应该把KeepAlive设为On。但是KeepAliveTimeOut应该设置为多少秒就是一个值得讨论的问题了。  

如果KeepAliveTimeOut设置的时间过短,例如设置为1秒,那么APACHE就会频繁的建立新连接,当然会耗费不少的资源;反过来,如果KeepAliveTimeOut设置的时间过长,例如设置为300秒,那么APACHE中肯定有很多无用的连接会占用服务器的资源,也不是一件好事。  

所以,到底要把KeepAliveTimeOut设置为多少,要看网站的流量、服务器的配置而定。   Continue reading »

8月 182010
 

Apache的模块选择是加固Apache的关键步骤之一。 我们所遵循的规则无非是老生常谈的:越少越好. 为了实现我们的功能和安全要求,以下模块必须启用:

模块名称           描述
httpd_core   Apache的核心模块,在Apache的每个拷贝中都必须有
mod_access   提供基于客户端主机名、IP或者其他客户端特征的访问控制。 由于本
模块对需要使用'order'、'allow'、'deny'等指令来说是必须的,所有启用
mod_auth   提供用户认证功能 (HTTP Basic Authentication)
mod_dir   提供查找并发送”index.html”, “default.htm”,这些index文件功能
mod_log_config   实现Web服务器的日子功能
mod_mime   用来设置HTML文档的字符集、内容编码、处理句柄 和MIME 类型等功能

除此之外所有的Apache模块都予以禁用。因为我们不需要它们。禁用那些模块后,进一步避免因为那些模块出现问题而导致服务器出现危险。

另外单独注一笔的是另外两个Apache的模块: mod_autoindex和mod_info .
前者给目录提供自动索引,默认情况下是启用的,这导致没有index文件的服务器目录(比如http://server_name/icons/)内容很容易就被泄漏,
而后者:mod_info , 由于它的作用就是报告apache的配置,也不能启用。

以上资料基于 apache 1.3.x 写于2005年,供参考.

4月 212010
 

LAMP(apache2,php5)和Tomcat6都装好了,但只能通过80访问php网页,通过8080访问jsp网页。
实现:访问域名A时,打开php网页,访问域名B时,打开jsp网页,而不用加端口号.

原理是利用apahce2的代理功能.
指令:
sudo a2enmod proxy
sudo vim /etc/apache2/httpd.conf 加入如下:


ServerName http://www.xxx.com ##改成你的url
ProxyPass /images/ ! ##此处作用是过滤掉图片的代理,不需要的话,去掉
ProxyPass /js/ ! ##同上
ProxyPass /css/ ! ##同上
ProxyPass / ajp://127.0.0.1:8009/
ProxyPassReverse / ajp://127.0.0.1:8009/

修改完之后,
把apache重载一下 sudo /etc/init.d/apache2 force-reload
最好再重启一下: sudo /etc/init.d/apache2 restart

10月 012008
 

编辑httpd.conf 设置如下:


SetEnv IMAG 1

CustomLog logs/access_log combined env=!IMAG

这样记录文件access_log就不会记录ico|gif|jpg|png|bmp|swf的访问记录,同样也可以加上css|js才过滤css和js文件,效果很好.
但是这种记录限制只限制于做虚拟主机的时候没有同时设定记录文件的时候会参照这个方式记录在access_log文件里.不过httpd.conf里默认还有另外一个类似不记录虚拟主机日志的日志文件.

(设定:服务器是windows20003,装有apache2.3 php5 mysql zend gd)

参照:
    #
    # The location and format of the access logfile (Common Logfile Format).
    # If you do not define any access logfiles within a
    # container, they will be logged here.  Contrariwise, if you *do*
    # define per-
access logfiles, transactions will be
    # logged therein and *not* in this file.
    #
    CustomLog logs/access.log common
这样会重复记录一个文件access.log ,所以可以注释掉上面那一行:
#CustomLog logs/access.log common Continue reading »

10月 012008
 

Apache 一般有两种日志格式:
通用日志格式(Common Log Format) 和 组合日志格式(Combined Log Format)

http.conf中默认格式如下:
LogFormat “%h %l %u %t \”%r\” %>s %b” common
LogFormat “%h %l %u %t \”%r\” %>s %b \”%{Referer}i\” \”%{User-agent}i\”” combined

也可以使用自定义,这里使用`分隔 日志参数

%h`%l`%u`%{%Y-%m-%d %H:%M:%S}t`%r`%s`%b`%{Referer}i`%{User-Agent}i`%{X-Up-Calling-Line-ID}i

输出结果如下:
127.0.0.1 – frank [10/Oct/2000:13:55:36 -0700] “GET /apache_pb.gif HTTP/1.0″ 200 2326
127.0.0.1 – frank [10/Oct/2000:13:55:36 -0700] “GET /apache_pb.gif HTTP/1.0″ 200 2326 “http://www.example.com/start.html” “Mozilla/4.08 [en] (Win98; I ;Nav)”
172.16.0.115`-`-`2008-03-13 11:00:03`GET /logo.gif HTTP/1.1`200`2893`http://172.16.0.252/index.jsp `Opera/9.26 (Windows NT 5.1; U; zh-cn)`- Continue reading »