apache基本配置管理(一):apache基本原理和特性和简单搭建

一、web服务器apache服务的架构和工作原理:

web服务器                                                                               

  在开始了解Apache前,我们先熟悉一下web服务器,因为apache也是web服务器的一种。

  Web系统由客户端(浏览器)和服务器端两部分组成。Web系统架构也被称为B/S架构。最常见的Web服务器有Apache、IIS等,常用的浏览器有IE、Firefox、chrome等。当你想访问一个网页时,需要在浏览器的地址栏中输入该网页的URL(Uniform Resource Locator,简称为URL)地址,或者是通过超链接链接到该网页。浏览器会向该网页所在的服务器发送一个HTTP请求,服务器会对接收到的请求信息进行处理,然后将处理的结果返回给浏览器,最终将浏览器处理后的结果呈现给用户。

web服务器端的工作流程:

(1)客户端发送请求

  客户端(通过浏览器)和Web服务器建立TCP连接,连接建立以后,向Web服务器发出访问请求(如get)。根据HTTP协议,该请求中包含了客户端的IP地址、浏览器的类型和请求的URL等一系列信息。

(2)服务器解析请求

  Web服务器对请求按照HTTP协议进行解码来确定进一步的动作,设计的内容有三鼐要点:方法(GET)、文档(/sample.html)、和浏览器使用的协议(HTTP/1.1)其中方法告诉服务器应完动的动作,GET方法的含义很明显是:服务器应定位、读取文件并将它返回给客户。

Web服务器软件现在就知道了,它应该找到文件/sample.html,并使用HTTP/1.1协议将内存返回给客户。信息是经过与请求到来相同的连接发出的,所以服务器不需要定们客户或创建新的连接。

(3)读取其它信息(非必须步骤)

  Web服务器根据需要去读取请求的其它部分。在HTTP/1.1下,客户还应给服务器提供关于它的一些信息。元信息(metainformation)可用来描述浏览器及其能力,以使服务器能据此确定如何返回应答。

(4)完成请求的动作

  若现在没有错误出现,WWW服务器将执行请求所要求的动作。要获取(GET)一个文档,web服务器在其文档树中搜索请求的文件(/sample.html)。这是由服务器机器上作为操作系统一部分的文件系统完成的。若文件能找到并可正常读取,则服务器将把它返回给客户。

如果成功:文件被发送出去。

  首先,web服务器发送一个状态码及一些描述信息。既然文件已经找到,则发送状态码200,表示一切都OK ,文档随后发出,因为发送的信息是HTML文档,所以Content-type 取值为text/html。文档长为1024个字节,所以Content-type 取1024 。服务器软件的标识及文件的时间属性信息也被包含在头域中。

如果失败:返回错误指示。

  如果请求的文件没有找到或找到但无法读取,测请求无法满足。这时将返回不同于200的状态码。最常见的问题是请求中的文件名拼写有误,所以服务器无法找到该文件。这种情况下,服务器将发送一个状态码---404 给客户。

(5)关闭文件和网络连接,结束会话。

当文件已被发邮或错误已发出后,web服务器结束整个会话。它关闭打开的的被请求文件,关闭网络端口从而结束网络连接。有关的其它工作则是由客户端来完成的,包括接收数据,并以用户可读的方式呈现出来。这些与服务器无关。

apache架构                                                                             

  Apache 作为历史最悠久的web服务器,一直是web应用系统的首选,是世界上被广泛应用的web 服务器软件,它可以运行在几乎所有广泛使用的计算机平台上,由于其跨平台和安全性被广泛使用,是最流行的web服务器端软件之一,也是流行架构LAMP的重要组成部分。

  作为世界上最流行的Web服务器,Apache遵循的同样是HTTP协议,默认端口号为80。下面来是apache 架构图。


服务器提供服务的方式

