搜档网
当前位置:搜档网 › Apache性能优化

Apache性能优化

Apache性能优化
Apache性能优化

Apache性能优化

Apache性能优化

Posted on 2011-10-30 23:47 smallsilver 阅读(576) 评论(0) 编辑收藏Apache是目前Internet上使用最为广泛的Web 服务器。它具有比商业Web服务器不遑多让的功能与速度,同时安装与设置也十分简单,正是这些特性让它成为市场占有率最高的Web服务器软件。不过Apache安装简单,并不意味着简单地安装就可以适用于绝大多数应用环境,在高负荷的Web站点,Apache还需要进行调整、优化......优化方法Apache的配置文件是httpd.conf。Windows下该文件位于Apache安装目录的Conf子目录下,RedHat Enterprise Linux AS 3.0 Update 2位于/etc/httpd/conf。通过调整该文件的某些参数,可以优化Apache的运行效率。为了验证后文Apache参数的调整是否起作用,我们通常用Apache附带的ab(Apache Bench)对其进行压力测试。ab最常用的语法格式是这样的:ab -n XXX -c YYY -k

http://hostname.port/path/filename其中:-n XXX:

表示最多进行XXX次测试。也就是下载filename文件XXX 次。-c YYY:

客户端并发连接个数。-k:

启用HTTP KeepAlive功能。默认不启用KeepAlive功能。比如我们要对http://hostname:port/https://www.sodocs.net/doc/514691055.html,下载10000次进行测试,并发访问为60个,启用HTTP KeepAlive功能,则访问指令为:ab -n 10000 -c 60 -k

http://hostname:port/file.htm测试平台在本次优化过程中。笔者采用了两台电脑进行压力测试。其中一台为客户端,运行ab发送请求,另外一台为服务器,安装有Apache提供Web服务。1.服务器配置服务器端,笔者采用了较低端的配置。这样更容易通过ab测试看来调整参数后的效果:CPU: Intel Celeron 1.0GHz

内存:512MB SRAM 100MHz

硬盘:Maxtor 4D040H2

网卡:D-Link DFE 530TX服务器端笔者安装两种操作系统:Windows Server 2003 Enterprise Edition并升级到最新的Hotfix。Apache服务器版本为2.0.50;或者RedHat Enterprise Linux AS 3.0 Update 2。2.客户端配置为了使评

测的瓶颈不在客户端,笔者客户端配置要比服务器端好,具体硬件配置如下:CPU: P4 3.0GHz 533MHz 打开了HT支持

内存:512MB DDR 400

硬盘:WD1200JB-00CRA1

网卡:D-Link DFE 530TX客户端安装有RedHat Enterprise Linux AS 3.0 Update 2。并利用其中的ab来进行性能测试。通用优化技巧对于Apache服务器来说,为了提高性能需要进行的某些参数调整具有通用性,也就是说只要采用了就可以使其性能更好。1.关闭DNS和名字解析* HostnameLookups on | off | doubleApache 1.3之前HostnameLookups默认是打开的。这样客户端在访问服务

器时,服务器将要解析客户端的主机名,并将其保存在日志文件中。对客户端进行域名反向解析会大幅降低服务器速度,所以最好将其设置为Off。关闭指令如下:HostnameLookups off* UseCanonicalName on | off | dns打开UseCanonicalName是Web服务器的标准做法。这是因为

客户发送的大部分请求都是对本服务器的引用,打开该项设置就能使用ServerName和Port选项的设置内容构建完整的

URL。如果将这个参数设置为Off,那么Apache将使用从

客户请求中获得服务器名字和端口值,重新构建URL。如果你不需要在Apache中架设虚拟主机,建议设置为:UseCanonicalName on2.关闭多余模块Apache采用了模块化设计,管理员可以有选择地加载一些模块来加强服务器的功能。这些模块,可以在创建服务器时静态编译到服务器的二进制代码中,也可以编译成一些独立服务器程序的Dynamic Shared Objects(DSO)文件,在Apache启动的时候根据需要,动态加载。事实证明,不加载多余的模块总是可以提高Apache的性能。Apache的DSO模块是在httpd.conf中以:LoadModule access_module

modules/mod_access.so方式加载。当不需要某个模块时,只要在其前添加“#”,注释掉该行。一般来说,不需要加载以下模块:mod_include.so:

服务器端包含,是一种已经过时的技术。mod_autoindex.so:

如果不希望Apache列目录显示,可以删除。mod_access.so、mod_auth.so:

如果你不需要进行安全验证,也没有必要加载。最好加载以下模块:mod_dir.so:

用于定义缺省文档index.php、index.jsp等。

mod_log_config.so:

用于定义记录文件格式。mod_mime.so:

定义文件类型的关联。最后需要说明一点的是,并不是加载所有的模块都会降低Apache性能。比如mod_zip可以把文件压缩之后再传给客户端,这样就可以减少40%左右的网络流量,而mod_expires则可以减少10%左右的重复请求。

3.取消.htaccess验证除非你确定需要使用.htaccess文件来控制客户端对相应目录的访问权限,否则设置“AllowOverride None”,可以免除Apache在每个目录搜索.htaccess文件之苦。

4.取消符号链接FollowSymLinks允许使用符号连接,这将使用浏览器有可能访问文档根目录(DocumentRoot)之外的内容,并且只有符号连接的目的与符号连接本身为同一用户所拥有时(SymLinksOwnerMatch),才允许访问,这个设置将增加一些安全性,但将耗费Apache 大量的资源。笔者建议:Options FollowSymLinks但是不要启用SymLinksOwnerMatch。

5.打开KeepAlive支持在HTTP 1.0中和Apache服务器的一次连接只能发出一次HTTP请求,而KeepAlive参数支持HTTP 1.1版本的一次连接,多

次传输功能,这样就可以在一次连接中发出多个HTTP请求。从而避免对于同一个客户端需要打开不同的连接。很多请求通过同一个TCP连接来发送,可以节约网络和系统资源。在Apache的配置文件httpd.conf中,设置:KeepAlive on

