- 浏览: 366179 次
文章分类
最新评论
-
strchi:
这个网站,什么都没有了
做小说搜索网站,这个是不是有可能会侵权的呢? -
从此醉:
楼主倒是给出解决办法啊
Java虚拟机支持的最大内存限制 -
kjmmlzq19851226:
又要增强客户体验,又要降低伪造攻击的概率,╮(╯▽╰)╭,程序 ...
Web安全测试之跨站请求伪造(CSRF)篇(图) -
zhangxinze:
linux下使用Java获取客户端ip地址?大家有何高见,我现 ...
怎样用Java来获取真实的IP地址 -
k_kid9157:
学习 感谢分享:-)
log4j的ConversionPattern参数的格式含义
文针对apache web服务器的安装配置收集有效的一些经验和方法,用于交流。
1.<!--[endif]-->Apache安装配置
Apache的安装,考虑只用于Tomcat的前段代理,处理图片和静态文件的请求,并把动态请求转发到tomcat服务处理。本文使用编译安装方式,把跟需求无关的模块关闭,只使用最小的模块编译,提高软件性能。
配置编译命令请参考:
http://www.uplinux.com/download/doc/apache/ApacheManual/install.html#configure
编译参数说明:
编译和包含是两个不同的概念。编译是指这个模块被编译了,要想使用它,只用简单的修改httpd.conf加上LoadModule xxx_module libexec/mod_xxx.so 明确指出。
用以前命令可以查看缺省时已编译和包含进去的模块。不用显式的--enable-MODULE[=shared] 和LoadModule 操作。就已经可以使用的。
- core.c:Apache HTTP 服务器提供的核心功能。必须要有的。
- mod_access.c:安全认证大大降低访问速度,建议disable it .
- mod_auth.c :安全认证大大降低访问速度,建议disable it .
- mod_include.c:server side include已经过时了,建议disable it .
- mod_log_config.c:用于定制log格式.最好保留.
- mod_env.c:修改传送到 CGI 脚本和 SSI 页面的系统环境(变量)。一般说来,可以不需要。
- mod_setenvif.c :用户设置环境变量和认证相关,如果没有使用压缩输出,建议disable it .
- prefork.c:Implements a non-threaded, pre-forking web server。参考下面的mpm介绍。
- http_core.c:Apache HTTP 服务器提供的核心功能。必须要有的。
- mod_mime.c:用于增加文件应用的关联。最好保留。
- mod_status.c:Provides information on server activity and performance 。一般说来,可以不需要。
- mod_autoindex.c:不需要将没有缺省index文件的目录下所有文件列出,建议disable it .
- mod_asis.c:尽量不使用CGI:一直是Apache安全问题最多的地方,建议disable it .
- mod_cgi.c:尽量不使用CGI:一直是Apache安全问题最多的地方,建议disable it .
- mod_negotiation.c :内容协商,以根据浏览器提供的设置选择不同媒介类型、语言、字符集和编码的最佳表现,还有对来自浏览器的不完整内容协商信息作智能处理的能力。一般说来,可以不需要。
- mod_dir.c:用于缺省index文件:index.php等。我们现在的应用不需要这个。看情况而定。
- mod_imap.c:尽量不使用CGI:一直是Apache安全问题最多的地方,建议disable it .
- mod_actions.c:尽量不使用CGI:一直是Apache安全问题最多的地方,建议disable it
- mod_userdir.c:比如:需要在~/username/下调试php.可用可不用.建议disable it .
- mod_alias.c:比如:需要将以前的URL进行转向或者需要使用CGI script-alias.建议disable it .
- mod_so.c :如果编译中包含有任何动态模块,则mod_so模块会被自动包含进核心。如果希望核心能够装载DSO,而不实际编译任何动态模块,需要明确指定--enable-so。我们的应用使用静态编译,不需要它。建议disable it .
- CC="pgcc" CFLAGS="-O2" :编译器参数优化
- --profix:apache的安装目录,默认是安装在/usr/local/apache
$ tar –xzvf apache-2.0.59.tar.gz
$ cd httpd2.0.59
$ CC="pgcc" CFLAGS="-O2" \
./configure --prefix=/usr/apache-2.0.59 \
--disable-access \
--disable-auth \
--disable-include \
--disable-env \
--disable-status \
--disable-autoindex \
--disable-asis \
--disable-cgi \
--disable-negotiation \
--disable-imap \
--disable-actions \
--disable-userdir \
--disable-alias \
--enable-deflate \
--enable-headers \
--enable-setenvif \
--enable-so
$ make
$ make install
安装完成后,因为编译关闭了很多默认的功能模块,所以直接使用发布的默认配置是不能启动服务器的,需要作调整。
设apache的安装目录为$APACHE_HOME
备份默认配置文件$APACHE_HOME/conf/httpd.conf,然后使用highperformance.conf最为配置文件
如果启动失败,请屏蔽调httpd.conf中的mod_access相关命令,如Order等,关于目录权限的控制在本例中可以使用变通方式解决,使用没有加载目录权限控制功能。
启动验证,访问http://$IP/,如果正常显示页面,表示成功。
<!--[if !supportLists]-->2.<!--[endif]-->PMP
MPM(Multi-Processing Modules,多道处理模块)
指定MPM的方法
$ ./configure --help|grep mpm
显示如下:
--with-mpm=MPM
Choose the process model for Apache to use.
MPM={beos|worker|prefork|mpmt_os2| perchild|leader|threadpool}
主要阐述prefork,如果不用“--with-mpm”显式指定某种MPM,prefork就是Unix平台上缺省的MPM,prefork本身并没有使用到线程,2.0版使用它是为了与1.3版保持兼容性;prefork用单独的子进程来处理不同的请求,进程之间是彼此独立的,这也使其成为最稳定的MPM之一。
prefork的工作原理是,控制进程在最初建立“StartServers”个子进程后,为了满足MinSpareServers设置的需要创建一个进程,等待一秒钟,继续创建两个,再等待一秒钟,继续创建四个……如此按指数级增加创建的进程数,最多达到每秒32个,直到满足MinSpareServers设置的值为止。这就是预派生(prefork)的由来。这种模式可以不必在请求到来时再产生新的进程,从而减小了系统开销以增加性能。
下面是prefork的默认配置段:
<IfModule prefork.c>
StartServers 5
MinSpareServers 5
MaxSpareServers 10
MaxClients 150
MaxRequestsPerChild 0
</IfModule>
MinSpareServers
设置了最小的空闲进程数。
MaxSpareServers
设置了最大的空闲进程数,如果空闲进程数大于这个值,Apache会自动kill掉一些多余进程。这个值不要设得过大,但如果设的值比MinSpareServers小,Apache会自动把其调整为MinSpareServers+1。如果站点负载较大,可考虑同时加大MinSpareServers和MaxSpareServers。
MaxClients
MaxClients是这些指令中最为重要的一个,设定的是Apache可以同时处理的请求,是对Apache性能影响最大的参数。其缺省值150是远远不够的,如果请求总数已达到这个值(可通过ps -ef|grep http|wc -l来确认),那么后面的请求就要排队,直到某个已处理请求完毕。这就是系统资源还剩下很多而HTTP访问却很慢的主要原因。系统管理员可以根据硬件配置和负载情况来动态调整这个值。虽然理论上这个值越大,可以处理的请求就越多,但Apache默认的限制不能大于256(在2.0中源于#define DEFAULT_SERVER_LIMIT 256)。如果把这个值设为大于256,那么Apache将无法起动。事实上,256对于负载稍重的站点也是不够的。在Apache 1.3中,这是个硬限制。如果要加大这个值,必须在“configure”前手工修改的源代码树下的src/include/httpd.h中查找256,就会发现“#define HARD_SERVER_LIMIT 256”这行。把256改为要增大的值(如4000),然后重新编译Apache即可。在Apache 2.0中新加入了ServerLimit指令,使得无须重编译Apache就可以加大MaxClients。ServerLimit使用也是单独添加一行在这就可以了。如果ServerLimit的值再这定义超过了20000,就要修改server/mpm/prefork/prefork.c #define MAX_SERVER_LIMIT 20000。将20000改成更大的值。
MaxRequestsPerChild
设置的是每个子进程可处理的请求数。每个子进程在处理了“MaxRequestsPerChild”个请求后将自动销毁。0意味着无限,即子进程永不销毁。虽然缺省设为0可以使每个子进程处理更多的请求,但如果设成非零值也有两点重要的好处:可防止意外的内存泄漏;在服务器负载下降的时侯会自动减少子进程数。
Apache+jk2的每个进程的的大小是2M,本系统预计分配给apache的内存为400M,那么根据公式:
apache_max_process_with_good_perfermance < (400M / 2m) * 2 = 400
apache_max_process =400 * 1.5 = 700
即最佳性能设置为:400
按照上面的分析,本系统的的prefork.c配置为:
ServerLimit 400
MaxClients 400
StartServers 5
MinSpareServers 5
MaxSpareServers 10
</IfModule>
<!--[if !supportLists]-->3.<!--[endif]-->gzip压缩输出
通过加入mode_deflate模块对服务器输出压缩传输,可以减小输出压力,节约带宽。
可以减少40%左右的流量,减少机器用于传输的负载.
压缩输出的配置需要以下三个模块功能支持
mod_setenvif.c
mod_deflate
mod_headers
具体说明请参考:http://www.uplinux.com/download/doc/apache/ApacheManual/mod/
配置
参考:http://www.uplinux.com/download/doc/apache/ApacheManual/mod/mod_deflate.html
$ mv httpd.conf httpd.conf_bak
$ cp highperformance.conf httpd.conf
$ ../bin/apachectr start
发表评论
-
推荐JS压缩工具ESC
2009-01-08 20:13 2110昨天将CheckBox转Text的代码从HTML中剥离出来之 ... -
怎样用Java来获取真实的IP地址
2009-01-06 13:05 7435在JSP里,获取客户端的IP地址的方法是:request.ge ... -
CLOSE_WAIT状态的生成原因[转]
2008-12-16 14:50 3033CLOSE_WAIT状态的生成原因首先我们知道,如果我们的Cl ... -
tcp相关状态
2008-12-16 14:42 1269客户端口实际上就是从本机访问其它计算机服务时打开的源端 ... -
网站前端优化一些小经验
2008-12-04 20:32 915着第3届bt论坛的顺利结 ... -
Base64基础(2)
2008-12-02 10:19 1290url: http://zh.wikipedia.org/wi ... -
什么是Base64以及sun.misc.BASE64Decoder的用法
2008-11-24 15:10 4805Base64是网络上最常见的用于传输8Bit字节代码的编码方式 ... -
Regex的一些常用例子
2008-11-11 12:37 1298import java.util.HashMap; imp ... -
值得收藏的健康知识
2008-11-03 11:53 1520不要死于无知。 不要拿 ... -
java的File#renameTo(File)方法的陷井
2008-10-27 10:17 1647以前我一直以为File#renameTo(File)方法与OS ... -
垂直搜索的信息分类如何做
2008-10-24 10:09 1450垂直搜索的优势就在 ... -
Twitter的增容处理
2008-10-21 12:00 962文/Patrick Joyce译/杨昊 由于之前 ... -
一步步图解 Tomcat 体系结构
2008-10-08 10:42 2248Apache Tomcat 是一款非常著名的开源 Servle ... -
Java编码原理与解决方案
2008-10-07 22:40 1276一、Java编码是怎么回事? 对于使用中文以及其他非拉丁语系语 ... -
JAVA分布式应用中使用XML数据
2008-09-24 15:14 1261可扩展标记语言(XML) ... -
红黑树(red-black tree)算法,附AVL树的比较
2008-09-03 15:01 14095红黑树的定义 正如在CLR ... -
状态对象:数据库的替代者
2008-09-03 10:39 879这是一个实战中非常重 ... -
一个计算机专业学生几年的编程经验汇总
2008-08-02 21:04 1380想来学习Java也有两个年头了,永远不敢说多么精通,但也想谈谈 ... -
UUID的介绍与使用
2008-07-30 17:24 2853一.UUID的介绍:UUID又称为通用唯一标识符,是一个128 ... -
htmlparser使用指南
2008-07-05 14:07 2984需要做一个垂直搜索引擎,比较了nekohtml和htmlp ...
相关推荐
apache2.2_安装,优化、模块配置
4.3 配置、优化Apache 5 4.3.1 配置web容器信息的文件 5 4.3.2 新建uriworkermap.properties文件 5 4.3.3 JK-connector的安装 5 4.3.4 修改Apache的配置文件 6 4.3.5 配置多路处理模块 6 4.4 配置、优化Tomcat 7 ...
Apache2.2安全配置和性能优化
Apache配置与优化[借鉴].pdf
Apache服务器配置与使用工作笔记》详细介绍了新版本的Apache服务器软件的安装、配置与管理,通过这些介绍,读者能快速地将Apache运用到工作中。在每个章节后附有常见问题解答(FAQ),帮助读者解决一些在Apache使用...
本文主要介绍了如何成功的在Linux上安装与配置Apache、Php、Mysql,并且详细地说明了在安装过程中出现的一些问题解决方法。...Apache配置和日志 Linux下Apache 配置详解 Linux下查看编译参数 LAMP优化技巧
Apache服务器的设置使用三个配置文件httpd.conf、access.conf和srm.conf来配置Apache服务器的行为。httpd.conf提供了最基本的服务器配置,是对守护程序httpd如何运行的技术描述;srm.conf是服务器的资源映射文件;...
Apache服务器配置与管理,详细介绍了apache最全的配置,是初学者们的良师益友
apache-tomcat-8.5配置优化后,配置好了,tomcat用户名密码,可直接使用admin
ubuntu下Apache2+Svn详细配置
NULL 博文链接:https://zyengogo.iteye.com/blog/2091977
③灵活性和可定制性: 通过源码安装,可以完全控制 Apache 的配置和功能。根据具体需求修改配置文件,添加自定义模块或扩展,以满足特定的应用需求。 ④深入了解 Apache: 通过编译和安装源代码,更深入地理解 ...
这是tomcat8的配置中文说明,包含了tomcat8优化的全部,读者可参考本文档就行所有tomcat8的优化 PS:只针对tomcat8,不针对9
apache 参数优化,提高服务器运行稳定和效率
因此,我就在ubuntu下配置了Apache服务器来更深入的学习。 这是一个默认安装的方法,如果要指定 步骤一:安装apache2 1、sudo apt-get install apache2,然后输入管理员用户的密码 输入“y”,然后回车,完成安装...
此资源用于非https的离线Apache安装包,如需配置https,需要补充优化。
mysql慢可能是配置不对,阅读一下这个可能对你有帮助 在Apache, PHP, mysql的体系架构中,MySQL对于性能的影响最大,也是关键的核心部分。对于Discuz!论坛程序也是如此,MySQL的设置是否合理优化,直接 影响到论坛的...
新版本的Apache将原来httpd.conf、srm.conf与 access.conf中的所有配置参数均放在了一个配置文件 httpd.conf中,因此只需要调整这个文件中的设置。本文基于redhat 7.2 下的httpd.conf为例,解释Apache服务器的各个...
第4章 Nginx与PHP(FastCGI)的安装、配置与优化 第5章 Nginx与JSP、ASP.NET、Perl的安装与配置 第6章 Nginx HTTP负载均衡和反向代理的配置与优化 第7章 Nginx的Rewrite规则与实例 第8章 Nginx模块开发 第9章 Nginx的...