网络服务器由于要同时为多个客户提供服务,就必须使用某种方式来支持这种多任务的服务方式。一般情况下可以有三种方式来选择,多进程方式、多线程方式及异步方式。其中,多进程方式中服务器对一个客户要使用一个进程来提供服务,由于在操作系统中,生成一个进程需要进程内存复制等额外的开销,这样在客户较多时的性能就会降低。为了克服这种生成进程的额外开销,可以使用多线程方式或异步方式。在多线程方式中,使用进程中的多个线程提供服务,由于线程的开销较小,性能就会提高。事实上,不需要任何额外开销的方式还是异步方式,它使用非阻塞的方式与每个客户通信,服务器使用一个进程进行轮询就行了。
   
   虽然异步方式最为高效,但它也有自己的缺点。因为异步方式下,多个任务之间的调度是由服务器程序自身来完成的,而且一旦一个地方出现问题则整个服务器就会出现问题。因此,向这种服务器增加功能,一方面要遵从该服务器自身特定的任务调度方式,另一方面要确保代码中没有错误存在,这就限制了服务器的功能,使得异步方式的Web
服务器的效率最高,但功能简单。例如Unix 平台上的thttpd
就是这样的一种服务器,然而由于它提供的功能少,只能是满足少部分人的需要。即便如此,thttpd
每隔一段时间还会出现一些问题,幸运的是,它出问题时从不是进入死循环,而是被操作系统杀死,这样就可以使用一个shell
循环立即重启动thttpd,从而基本不影响Web 服务。
   
   由于多线程方式使用线程进行任务调度,这样服务器的开发由于遵从标准,从而变得简单并有利于多人协作。然而多个线程位于同一个进程内,可以访问同样的内存空间,因此存在线程之间的影响,并且申请的内存必须确保申请和释放。对于服务器系统来讲,由于它要数天、数月甚至数年连续不停的运转,一点点错误就会逐渐积累而最终导致影响服务器的正常运转,因此很难编写一个高稳定性的多线程服务器程序。微软的IIS 就是使用的多线程方式,由于微软聚集了相当多优秀程序员,所以IIS
基本上还是值得信赖的,当然我也遇到过很多系统管理员,他们根据经验定期启动所管理的NT 服务器,以预防不可预料的Web 服务停止现象。
   
   多进程方式的优势就在于稳定性,因为一个进程退出的时候,操作系统会回收其占用的资源,从而使它不会留下任何垃圾。即便程序中出现错误,由于进程是相互隔离的,那么这个错误不会积累起来,而是随着这个进程的退出而得到清除。
   
   预生成进程方式的性能
   由于Apache 是采用的多进程方式提供服务,为了提高性能,Apache 采用了一种特别的方式,即预生成进程模型。分析多进程方式比其他两种方式开销大的主要原因,是对每一次客户请求,都要生成一个子进程以便进行处理,因此为了避免这种开销,可以使用预先生成的进程来提供服务,并且每个进程在提供一次服务之后也不会立即退出,而是仍然保留在系统中,等待下一次请求。
   这里就可以看出,在理想情况下,预先生成的多个进程可以全速回应相应数量的浏览器客户请求,而没有额外的性能开销,因此就完全可以和线程或异步方式相媲美。然而在实际运行当中,由于预先生成的进程毕竟要占用系统资源,如系统内存和CPU 处理能力,
   这样如果预先生成的进程超过需要,性能反而会降低。因此Apache 就采用了这样的一种策略,在系统中保持一定的空闲进程,当空闲进程较少时就自动生成,当空闲进程较多时就让一些进程退出。
   
   由于Apache