KeepAliveTimeout 15这样就能限制每个连接的保持时间是15秒。在我们的评测中发现,打开KeepAlive之前,ab测试的数据为:Requests per second: 201.32 [#/sec] (mean)

Time per request: 298.031 [ms] (mean)

Time per request: 4.967 [ms] (mean, across all concurrent requests)

Transfer rate: 839.49 [Kbytes/sec] received而打开KeepAlive支持之后,ab测试数据为:Requests per second: 341.70 [#/sec] (mean)

Time per request: 175.594 [ms] (mean)

Time per request: 2.927 [ms] (mean, across all

concurrent requests)

Transfer rate: 1437.04 [Kbytes/sec] received最能反应Apache服务器性能的Requests per second,即每秒完成的请求次数从201.32提升到341.70,提升幅度为70%。虽然在现实环境中,不可能有这么多的同一连接发出的请求,但启用KeepAlive确实在一定程度上可以提高Apache服务器的吞吐量和反应速度。另外,可以设置:MaxKeepAliveRequests 100把MaxKeepAliveRequests设置的尽量大,可以在一次连接中进行更多的HTTP请求。但在我们的测试中还发现,把MaxKeepAliveRequests设置成1000,则评测的客户端容易出现“Send requesttimed out”的错误,所以具体数值还要根据自己的情形来设置。参数决定性能Apache除了可以通过一些常规方式进行优化外,还需要调整其运行参数,这样才能构建一个适合相应网络环境的Web服务。这些指令从两个级别对Apache进行了优化。* 进程级(Process-level)进程级的参数用来控制Apache相应的客户端请求的进程数Process(在Windows下称之为线程数,threads)。* 协议级(Protocol-level)协议级的指令则用来控制Apache与客户端的连接多久才自动断开。由于Windows和Linux/UNIX设计原理的不同,所以进程级的指令根据Apache是工作在Linux/UNIX或者Windows下,而

分成两种。1.Linux下Apache性能优化Linux下的Apache 预设工作在prefork模式下(由每个进程处理连接请求),这种工作模式也是Apache 1.3系列的工作模式。如果你需要其工作在其他模式下,则需要手工编译源代码来实

现:./configure --prefix=/usr/local/apache-2.0.50

--with-mpm=worker --enable-include && make

&& make installLinux下进程级的Apache调整参数包括以下五个。* StartServers该参数决定Linux启动时,自动打开的Apache服务器的数目。它对Apache服务器的性能没有太大的影响。因为如果MinSpareServers设置的比较大,Apache服务器进程数会马上调整到不小于MinSpareServers的数目。在Linux下,我们可以通过:ps aux |grep httpd来查看当前打开的Apache服务进程数。* MinspareServers该参数用于配置在任何时候可用的最小Apache进程个数。一般情况下,当目前可用的Apache进程数不能满足需求时,Apache会自动打开新进程以服务客户。所以设置MinspareServers为较大的值只是为了让在比较繁忙的Web环境,让Apache可以尽快地满足客户端的访问需求。对于每天有百万访问量的网站来说,下面的数值是比较合适的:MinspareServers 32* MaxSpareServers较大的MinSpareServers可以保证Apache有较快的反应速度,过大的MinSpareServers又会占用更多的系统内存。如果你

的系统内存不是很充足或者运行有其他的服务,把MaxSpareServers设置小一些可以为其他服务空出一些内存。当空闲Apache进程超过MaxSpareServers指定的数值时,Apache主进程会杀掉多余的空闲进程而保持空闲进程在MaxSpareServers指定的数值。对于每天百万访问量的网站来说,配置大容量的内容,并且设置如下的值是比较合适的:MaxSpareServers 64* MaxClients服务器的处理能力毕竟是有限的,不可能同时处理无限多的连接请求。参数MaxClients就用于规定服务器支持的最多并发访问的客户数。如果MaxClients设置得过大,系统在繁忙时不得不在过多的进程之间来回切换为更多的客户服务。这样对每个客户的反应就会变慢;如果设置得过小,系统繁忙时就会拒绝客户连接请求。我们的设想原则是,当服务器性能较高时,可以适当增加这个值的设置。如果繁忙出现拒绝访问现象,说明需要升级服务器硬件了。如果你不在意访问速度,或者认为反应速度慢也总比拒绝连接好,可以把该值设置大一些。* MaxRequestsPerChild当设置KeepAlive为off时,Apache 服务器是用单独的子进程为一次连接服务,这样,每次连接都需要生成、关闭子进程,这些额外的操作浪费了计算机的大量处理能力。最好的方式是一个子进程可以为多次连接请求服务。但子进程在接受访问请求时,需要不断地申请和释放内存,次数多了就会造成内存垃圾,影响系统稳定性。为

了解决这个问题,可以规定每一个子进程处理的最大请求数,超过此数值,就让该子进程退出,再从原始的httpd进程中

重新复制一个干净的副本,从而提高系统的稳定性。第个子进程能够处理服务请求的最大次数由MaxRequestsPerChild定义。RedHat Enterprise Linux AS 3.0 Update 2缺省的设置值为1000这个值比较适合(设置为0支持每个副本进行无限次的服务处理)。在我们的测试过程中发现,RedHat Enterprise Linux AS 3.0 Update 2下默认配置的Apache并不能很好地应付大负荷站点。我们需要打开KeepAlive,并加大StartServers、MinSpareServers、MaxSpareServers和MaxClients的数值。这些参数对于Apache性能的改善有很大的影响。小知识:

RedHat Enterprise Linux AS 3.0 Update 2最大MaxClients 只能设置到256。如果你需要设置其为更高,需要在MaxClients前面添加:

ServerLimit xxx

其中xxx不能少于MaxClients的数值。该设置方法适用于Apache 2.0系列。2.Windows下Apache优化Windows

下,Apache 2.0经过了全新的设计,采用多线程的方式(work)

运行。这种运行方式,理论上比Linux/UNIX的Perfork运行模式有更好的性能。Work模式下由单个控制进程负责子进程的建立。每个子进程可以建立由ThreadsPerChild指定的固定数量的线程。由独立的线程监听并处理到来的连接。在Windows下可以执行“Apache -l”。查看当前工作模式,如果显示“mpm_winnt.c”,则表示Apache工作在多线程模式下;在Linux下执行“httpd -l”看到“prefork.c”表示工作在子进程模式下。其配置语句是:StartServers 2

MaxClients 150

MinSpareThreads 25

MaxSpareThreads 75

ThreadsPerChild 25

MaxRequestsPerChild 0Apache力图维持一个备用的

服务线程池,让客户端无须等待线程/进程的建立即可得到处理。最初建立的进程数由StartServers指定。然后Apache 会不停地检测所有Apache进程中空闲线程的总数,并新建或结束进程使总数维持在MinSpareThreads和

MaxSpareThreads所指定的范围以内。但同时可以得到处理的客户端的最大数量又取决于MaxClients指令,而进程建立的最大数量取决于ServerLimit指令。三者之间的关系为:ServerLimit*ThreadsPerChild >=MaxClients

秒杀抢购电商网站架构优化设计

秒杀抢购电商网站架构优化设计

一、大规模并发带来的挑战 在过去的工作中,我曾经面对过5w每秒的高并发秒杀功能,在这个过程中,整个W e b系统遇到了很多的问题和挑战。 如果W e b系统不做针对性的优化,会轻而易举地陷入到异常状态。我们现在一起来讨论下,优化的思路和方法哈。 1. 请求接口的合理设计 一个秒杀或者抢购页面,通常分为2个部分,一个是静态的H T M L等内容,另一个就是参与秒杀的W e b后台请求接口。 通常静态H T M L等内容,是通过C D N的部署,一般压力不大,核心瓶颈实际上在后台请求接口上。

这个后端接口,必须能够支持高并发请求,同时,非常重要的一点,必须尽可能“快”,在最短的时间里返回用户的请求结果。 为了实现尽可能快这一点,接口的后端存储使用内存级别的操作会更好一点。 仍然直接面向M y S Q L之类的存储是不合适的,如果有这种复杂业务的需求,都建议采用异步写入。 当然,也有一些秒杀和抢购采用“滞后反馈”,就是说秒杀当下不知道结果,一段时间后才可以从页面中看到用户是否秒杀成功。

但是,这种属于“偷懒”行为,同时给用户的体验也不好,容易被用户认为是“暗箱操作”。 2.高并发的挑战:一定要“快” 我们通常衡量一个W e b系统的吞吐率的指标是Q P S(Q u e r y P e r S e c o n d,每秒处理请求数),解决每秒数万次的高并发场景,这个指标非常关键。 举个例子,我们假设处理一个业务请求平均响应时间为100m s,同时,系统内有20台A p a c h e的W e b服务器,配置M a x C l i e n t s为500个(表示A p a c h e 的最大连接数目)。 那么,我们的W e b系统的理论峰值Q P S为(理想化的计算方式): 20*500/0.1=100000(10万Q P S)

监视并记录Apache网站服务器的运行

监视并记录Apache网站服务器的运行 LogFormat 指令承诺你告诉Apache你想要记录要求的哪些方面。而你仍需附加的指令来告诉Apache在哪里记录那些信息,这在下一章中将会介绍。下面的例子显示了两种最受欢迎的格式的配置:一般日志格式和整合日志格式。当Apache收到一个要求,他将会用相应的要求属性来替代以%为前缀的每一个域。假如您正在使用一般日志格式,您的日志文件里 尽管有附件提供日志格式的详尽索引,下表描述了一些最为重要的域: # %h: 客户端(例如,扫瞄器)向服务器发出连接要求时自己的当时的IP地址或域名(需开启HostNameLookups)。 # %u: 使用方式认证用户时,记录下的用户的编号。 # %t: 服务器同意到连接要求的时刻。 # %r: 客户端发出的原始连接要求中的文本信息,包含所使用的方法。 # %>s: 服务器应答扫瞄器后的返回状态代码,200表示要求成功。. # %b: 服务器应答扫瞄器发出的单个要求的回传对象的内容大小(字节为单位),不统计数据包头部字节。 整合日志格式在一般日志格式的基础上扩展出了两个附加的域。定义为: # %{Referer}i: 连接要求数据包包头,包含指向当前页面的文档关联信息。 # %{User-agent}i: 用户代理连接要求数据包包头,包含客户扫瞄器的信息。 创建一个自定义日志文件 您可能会想创建Apache自带以外的新的日志文件。下面的例子将运用CustomLog来创建一个新的日志文件,并储存由一个之前定义好的日志格式,即前一章提到的common,所定义的信息。您还能够用格式本身的定义来替换昵称。一个附加的,更为简单的指令是Transferlog,它只同意最后一个LogFormat指令提供的定义。

Windows server 2003-tomcat-apache-优化 配置

tomcat 优化设置 调增tomcat6响应池、创建高线程的Connector: 查找tomcat6安装目录下conf目录中的server.xml文件,进行编辑 屏蔽tomcat默认Connector: –> 改为: (注:加入响应线程数控制,加入压缩传递模式,调整超时设置,屏蔽调试模式) apache 优化 一、使用压缩传递 1) 去掉#LoadModule headers_module modules/mod_headers.so前面的注释# 2) 添加LoadModule deflate_module modules/mod_deflate.so 3) 在VirtualHost中添加 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)$ no-gzip dont-vary Header append Vary User-Agent env=!dont-vary 一个完整的演示:

Linux下Apache服务器的安装和配置

【实验8】Apache服务器的安装和配置 一、实验目的: 1.掌握Apache Web服务器的安装和配置。 2.使用虚拟主机在同一台服务器上架设多个网站。 二、【实验环境】 1.虚拟机软件VM Ware 6.0,Redhat Enterprise Linux虚拟机或光盘镜像文 件。 2.2台以上机器组成的局域网。 三、【实验原理】 (一)Apache服务简介 Apache是世界使用排名第一的Web服务器软件。它可以运行在几乎所有广泛使用的计算机平台上。 Apache源于NCSAhttpd服务器,经过多次修改,成为世界上最流行的Web 服务器软件之一。Apache取自“a patchy server”的读音,意思是充满补丁的服务器,因为它是自由软件,所以不断有人来为它开发新的功能、新的特性、修改原来的缺陷。Apache的特点是简单、速度快、性能稳定,并可做代理服务器来使用。 (二)虚拟主机 所谓虚拟主机,也叫“网站空间”就是把一台运行在互联网上的服务器划分成 多个“虚拟”的服务器,每一个虚拟主机都具有独立的域名和完整的Internet服务 器(支持WWW、FTP、E-mail等)功能。一台服务器上的不同虚拟主机是各自 独立的,并由用户自行管理。 虚拟主机技术是互联网服务器采用的节省服务器硬体成本的技术,虚拟主机 技术主要应用于HTTP服务,将一台服务器的某项或者全部服务内容逻辑划分 为多个服务单位,对外表现为多个服务器,从而充分利用服务器硬体资源。如果 划分是系统级别的,则称为虚拟服务器。

(三)Linux中虚拟主机的分类 1、基于IP地址的虚拟主机 如果某公司有多个独立的IP地址可用,那么可以用不同的IP地址来配置虚拟主机。 2、基于端口的虚拟主机 如果只有一个IP地址,但是要架设多个站点,可以使用端口来区分,每个端口对应一个站点。这样配置的话,用户在访问的时候必须在 URL中指明端口号才能访问相应的网站。 3、基于名称的虚拟主机 使用基于IP地址或者端口的虚拟主机,能够配置的站点数目有限,而使用基于名称的虚拟主机,可以配置任意数目的虚拟主机,而不需要 额外的IP地址,也不需要修改端口号。 四、实验步骤 本实验请勿使用【系统】→【管理】→【服务器设置】中的【HTTPD】工具来配置,否则后果自负! (一)Apache服务器的启动 1、测试是否已安装Apache服务器: [root@localhost ~]#rpm –qa httpd 2、启动Apache服务器: [root@localhost ~]#service httpd start (二)基于端口的虚拟主机的配置 1、在/etc/httpd目录中,建立一个名为vhostconf.d的子目录,用来存放虚拟 主机的配置文件。 2、在/var/www目录中,建立一个名为websites的子目录,用于存放网站源 文件;在website目录下再建立ipvhost1和ipvhost2文件夹,用于区分各 个站点。

搭建Apache服务器

实训时间:2010年6月28日上午 搭建Apache服务器 实验目的 1.掌握配置用户个人站点的方法; 2.掌握配置目录访问控制与用户认证的方法; 3.掌握基于IP地址不同端口的虚拟主机的架设方法; 4.掌握基于不同IP地址的虚拟主机的架设方法; 实验内容 根据Apache服务器的默认设置,Web站点的相关文件保存在/var/www目录,而Web站点的日志文件保存于/var/log/httpd目录。安装安装Apache服务并进行相应的设置。 实验准备 两台计算机,一台安装RHEL Server5,另一台安装Windows XP。 一、建立Apache服务器的应用环境 1.安装Apache服务器软件包 (1)以超级用户登录到字符界面,输入“rpm -qa|grep httpd”命令,查看是否已安装Apache软件包,如没安装,则进行下一步。 (2)利用mount命令挂载安装光盘,依次输入如下命令: mount -t iso9660 /dev/cdrom /mnt rpm –ivh /mnt/Server/apr-1.2.7-11.i386.rpm rpm –ivh /mnt/Server/apr-util-1.2.7-6.i386.rpm rpm –ivh /mnt/Server/httpd-2.2.3-6.el5.i386.rpm 2.设置RHEL Server5计算机,其IP地址为192.168.0.10,子网掩码为255.255.255.0;允 许www服务通过防火墙,关闭SELinux,并启动Apache服务器。 (1)超级用户在字符界面输入“setup”命令,启动文字模式的系统设置程序。使用方向键将光标移至“Network configuration”(网络配置)选项,按回车,显示网卡信息。(2)选中网卡,再次按回车,出现网卡配置界面,按Tab键将光标移至“Use DHCP” 后的“*”,按[Space]键取消选择,然后在“Static IP”后输入IP地址“192.168.0.10”,在“Netmask”后输入掩码“255.255.255.0”。然后按Tab键将光标移至“OK”按钮按回车键,保存网卡设置。 (3)回到网卡设备选择界面,移动光标至“Quit”按回车。回到工具选择界面,选择“Firewall configration”(防火墙配置)选项按回车,出现防火墙配置界面,移动光标至“Disabled”,并按【Space】键选择此项。 (4)移动光标至“Customize”按钮按回车,出现防火墙自定义配置界面,选中“www” 选项。最后关闭此程序。 (5)为让系统设置起效,重启计算机。 3.测试Apache服务器。 在Windows计算机中启动IE浏览器,在地址栏中输入RHEL Server5主机的IP地址,将显示/var/www/html目录下index.html文件的内容。 二、配置个人Web站点。 1.配置Apach服务器,允许Linux用户架设其个人Web站点。 超级用户首先备份配置文件httpd.conf,输入命令“cp /etc/httpd/conf/httpd.conf /etc/httpd/conf/httpd.back”,以保证即使Apache服务器的配置错误也可以恢复初始设置。(1)输入“vi /etc/httpd/conf/httpd.conf”。 (2)在vi 命令模式下输入“/mod_userdir.c”按回车,查找文件中的“mod_userdir.c”字符

LAMP(Linux+Apache+Mysql+PHP)优化技巧

LAMP(Linux+Apache+Mysql+PHP)优化技巧 [LAMP平台] LAMP这个词的由来最早始于德国杂志“c't Magazine”,Michael Kunze在1990年最先把这些项目组合在一起创造了LAMP的缩写字。这些组件虽然并不是开开始就设计为一起使用的,但是,这些开源软件都可以很方便的随时获得并免费获得。这就导致了这些组件经常在一起使用。在过去的几年里,这些组件的兼容性不断完善,在一起的应用情形变得非常普便。为了改善不同组件之间的协作,已经创建了某些扩展功能。目前,几乎在所有的Linux发布版中都默认包含了“LAMP stack”的产品。这些产品组成了一个强大的Web应用程序平台LAMP 平台由四个组件组成,呈分层结构。每一层都提供了整个软件栈的一个关键部分:Linux:Linux 处在最低层,提供操作系统。其他每个组件实际上也在Linux 上运行。但是,并不一定局限于Linux,如有必要,其他组件也可以在Microsoft® Windows®、Mac OS X 或UNIX® 上运行。 Apache:次低层是Apache,它是一个Web 服务器。Apache 提供可让用户获得Web 页面的机制。Apache 是一款稳定的、支持关键任务的服务器,Internet 上超过65%的网站都使用它作为Web 服务器。PHP 组件实际上是在Apache 中,动态页面可以通过Apache 和PHP 创建。 MySQL:MySQL 提供LAMP 系统的数据存储端。有了MySQL,便可以获得一个非常强大的、适合运行大型复杂站点的数据库。在Web 应用程序中,所有数据、产品、帐户和其他类型的信息都存放在这个数据库中,通过SQL 语言可以很容易地查询这些信息。 PHP:PHP 是一门简单而有效的编程语言,它像是粘合剂,可以将LAMP 系统所有其他的组件粘合在一起。您可以使用PHP 编写能访问MySQL 数据库中的数据和Linux 提供的一些特性的动态内容。 [检测工具] 为了得到完整的调试结果,建议你采用ApacheBench 或者httperf之类的软件。如果你对非LAMP 架构的服务器测试有兴趣的话,建议你采用微软的免费软件:Web Application Stress Tool(需要NT 或者2000)。(其它服务器测试工具)检测Apache ,采用top d 1 显示所有进程的CPU 和内存情况。另外,还采用apachectl status 命令 [硬件优化] 1、升级硬件的一般规则:对于PHP 脚本而言,主要的瓶颈是CPU ,对于静态页面而言,瓶颈是内存和网络。一台400 Mhz 的普通奔腾机器所下载的静态页面就能让T3 专线(45Mbps)饱和。 2、采用hdparm 来优化磁盘,一般能提升IDE 磁盘读写性能200%,但是对SCSI 硬盘也有效果。(不同类型的硬盘对比) [策略优化] 3、Apache 处理PHP 脚本的速度要比静态页面慢2-10 倍,因此尽量采用多的静态页面,少的脚本。 4、PHP 脚本如果不做缓冲,每次调用都需要编译,因此,安装一个PHP 缓冲产品能提升25-100% 的性能。 5、如果你采用了Linux 系统,建议升级内核到2.4,因为静态页面由内核服务。 6、另外一项缓冲技术是把不常修改的PHP 页面采用HTML 缓冲输出。 7、不要在Web 服务器上运行X-Windows ,关掉没有必要运行的进程。 8、如果能够用文本就不要用图像,尽量减小图片的尺寸。

Apache服务器的安装与配置

Apache服务器的安装与配置 一、安装Apache 双击可执行文件apache_1.3.33-win32-x86-no_src.exe,将Apache服务器软件安装至C:\Apache目录下。 二、设置C:\apache\conf\httpd.donf文件 修改Apache的核心配置文件c:\apache\conf\httpd.conf(说明一点:“#”为Apache的注释符号)。修改方法如下: 1、寻找到ServerName。这里定义你的域名。这样,当Apache Server运行时,你可以在浏览器中访问自己的站点。如果前面有#,记得删除它。 2、寻找到ServerAdmin。这里输入你的E-Mail地址。 (以上两条在安装时应该已经配置好了,所以不必改动,这里介绍一下,主要是为了日后的修改) 3、寻找到。向下有一句Options,去掉后面所有的参数,加一个All(注意区分大小写!A 大写,两个l小写。下同。);接着还有一句Allow Override,也同样去掉后面所有的参数,加一个All。 AllowOverride All Options All Order allow,deny Allow from all 4、寻找到DocumentRoot。这个语句指定你的网站路径,也就是你主页放置的目录。你可以使用默认的,也可以自己指定一个,但记住,这句末尾不要加“/”。此外注意,路径的分隔符在Apache Server里写成“/”。(将DocumentRoot "C:/apache/htdocs"改为DocumentRoot "C:/try") 5、寻找到DirectoryIndex。这就是你站点第一个显示的主页,在index.html的后面加入index.htm index.php index.php3 index.cgi index.pl。注意,每种类型之间都要留一空格!这里添加好了,以后就不用再麻烦了。 6、port(端口号),如果没安装IIS的话,就保持80不要变,否则,就要改一下(因为IIS的WEB服务占据了80),可以改成81等等。 三、Apache的手动启动和停止 Net start apache启动apache服务,Net stop apache停止apache服务。

Apache服务器配置实验报告

在Linux下配置Apache服务器 一、实验目的 完成本次实训,将能够: ●配置基本的Apache服务器 ●配置个人用户Web站点。 ●配置虚拟目录别名功能。 ●配置主机访问控制。 ●配置用户身份验证功能.。 ●配置基于IP地址的虚拟主机. 二、实验环境 1、RedHat Linux4AS. 2、Apache 2.0 三、实验内容 1.配置基本的Apache服务器 2.配置个人用户Web站点。 3.配置虚拟目录别名功能。 4.配置主机访问控制。 5.配置用户身份验证功能.。 6.配置基于IP地址的虚拟主机。 四、实验要求 在Linux操作系统下配置Apache服务器。 五、注意事项 1.在修配置文件下注意区分大小写、空格。 2.在每次重新开机后都必须启动Apachec服务器。 3.在每次修改完主配置文件后保存起来,必须重启Apachec服务器,如果不重启会 导致配置无效,最终导致实验失败。 六、实验步骤 1、检测是否安装了Apache软件包: A、首先为服务器网卡添加一个固定的IP地址。 B、在Web浏览器的地址栏中输入本机的IP地址,若出现Test Page测试页面(该 网页文件的默认路径为var/www/html/index.html)如下图1所示就说明Apache 已安装并已启动。

另一种方法是使用如下命令查看系统是否已经安装了Apache软件包: [root@rhe14~]# rpm –aq | grep httpd Httpd-suexec-2.0.52-9.ent Httpd-manual-2.0.52-9.ent System-config-httpd-1.3.1-1 Httpd-devel-2.0.52-9.ent 出现以上内容表明了系统已安装Apache软件包。 2、安装Apache软件包 超级用户(root)在图形界面下选择“应用程序”|“系统设置”|“添加/删除应用程序”命令,选择“万维网服务器”软件包组,在单击“更新”按钮就可以安装与Apache相关的软件包。 3、Apache的基本配置 (1)打开终端输入[root@rhe14~]# /etc/rc.d/init.d/httpd start //启动Apache 或者 [root@rhe14~]# apachectl start //启动Apache [root@rhe14~]# apachectl stop //停止Apache服务 [root@rhe14~]# apachectl restart //重启Apache服务 [root@rhe14~]# apachectl configtest //测试Apache服务器配置语法(2)在httpd.conf将Apache的基本配置参数修改、将一些注释的语句取消注释,或将某些不需要的参数注释掉。 (3)将包括index.html在内的相关网页文件复制到指定的Web站点根目下(var/www/html/index.html) (4)重启httpd进程 (5) 在Web浏览器下输入配置的ip地址出现如下图2,那表明基本配置成功了:

三大WEB服务器对比(apache_,lighttpd,nginx)

三大WEB服务器对比分析(apache ,lighttpd,nginx)一.软件介绍(apache lighttpd nginx) 1. lighttpd Lighttpd是一个具有非常低的内存开销,cpu占用率低,效能好,以及丰富的模块等特点。lighttpd 是众多OpenSource轻量级的web server中较为优秀的一个。支持FastCGI, CGI, Auth, 输出压缩(output compress), URL重写, Alias等重要功能。 Lighttpd使用fastcgi方式运行php,它会使用很少的PHP进程响应很大的并发量。 Fastcgi的优点在于: ·从稳定性上看, fastcgi是以独立的进程池运行来cgi,单独一个进程死掉,系统可以很轻易的丢弃,然后重新分配新的进程来运行逻辑. ·从安全性上看, fastcgi和宿主的server完全独立, fastcgi怎么down也不会把server搞垮, ·从性能上看, fastcgi把动态逻辑的处理从server中分离出来, 大负荷的IO处理还是留给宿主server, 这样宿主server可以一心一意作IO,对于一个普通的动态网页来说, 逻辑处理可能只有一小部分, 大量的图片等静态IO处理完全不需要逻辑程序的参与(注1) ·从扩展性上讲, fastcgi是一个中立的技术标准, 完全可以支持任何语言写的处理程序(php,java,python...) 2.apache apache是世界排名第一的web服务器, 根据netcraft(https://www.sodocs.net/doc/514691055.html,)所作的调查,世界上百分之五十以上的web服务器在使用apache. 1995年4月, 最早的apache(0.6.2版)由apache group公布发行. apache group 是一个完全通过internet进行运作的非盈利机构, 由它来决定apache web服务器的标准发行版中应该包含哪些内容. 准许任何人修改隐错, 提供新的特征和将它移植到新的平台上, 以及其它的工作. 当新的代码被提交给apache group时, 该团体审核它的具体内容, 进行测试, 如果认为满意, 该代码就会被集成到apache的主要发行版中. apache 的特性: 1) 几乎可以运行在所有的计算机平台上. 2) 支持最新的http/1.1协议 3) 简单而且强有力的基于文件的配置(httpd.conf). 4) 支持通用网关接口(cgi) 5) 支持虚拟主机.

F5配置技术文档

目前,许多厂商推出了专用于平衡服务器负载的负载均衡器,如F5 Network公司的BIG-IP,Citrix公司的NetScaler。F5 BIG-IP LTM 的官方名称叫做本地流量管理器,可以做4-7层负载均衡,具有负载均衡、应用交换、会话交换、状态监控、智能网络地址转换、通用持续性、响应错误处理、IPv6网关、高级路由、智能端口镜像、SSL加速、智能HTTP压缩、TCP优化、第7层速率整形、内容缓冲、内容转换、连接加速、高速缓存、Cookie加密、选择性内容加密、应用攻击过滤、拒绝服务(DoS)攻击和SYN Flood保护、防火墙—包过滤、包消毒等功能。 以下是F5 BIG-IP用作HTTP负载均衡器的主要功能: ①、F5 BIG-IP提供12种灵活的算法将所有流量均衡的分配到各个服务器,而面对用户,只是一台虚拟服务器。 ②、F5 BIG-IP可以确认应用程序能否对请求返回对应的数据。假如F5 BIG-IP后面的某一台服务器发生服务停止、死机等故障,F5会检查出来并将该服务器标识为宕机,从而不将用户的访问请求传送到该台发生故障的服务器上。这样,只要其它的服务器正常,用户的访问就不会受到影响。宕机一旦修复,F5 BIG-IP 就会自动查证应用已能对客户请求作出正确响应并恢复向该服务器传送。 ③、F5 BIG-IP具有动态Session的会话保持功能。 ④、F5 BIG-IP的iRules功能可以做HTTP内容过滤,根据不同的域名、URL,将访问请求传送到不同的服务器。 下面,结合实例,配置F5 BIG-IP LTM v9.x:

①、如图,假设域名https://www.sodocs.net/doc/514691055.html,被解析到F5的外网/公网虚拟IP:61.1.1.3(vs_squid),该虚拟IP下有一个服务器池(pool_squid),该服务器池下包含两台真实的Squid服务器(192.168.1.11和192.168.1.12)。 ②、如果Squid缓存未命中,则会请求F5的内网虚拟IP:192.168.1.3(vs_apache),该虚拟IP下有一个默认服务器池(pool_apache_default),该服务器池下包含两台真实的Apache服务器(192.168.1.21和192.168.1.22),当该虚拟IP匹配iRules规则时,则会访问另外一个服务器池(pool_apache_irules),该服务器池下同样包含两台真实的Apache服务器(192.168.1.23和192.168.1.24)。 ③、另外,所有真实服务器的默认网关指向F5的自身内网IP,即192.168.1.2。 ④、所有的真实服务器通过SNAT IP地址61.1.1.4访问互联网。 详细配置步骤: 一、登录到F5 BIG-IP管理界面: 1、初次使用: ①、打开F5 BIG-IP电源,用一根网线(直连线和交叉线均可)连接F5 BIG-IP的3.1管理网口和笔记本电脑的网口,将笔记本电脑的IP地址配置为“192.168.1.*”,子网掩码配置为“255.255.255.0”。 ②、用浏览器访问F5 BIG-IP的出厂默认管理IP地址https://192.168.1.245或https://192.168.245.245 ③、输入出厂默认用户名:admin,密码:admin ④、点击Activate进入F5 BIG-IP License申请与激活页面,激活License。 ⑤、修改默认管理密码。 2、以后登录: 通过F5 BIG-IP的自身外网IP登录。 ①、假设设置的F5自身外网IP为61.1.1.2,就可以通过https://61.1.1.2/登录。 ②、还可以通过SSH登录,用户名为root,密码跟Web管理的密码相同。 二、创建两个VLAN:internal和external,分别表示内网和外网。 ★创建VLAN演示页面:https://www.sodocs.net/doc/514691055.html,/book/f5/vlan_create.htm ★VLAN列表演示页面:https://www.sodocs.net/doc/514691055.html,/book/f5/vlan_list.htm 1、创建VLAN:internal(内网) 在“Network→VLANs”页面点击“create”按钮: ①、Name栏填写:internal(填一个英文名称) ②、Tag栏填写:4093(填一个数字) ③、Interfaces栏:将Available列的“1.1”拉到Untagged列。1.1表示F5 BIG-IP的第一块网卡。 2、创建VLAN:external(外网) 在“Network→VLANs”页面点击“create”按钮创建VLAN: ①、Name栏填写:internal(填一个英文名称)

apache服务器启动失败的解决方法

安装apache之后,桌面右下角出现apache是红色的,这意味着apache没有启动,鼠 标移至任务栏Apache 服务图标显示“No services installed”,解决方法: 1.找到你的apache服务器的安装目录(我的安装目录在E盘) 2.点击电脑左下角“开始”→“运行”→输入“cmd”→默认是C:\Documents and Settings\Administrator> 3.现在我们将默认C:\Documents and Settings\Administrator>改为我们的Apache安装目录,命令如下:C:\Documents and Settings\Administrator>E:按回车键,然后键入安装目录中的bin地址: E:\>cd E:\Apache2.2\bin 按回车键,然后键入命令添加apache服务器: E:\>cd E:\Apache2.2\bin>httpd.exe -k install -n apache2 好了,现在我们已经添加apache这个服务了,接下来是启动服务(net start apache2):E:\>cd E:\Apache2.2\bin>net start apache2 然后按回车键,apache服务器就启动了。 卸载apache的命令是:E:\>cd E:\Apache2.2\bin>httpd -k uninstall(卸载apache) 最后测试apache是否安装成功,在IE地址栏输入:http://localhost:8080/(我的端口是8080)如果端口号是80则不用加端口号,直接在地址栏输入http://localhost/ 如果页面中出现“It Works”,则意味着你的apache安装成功了。

Apache2.2安全配置和性能优化

Apache2.2安全配置和性能优化 一、Apache禁止目录遍历 将Options Indexes FollowSymLinks中的Indexes 去掉,就可以禁止Apache 显示该目录结构。Indexes 的作用就是当该目录下没有index.html文件时,就显示目录结构。 二、apache 隐藏版本信息 1.隐藏Apache版本信息 测试默认apache 的状态信息 [root@1314it conf]# curl -Is localhost HTTP/1.1 200 OK Date: Tue, 16 Nov 2010 04:20:15 GMT Server: Apache/2.2.3 (CentOS) DAV/2 PHP/5.1.6 mod_perl/2.0.4 Perl/v5.8.8 X-Powered-By: PHP/5.1.6 Connection: close Content-Type: text/html; charset=GB2312 [root@1314it conf]# 修改主配置文件httpd.conf ServerSignature Off ServerTokens Prod 重启apache 测试 测试隐藏版本号后apache 的状态信息 [root@1314it conf]# curl -Is localhost HTTP/1.1 200 OK Date: Tue, 16 Nov 2010 04:21:41 GMT Server: Apache X-Powered-By: PHP/5.1.6 Connection: close Content-Type: text/html; charset=GB2312

Apache服务器配置技巧

1、如何设置请求等待时间 在httpd.conf里面设置: TimeOut n 其中n为整数,单位是秒。 设置这个TimeOut适用于三种情况: 2、如何接收一个get请求的总时间 接收一个post和put请求的TCP包之间的时间 TCP包传输中的响应(ack)时间间隔 3、如何使得apache监听在特定的端口 修改httpd.conf里面关于Listen的选项,例如: Listen 8000 是使apache监听在8000端口 而如果要同时指定监听端口和监听地址,可以使用: Listen 192.170.2.1:80 Listen 192.170.2.5:8000 这样就使得apache同时监听在192.170.2.1的80端口和192.170.2.5的8000端口。 当然也可以在httpd.conf里面设置: Port 80 这样来实现类似的效果。 4、如何设置apache的最大空闲进程数 修改httpd.conf,在里面设置: MaxSpareServers n 其中n是一个整数。这样当空闲进程超过n的时候,apache主进程会杀掉多余的空闲进程而保持空闲进程在n,节省了系统资源。如果在一个apache非常繁忙的站点调节这个参数才是必要的,但是在任何时候把这个参数调到很大都不是一个好主意。 同时也可以设置: MinSpareServers n 来限制最少空闲进程数目来加快反应速度。 5、apache如何设置启动时的子服务进程个数 在httpd.conf里面设置: StartServers 5 这样启动apache后就有5个空闲子进程等待接受请求。 也可以参考MinSpareServers和MaxSpareServers设置。 6、如何在apache中设置每个连接的最大请求数 在httpd.conf里面设置: MaxKeepAliveRequests 100 这样就能保证在一个连接中,如果同时请求数达到100就不再响应这个连接的新请求,保证了系统资源不会被某个连接大量占用。但是在实际配置中要求尽量把这个数值调高来获得较高的系统性能。 7、如何在apache中设置session的持续时间 在apache1.2以上的版本中,可以在httpd.conf里面设置: KeepAlive on KeepAliveTimeout 15 这样就能限制每个session的保持时间是15秒。session的使用可以使得很多请求都可以通过同一个tcp

apache实验

RHCE实验文档— APACHE配置 实验一: 实现安全的APACHE( https ) 实验环境: Redhat 6.0平台 软件包: httpd-2.2.15-5.el6.x86_64.rpm mod_ssl.x86_64 1:2.2.15-5.el6.rpm 实验要求: 搭建一个基本的web服务,并且能够实现通过https协议访问. 步骤一: 安装软件包 [root@station ~]# yum -y install httpd mod_ssl 步骤二: 查看配置文件中证书路径是否启用. [root@station ~]# vim /etc/httpd/conf.d/ssl.conf # certificate can be generated using the genkey(1) command. SSLCertificateFile /etc/pki/tls/certs/localhost.crt –公钥 # Server Private Key: # If the key is not combined with the certificate, use this # directive to point at the key file. Keep in mind that if # you've both a RSA and a DSA private key you can configure # both in parallel (to also allow the use of DSA ciphers, etc.) SSLCertificateKeyFile /etc/pki/tls/private/localhost.key –私钥 注:红色字体分别指出了公钥和私钥的路径,在企业六中默认自动创建了这两个证书. 可以直接使用这两个自签证书. 步骤三:创建用于测试的主页面: [root@station ~]# echo "this is test for https" >/var/www/html/index.html 步骤四:启动服务并将服务设置为开机自启动 [root@station ~]# service httpd start Starting httpd: [ OK ] [root@station ~]# chkconfig httpd on 步骤五:测试 总结:实验到第五步就已经实现了一个最基本的https的web服务器,在实际生产环境中,证书部分可以通过搭建CA证书服务器来签发,或者向第三方的权威CA服务器来申请,从而提高证书的可信性.如果使用第三方的证书时,大家需要注意调整证书的路径. 实验二:创建基于不同域名的虚拟主机 实验环境: Redhat 6.0平台 软件包: httpd-2.2.15-5.el6.x86_64.rpm

apache优化

mod_jk的优化配置 Optimal mod_jk configuration There are many potential problems associated with the default configuration of mod_jk. Let's say it is perfectly adequate for a very low traffic website, but when pushing any moderate to high load to mod_jk, there will be connection problems. This is not due to any bug in mod_jk whatsoever, however, it is because the default configuration makes no assumption about your existing hardware or potential load, so, therefore, it is not tuned accordingly. Note that the configuration recommendations here are optimal as a base configuration to avoid many of the common problems users experience with mod_jk. There exist many other useful optimizations, but these depend on the environment and web application in use. See https://www.sodocs.net/doc/514691055.html,/connectors-doc/reference/workers.html for details on all available mod_jk properties. Let's take a look at a typical default configuration for Apache/Tomcat/mod_jk: workers.properties worker.list=loadbalancer,status worker.node1.port=8009 worker.node1.host=https://www.sodocs.net/doc/514691055.html, worker.node1.type=ajp13 worker.node1.lbfactor=1 worker.node2.port=8009 worker.node2.host= https://www.sodocs.net/doc/514691055.html, worker.node2.type=ajp13 worker.node2.lbfactor=1 worker.loadbalancer.type=lb worker.loadbalancer.balance_workers=node1,node2 worker.status.type=status JBoss Web's (Tomcat) server.xml AJP snippet: Apache's httpd.conf: StartServers 8 MinSpareServers 5

软件负载均衡配置方案V1.0

在线考试系统负载均衡配置方案 目录 方案背景 (3)

运行环境要求 (3) 硬件要求 (3) 软件要求 (3) 配置方案 (4) 软硬件负载均衡比较 (7)

方案背景 在线考试系统的软件和需求分析已经结束。针对于此,给出此配置方案,硬件的要求和运行效果都将详细列明指出。 运行环境要求 数据库服务器内存要求:建议16GB以上 客户端内存要求:建议256M以上 应用服务器内存要求:建议8G以上 硬件要求 软件要求 应用服务器: ●OS:Microsoft Windows 2000 Server (Advance Server) ●Microsoft Windows 2003 Server 数据库服务器: DBMS:SQL SERVER2008

客户端: OS:Windows 2000、Windows XP、Windows Vista 浏览器:IE6以上 配置方案 一台服务器: 一台服务器的情况,硬件配置: 用户同时在线数:2000-5000。最优化最稳定的范围在3500人左右。 五台服务器软件负载均衡 用户同时在线数:6000-15000。最优化最稳定的范围在7000人左右。 如果五台服务器支撑在线测试系统的运行,那么会考虑到采用apache+tomcat的方式来做负载均衡,确保系统运行的稳定性和准确性。 负载均衡说明图:

五-十台服务器硬件负载均衡

用户同时在线数:6000-40000。最优化最稳定的范围在15000-30000人左右。 如果五台以上服务器支撑在线测试系统的运行(最多十台),那么会考虑到采用硬件的方式来做负载均衡,确保系统运行的稳定性和准确性。 负载均衡说明图:

相关主题