- 浏览: 1053643 次
- 性别:
- 来自: 广州
文章分类
最新评论
-
wenson:
lzjzy520 写道 求 项目完整元代码已经够清楚了,看不懂 ...
使用Spring JavaMail发送邮件总结 -
lzjzy520:
求 项目完整元代码
使用Spring JavaMail发送邮件总结 -
xiejx618:
能提高多大的性能? 不能用数据来说话吧希望你能用jmeter做 ...
利用APR本地库提高Tomcat性能 -
mrwalter:
学习了,挺好用的,局域网内速度很快
ssh远程文件传输命令scp -
wcily123:
不错
ssh远程文件传输命令scp
出處:http://www.blogjava.net/zpuser/archive/2007/04/29/114548.html
本文针对apache web服务器的安装配置收集有效的一些经验和方法,用于交流。
1.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最为配置文件
$ mv httpd.conf httpd.conf_bak
$ cp highperformance.conf httpd.conf
$ ../bin/apachectr start
如果启动失败,请屏蔽调httpd.conf中的mod_access相关命令,如Order等,关于目录权限的控制在本例中可以使用变通方式解决,使用没有加载目录权限控制功能。
启动验证,访问http://$IP/,如果正常显示页面,表示成功。
2.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>
3.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
# Compress everything except images
<Location />
# Insert filter
SetOutputFilter DEFLATE
# Netscape 4.x has some problems......
BrowserMatch ^Mozilla/4 gzip-only-text/html
# Netscape 4.06-4.08 have some more problems
BrowserMatch ^Mozilla/4\.0[678] no-gzip
# MSIE masquerades as Netscape, but it is fine
BrowserMatch \bMSIE !no-gzip !gzip-only-text/html
# Don't compress images
SetEnvIfNoCase Request_URI \
\.(?:gif|jpe?g|png)$ no-gzip dont-vary
# Make sure proxies don't deliver the wrong content
Header append Vary User-Agent env=!dont-vary
</Location>
评论
- [/u]引用[i]
发表评论
-
Define a Security Policy(定义java安全策略)
2014-08-07 11:55 1524from:http://web.securityinnova ... -
Convert a .ppk file to .pub with PuttyGen
2012-03-12 14:55 1576Run “puttygen.exe”. The “PuTTY ... -
安裝memcached服務器時需要的libevent
2011-09-09 15:00 1401libevent下载地址:http://monkey.org/ ... -
Linux下的Memcache安装
2010-01-09 07:35 2354在一台64位Linux的机器上安装了MemCached,遇到一 ... -
Apache的ProxyPass指令详解
2009-12-10 16:33 4643原文地址:http://httpd.apache.org/do ... -
java.net.SocketException: Too many open files分析及解决办法
2009-09-07 02:25 3964java.net.SocketException: Too m ... -
Configuring JBoss AS 5 JMS for MySQL
2009-07-12 08:05 1625Configuring JBoss AS 5 JMS for ... -
利用APR本地库提高Tomcat性能
2009-05-10 02:46 15257Tomcat可以使用APR来提 ... -
优化tomcat
2009-05-10 01:51 23851、安装jrockit JVM,Bea的JDK 2、测 ... -
apache和tomcat使用mod_proxy_ajp进行整合
2009-05-02 13:32 4695需求:apache和tomcat結合,在浏览器中打开网址 ... -
一篇建立NFS服務器的教程資料
2008-07-11 21:35 1505一篇建立NFS服務器的教程資料:http://linux.vb ... -
openVZ虚拟机的备份与恢复
2008-07-11 18:46 3174个人多openVZ虚拟机备份与恢复的一点总结: 一、備份 ... -
使用简单的 5 个步骤设置 Web 服务器集群
2008-07-10 02:42 2539使用 Linux Virtual Server 和 ... -
轻松实现Apache,Tomcat集群和负载均衡
2008-07-02 14:04 1585作者:罗代均 ldj_work#126.com,转载请保持完整 ... -
TOMCAT-5.5.X优化配置
2008-01-15 19:13 8415收集自:http://www.blogjava ... -
使用Java Service Wrapper设置tomcat作为linux服务并且开机自动启动
2008-01-11 20:12 6655前几天总结了使用JSVC来设置tomcat作为linux服务并 ... -
linux中通過jsvc自动启动tomcat并且加載到服務中
2008-01-07 21:44 5911一直在找讓tomcat并且加載到 linux服務中的方法,有的 ... -
Tomcat性能调整
2007-12-28 19:47 1692收一下這篇文章 http://ww ...
相关推荐
总的来说,Apache的配置涉及到多个方面,包括基本设置、模块管理、虚拟主机、安全策略等,理解并掌握这些知识点对于管理和优化Apache服务器至关重要。在实际操作中,应根据具体需求和安全规范进行配置,确保服务器...
本实践教程将深入探讨如何在Windows操作系统上安装和配置PHP与Apache,以搭建一个本地开发环境。我们将利用提供的配置文件和安装文件,包括`php.ini`、`httpd.conf`以及`php-5.2.8-Win32.rar`。 首先,我们需要理解...
Apache是世界上最流行的一款开源Web服务器软件,...确保对Apache配置有深入理解,并根据业务需求进行定制,是保障Web服务正常运行的关键。同时,定期更新和维护Apache,确保其安全性和兼容性,也是运维人员的重要职责。
Apache 2.2.15 是一款广泛应用的开源Web服务器,其安装和配置对于搭建网站服务至关重要。在本文中,我们将详细阐述如何安装这个特定版本的Apache,并介绍反向代理配置的基本步骤。 首先,要安装Apache 2.2.15,你...
本主题将深入探讨Apache服务器的配置与管理,帮助你掌握如何搭建和优化Web服务。 1. Web服务概述 Web服务是互联网的核心组成部分,它允许通过HTTP或HTTPS协议在客户端(如浏览器)和服务器之间交换数据。Web服务器...
- 修改Apache配置文件httpd.conf,添加PHP模块支持。 2. **MySQL安装**: - 下载并安装MySQL。 - 配置MySQL服务。 3. **整合测试**:确保Apache、PHP和MySQL之间能够正常通信,可以通过创建简单的PHP脚本来测试...
### Apache 2.2 安装、优化与模块配置详解 #### 一、Apache 2.2 安装过程 1. **解压文件** 使用 `tar jxvf httpd-2.2.2.tar.bz2` 命令来解压下载的Apache 2.2安装包。接下来进入解压后的目录 `httpd-2.2.0`。 2...
1. 安装与启动:首先了解如何在不同操作系统中安装Apache服务器,例如Windows和Linux系统。学会如何启动、停止和重启Apache服务器,并熟悉服务器启动时的日志信息。 2. 配置文件结构:Apache服务器的主配置文件通常...
在Windows操作系统中,搭建PHP5和Apache...文档"Windows下PHP5和Apache的安装与配置.doc"应包含更详细的步骤和注意事项,可作为参考。通过这个教程,开发者可以建立自己的本地开发环境,进行PHP网站的开发和调试工作。
总的来说,安装和配置Apache是一个需要细心和耐心的过程。遵循以上步骤,结合具体的系统环境和需求,你应该能够成功地在Linux上部署并运行Apache服务器。记住,遇到问题不要气馁,解决问题是提升技能的好机会。
在详细说明标题和描述中的知识点之前,首先需澄清给定文件内容似乎存在冗余的重复链接,这些链接指向同一内容,并未提供有关Apache服务器配置与使用的具体信息。因此,将无法直接从这部分内容中提炼知识点,只得依据...
本文将深入探讨Apache的配置与优化,帮助你更好地理解和利用这一强大的工具。 首先,我们来了解为什么选择Apache。Apache不仅是最主流的Web服务器,而且由于其稳定性和安全性,许多顶级网站都依赖它,例如除MSN之外...
学习Apache配置的目标是理解Web基本概念,掌握Apache配置指令,包括基本配置、多站点配置、安全和性能优化。此外,熟悉Apache的日常管理命令,如启动、停止和监控,对于维护稳定高效的Web服务至关重要。通过这些知识...
因此,推荐的做法是在Apache配置文件中禁用这一功能。 - **配置文件位置**:通常,这些设置可以在Apache的主配置文件`httpd.conf`中找到。 - **配置项修改**:具体做法是在`<Directory>`配置段落中,找到`Options`...
关于Apache更深入的配置,可以参考提供的文件 "APACHE配置文件中文详解.txt" 和 "Apache.txt",它们提供了更多细节和实例。在实际操作中,理解每个模块的作用以及如何启用和禁用模块,对优化服务器性能至关重要。 ...
- **修改Apache配置文件**:编辑Apache的配置文件`httpd.conf`。 - **加载模块**:确保以下模块已加载: ```conf LoadModule dav_module modules/mod_dav.so LoadModule dav_fs_module modules/mod_dav_fs.so ...
**Apache 的安装与配置** 1. **下载 Apache**: 可以从 Apache 官方网站或镜像站点下载适用于 Windows 的安装包,例如 `apache_2.2.17-win32-x86-no_ssl.msi`。 2. **安装 Apache**: 安装过程中可以选择安装路径,...
一、Apache的安装与配置 1. 下载Apache:首先,你需要访问Apache官方网站(http://www.apache.org/)下载适合Windows系统的Apache服务器,如Apache HTTP Server。通常推荐下载最新稳定版。 2. 安装Apache:运行下载...