采用这样的预生成进程模型,就导致预先要生成多少进程、保留多少空闲进程、一个进程提供多少次服务等等成为与性能密切相关的问题,然而,这些设置都是与具体条件密切相关的。例如,越多的进程需要占用越多的内存,所分得的CPU
处理时间就越少,因此系统的物理内存和CPU 处理能力就决定了进程的最大数量。而Apache
提供的基本配置是为了适应大多数情况,在客户请求较少时也不占用过多资源,因此并不是最高性能的设置。而大多数Web 服务器测试的条件下,服务器的内存、CPU
处理能力都不是问题,甚至内存大到足以将所有要访问的文档都可以放在系统缓冲中,因而无须考虑磁盘处理能力,这种情况和实际应用完全不同。因此,SGI
的一位开发者通过调整设置,并使用他自己对Apache 代码的一些改动,在同一个SGI Origin 200 服务器上使用SPECweb96
进行测试,调整后的服务器可以比原始设置提高10 倍的速度,当然这是针对SPECweb96
这个测试程序进行的调整,在实际使用中不可能会有这样巨大的差别。这至少从侧面说明了测试结果并不是绝对的。
   
   此外,Apache 的另一个特点是它的功能特别丰富,而每种功能通常就需要进行特别的处理,这会影响Apache
的性能,然而对于具体的情况,却不是每种特性都是必要的,因此可以通过减少这些功能来增加性能。此外,操作系统的调整对于增强Apache
的性能也是非常重要的。如何根据服务器的实际情况调整操作系统以及Apache 的参数,这些内容在Apache
的文档中都有非常详细的描述。这些文档包含在每个Apache 安装文件中,也可以直接从它的主页得到。

Apache 2.0 展望
   虽然Apache
服务器使用预生成进程的方式提高了服务器的性能,然而,程方式本身的不足仍然存在,随着访问数量的增多,进程方式比其他两种方式需要消耗更多的内存和CPU
处理能力,这就限制了单台计算机提供更大负载的能力。如果在低端计算机上想服务更多的请求的话,使用异步方式的thttpd
更为适合。例如,一台512MB 内存双CPU的Linux 服务器提供1000 个并发访问时,其负载就会变得相当高,常常会由于内存用光而无法运行程序,这种情况是由于Linux 重视物理内存,不重视交换空间的原因,如果使用同样配置的FreeBSD
作操作系统,情况会有所改变,然而此时由于需要进行内存交换,就无法达到最优性能了。
   因此,这些情况下为了支持更改的负载,完全采用进程方式就不太合适了,而应该利用线程节约资源的优点。
   然而,在即将到来的Apache 2.0 中,一切都会变得更完美,Apache 2.0 将充分考虑到进程带来的稳定性特征,以及线程带来高效率的特点。它会预生成多个进程,而每个进程中使用多个线程提供Web 服务。由于存在多个进程,即使一个进程死了也不会影响整个Web 服务。对于不支持进程的操作系统,如Windows,那么就使用多个线程提供服务,反之也是一样。然而,只有同时支持线程和进程的操作系统,才能充分利用Apache 2.0带来的稳定性和高负载能力。
   事实上当前的Apache 并不是与线程无关,Windows 版本的Apache 是使用线程的,但按照Apache
文档的说法,Windows 版本的Apache 性能并不好,主要原因是它在移植过程中是使用的Windows 的POSIX
子系统,而Windows 本身的有些特性效率更高。而在Apache2.0 中,使用了APR(Apache Portable
Run-time)特性,这种特性对不同的操作系统提供了一个抽象层,以便Apache 能利用Windows 的一些非POSIX 的特性。

Apache2.0在性能上的改善最吸引人.在支持POSIX线程的Unix系统上,Apache可以通过不同的MPM运行在一种多进程与多线程相混合的模式下,增强部分配置的可扩充性能.相比于Apache1.3,2.0版本做了大量的优化来提升处理能力和可伸缩性,并且大多数改进在默认状态下即可生效.但是在编译和运行时刻,2.0也有许多可以显著提高性能的选择.

MPM(Multi-ProcessingModules,多道处理模块)是Apache2.0中影响性能的最核心特性.
我主要来说一下prefork和worker工作模式。
      prefork的工作原理

如果不用“——with-mpm”显式指定某种MPM,prefork就是Unix平台上缺省的MPM.它所采用的预派生子进程方式也是Apache1.3中采用的模式.prefork本身并没有使用到线程,2.0版使用它是为了与1.3版保持兼容性;另一方面,prefork用单独的子进程来处理不同的请求,进程之间是彼此独立的,这也使其成为最稳定的MPM之一.

prefork的工作原理是,控制进程在最初建立“StartServers”个子进程后,为了满足MinSpareServers设置的需要创建一个进程,等待一秒钟,继续创建两个,再等待一秒钟,继续创建四个……如此按指数级增加创建的进程数,最多达到每秒32个,直到满足MinSpareServers设置的值为止.这就是预派生(prefork)的由来.这种模式可以不必在请求到来时再产生新的进程,从而减小了系统开销以增加性能.

worker的工作原理

相对于prefork,worker是2.0版中全新的支持多线程和多进程混合模型的MPM.由于使用线程来处理,所以可以处理相对海量的请求,而系统资源的开销要小于基于进程的服务器.但是,worker也使用了多进程,每个进程又生成多个线程,以获得基于进程服务器的稳定性.这种MPM的工作方式将是Apache2.0的发展趋势.

worker的工作原理是,由主控制进程生成“StartServers”个子进程,每个子进程中包含固定的ThreadsPerChild线程数,各个线程独立地处理请求.同样,为了不在请求到来时再生成线程,MinSpareThreads和MaxSpareThreads设置了最少和最多的空闲线程数;而MaxClients设置了所有子进程中的线程总数.如果现有子进程中的线程总数不能满足负载,控制进程将派生新的子进程.

Worker模式下所能同时处理的请求总数是由子进程总数乘以ThreadsPerChild值决定的,应该大于等于MaxClients.如果负载很大,现有的子进程数不能满足时,控制进程会派生新的子进程.默认最大的子进程总数是16,加大时也需要显式声明ServerLimit(最大值是20000)

需要注意的是,如果显式声明了ServerLimit,那么它乘以ThreadsPerChild的值必须大于等于MaxClients,而且MaxClients必须是ThreadsPerChild的整数倍,否则Apache将会自动调节到一个相应值(可能是个非期望值).
   
   采用传统的生成子进程的方式来提供服务的Apache,适合服务比较复杂的情况,但性能没有单进程的服务器高,尤其在高负载的情况下更是如此。

对于重负载的Apache专业服务器,可以简单的将以上SpareServers、StartServers、MaxClients四值设相同。

Squid是单进程的服务器,处理静态页面比Apache提高一个数量级。同样,Windows平台的IIS在静态页面上的处理性能也较Apache高几倍的性能(但不如Apache稳定)。
   如有两台Apache服务器,第一个Apache服务器只提供静态内容和代理服务,可将MaxClients设置较大。第二个Apache服务器要提供消耗处理器能力的动态网页服务,要将MaxClients设置较小。

因此,应充分利用Apache的原理特性及工作平台,合理地配置以下参数,在运行时动态调整,以使Apache达到最合理的状态:

MaxKeepAliveRequests 100
   # 一次连接可以进行的HTTP请求的最大请求次数(比如客户一次连接中请求几十个页面)。

MinSpareServers 5
   MaxSpareServers 10
   # Apache预先生成多个空余的子进程驻留系统中,用于处理客户请求。两个参数用于设置最小的空余子进程数量及最多的空闲子进程数量。

StartServers 5
   # 设置httpd启动时启动的子进程数量。这个参数应设置为前两个值之间的一个数值。小于或大于前两个数值都没有意义。

MaxClients 150
   # 服务器支持的最大并发访问的客户数。
   # 应根据服务器的物理内存及处理器动态调整。

MaxRequestsPerChild 30
   # 每个子进程处理的服务请求次数。超过此值后,子进程副本退出,重新由原始的htttd进程中重新复制一个干净的副本,以提高系统的稳定性。
   # 对于静态页面,产生的内存垃圾少,可设置为2000,甚至更高;如服务器载入各种不同的功能模块,产生内存垃圾多,可将此值降低。
   # 对于高稳定的系统,如FreeBSD,可设成1000,或更高。

Apache服务器拥有以下特性:

  •   支持最新的HTTP/1.1通信协议。Apache是最先使用HTTP/1.1协议的Web服务器之一,它完全兼容HTTP/1.1协议并与HTTP/1.0协议向后兼容。Apache已为新协议所提供的全部内容做好了必要的准备。
  •   支持多计算机平台。Apache几乎可以在所有的计算机操作系统上运行,包括主流的UNIX、Linux及Windows操作系统。
  •   拥有简单而强有力的基于文件的配置过程。配置文件简单,易操作。用户可以通过直接修改Apache的配置文件信息来修改Apache,操作起来十分方便。
  •   支持实时监视服务器状态和定制服务器日志。Apache在记录日志和监视服务器自身运行状态方面提供了很大的灵活性,可以通过Web浏览器来监视服务器的状态,也可以根据自己的需要来定制日志。
  •   支持多种方式的HTTP认证。
  •   支持Web目录修改。用户可以使用特定的目录作为Web目录。
  •   支持CGI脚本,如Perl、PHP等。
  •   支持服务器端包含指令(SSI)。
  •   支持安全Socket层(SSL)。
  •  支持FastCGI。
  •   支持虚拟主机。即通过在一台服务器上使用不同的主机名来提供多个HTTP服务。Apache支持基于IP、主机名和端口号三种类型的虚拟主机服务。
  •   跟踪用户会话。当用户浏览基于Apache的Web站点时,可以通过Apache的mod_usertrack模块对其进行跟踪。
  •   支持动态共享对象。Apache的模块可在运行时动态加载,这就意味着这些模块可以被装入服务器进程空间,从而减少系统的内存开销。
  •   支持多进程。当负载增加时,服务器会快速生成子进程来处理,从而提高系统的响应能力。
  •   支持第三方软件开发商提供的功能模块。比如Apache加载mod_jserv模块后可以支持Java Servlet,这样就可以运行Java应用程序了。
  •   支持多线程和多进程混合模型的MPM。 当MPM类型指定为worker时,由于是使用线程来处理,所以可以处理海量的请求,而系统资源的开销要小于基于进程的服务器。
  • 支持实时监视服务器状态和定制服务器日志
  • 支持通用网关接口
  • 支持基于IP和基于域名的虚拟主机
  • 集成代理服务器模块

Apache 工作模拟

  Apache 2.X  支持插入式并行处理模块,称为多路处理模块(MPM)。在编译apache时必须选择也只能选择一个MPM,对类UNIX系统,有几个不同的MPM可供选择,它们会影响到apache的速度和可伸缩性。

  Worker MPM : 使用多个子进程,每个子进程中又有多个线程。每个线程处理一个请求,该MPM通常对高流量的服务器是一个不错的选择。因为它比prefork MPM需要更少的内存且更具有伸缩性。比较适合负载均衡的场合。

  Prefork MPM : 使用多个子进程,但每个子进程不包含多线程。每个进程只处理一个连接。在许多系统上它的速度和worker MPM一样快,但是需要更多的内存。这种无线程的设计在某些性况下优于worker MPM,因为它可在应用于不具备线程安全的第三方模块上(如 PHP3/4/5),且在不支持线程调试的平台上易于调试,另外还具有比worker MPM更高的稳定性。

二、apche服务搭建:

A:搭建方式yum 安装apache

默认没有修改apache的http.conf配置文件

实验环境,实验主机为redhat5.8,IP地址为:192.168.137.11

[[email protected] ~]# yum -y install httpd

查看软件是否已经安装

[[email protected] ~]# rpm -qa  httpd
httpd-2.2.3-63.el5

安装完成后查看安装文件:

[[email protected] ~]rpm -ql httpd

对应的文件做一些简单说明:
    服务脚本:/etc/rc.d/init.d/httpd
    脚本配置文件:/etc/sysconfig/httpd
    运行目录:/etc/httpd
    配置文件:
    主配置文件:/etc/httpd/conf/httpd.conf
    扩展配置:/etc/httpd/conf.d/*.conf
    监听的Socket:80/tcp,443/tcp
    文档根目录:/var/www/html
    CGI:/var/www/cgi-bin/
    默认主页:index.html

在实验之前,须确保在httpd.conf配置文件中:

httpd服务监听的端口为80【Listen 80】

开启DocumentRoot "/var/www/html/"

启动服务查看进程和端口状态

[[email protected] ~]# /etc/init.d/httpd start
Stopping httpd:                                            [  OK  ]
Starting httpd: httpd: Could not reliably determine the server‘s fully qualified domain name, using 192.168.137.11 for ServerName

[[email protected] ~]# ps -ef | grep httpd
root     11211     1  0 21:56 ?        00:00:00 /usr/sbin/httpd
apache   11212 11211  0 21:56 ?        00:00:00 /usr/sbin/httpd
apache   11213 11211  0 21:56 ?        00:00:00 /usr/sbin/httpd
apache   11214 11211  0 21:56 ?        00:00:00 /usr/sbin/httpd
apache   11215 11211  0 21:56 ?        00:00:00 /usr/sbin/httpd
apache   11217 11211  0 21:56 ?        00:00:00 /usr/sbin/httpd
apache   11218 11211  0 21:56 ?        00:00:00 /usr/sbin/httpd
apache   11219 11211  0 21:56 ?        00:00:00 /usr/sbin/httpd
apache   11220 11211  0 21:56 ?        00:00:00 /usr/sbin/httpd
root     11249 10953  0 22:01 pts/3    00:00:00 grep httpd
[[email protected] ~]# netstat -tulnp | grep 80
tcp        0      0 127.0.0.1:25                0.0.0.0:*                   LISTEN      4280/sendmail       
tcp        0      0 :::80                       :::*                        LISTEN      11211/httpd         
[[email protected] ~]#

访问http://IP:80

如果想自定义内容,可以通过修改文档根目录的内容

[[email protected] html]# pwd

/var/www/html
[[email protected] html]# cat index.html
my first website1 !!
[[email protected] html]#

语法检测

[[email protected] ~]# httpd -t
httpd: Could not reliably determine the server‘s fully qualified domain name, using 192.168.137.11 for ServerName
Syntax OK
[[email protected] ~]#

重新加载配置

[[email protected] ~]# /etc/init.d/httpd reload
Reloading httpd:                                           [  OK  ]
[[email protected] ~]#

B:搭建方式rpm搭建apache



参考地址:

http://blog.tianya.cn/blogger/post_show.asp?BlogID=40003&PostID=4585547

http://www.cnblogs.com/fnng/archive/2012/11/08/2761713.html

时间: 2024-10-11 18:16:13

apache基本配置管理(一):apache基本原理和特性和简单搭建的相关文章

apache基本配置管理(一):apache基本原理和特性

一.web服务器apache服务的架构和工作原理: web服务器                                                                                在开始了解Apache前,我们先熟悉一下web服务器,因为apache也是web服务器的一种. Web系统由客户端(浏览器)和服务器端两部分组成.Web系统架构也被称为B/S架构.最常见的Web服务器有Apache.IIS等,常用的浏览器有IE.Firefox.chrome等

CVE-2014-0050: Exploit with Boundaries, Loops without Boundaries、Apache Commons FileUpload and Apache Tomcat DoS

catalog 1. Description 2. Analysis 3. POC 4. Solution 1. Description MultipartStream.java in Apache Commons FileUpload before 1.3.1, as used in Apache Tomcat, JBoss Web, and other products, allows remote attackers to cause a denial of service (infini

Linux软件包安装2——基于red hat系列的rpm命令安装及apache简单搭建httpserver

rpm命令管理 rpm包是基于red hat系列的二进制安装包.常见的red hat系列的有red hat enterprise Linux.centos.fedora等Linux发行版本 首先介绍一下rpm包的命名方式: httpd-2.2.15-39.el6.centos.i686.rpm   在介绍Linux的rpm命令之前,先说明两个概念: 包全名:类似于上述的完整的命名方式 httpd-2.2.15-39.el6.centos.i686.rpm 包名:httpd   1.rpm安装.升

禁止apache显示目录索引 apache禁止列目录

禁止apache显示目录索引 apache禁止列目录 禁止Apache显示目录索引的常见的3种方法. 要实现禁止Apache显示目录索引,只需将Option中的Indexes去掉即可. 禁止Apache显示目录索引,禁止Apache显示目录结构列表,禁止Apache浏览目录,这是网上提问比较多的,其实都是一个意思. 下面说下禁止Apache显示目录索引的常见的3种方法.要实现禁止Apache显示目录索引,只需将 Option 中的 Indexes 去掉即可.1)修改目录配置:<Directory

Apache和PHP结合 Apache默认虚拟主机

11.14-11.15 Apache和PHP结合 Apache(httpd)的配置文件:/usr/local/apache2.4/conf/httpd.conf. 配置Apache 选择要调用的PHP 因为本机安装了两个版本的PHP,所以需要进行该配置,如果只装一个PHP服务则会默认调用存在的PHP服务(在此选用PHP5). [[email protected] ~]# vim /usr/local/apache2.4/conf/httpd.conf--LoadModule php5_modul

https://hbase.apache.org/devapidocs/org/apache/hadoop/hbase/util/MurmurHash.html

https://hbase.apache.org/devapidocs/org/apache/hadoop/hbase/util/MurmurHash.html https://github.com/spaolacci/murmur3https://github.com/google/guava/blob/master/guava/src/com/google/common/hash/Hashing.java 原文地址:https://www.cnblogs.com/yuanjiangw/p/1

spring4.0.6最新稳定版新特性学习,简单学习教程(一)

Spring Framework 4.0 学习整理. Spring框架的核心部分就是Ioc容器,而Ioc控制的就是各种Bean,一个Spring项目的水平往往从其XML配置文件内容就能略知一二,很多项目,往往是外包公司的项目,配置文件往往是乱七八糟,抱着能跑就行,不报错就行的态度去写,然后在项目中后期发现各种缺失又去一通乱补,其结果就是,整个文档可读性极差,毫无章法.这也不能怪写这个XML的人,拿着苦逼程序员的工资干着架构师的工作必然是这个结果.为了程序员的幸福,我认为有必要来一套简单快速的官方

跟我一起学extjs5(04--MVVM特性的简单说明)

跟我一起学extjs5(04--MVVM特性的简单说明) 下面我们来看一下自动生成的代码中的MVVM架构的关系.Main是一个可视的控件,MainController是这个控件的控制类,MainModel是这个控件的模型类. 在上面的图片中,左边是Main.js中的代码,右边是MainController.js 和 MainModel.js中的代码,可以看到MVVM中的事件绑定和属性值绑定都用到了.上图中红色的部分标注了一个按钮"Button"的handler(即click)事件绑定到

apache基本配置管理三:企业中常见基于repo的apache服务环境搭建

客户背景操作: 客户需要搭建基于http协议的yum源,存放常用自定义开发的服务软件包,客户主机已经安装了自动化运维工具puppet,该puppet架构,基于forman,forman的页面Web提供了forman的web页面管理,使用了默认的80,由于有ssl协议,开启了443端口.所以此时yum源码服务器需要更换默认的服务端口,需要配置基于端口的apache服务 实验环境:redhat6.7  基于yum源的安装方式 一.由于要yum安装软件包,需要挂载ISO,配置repo文件 [[emai