apache服务器笔记 ---配置说明

 Apache服务器设置
一.认识和安装apache
1.认识apache
(1)apache是一种开源软件,是当前最流行web服务器之一
(2)apache支持DSO,可扩展性很强
(3)apache的安全性和稳定性较强
(4)apache目前主要用于发布CGI/PHP程序,也可以结合其他平台来发布JSP程序
2.安装apache
(1)rpm安装方式
  #rpm  -ivh   httpd-.......
  #rpm  -ivh   httpd-devel-.......
  #rpm  -ivh   httpd-manual-.......
(2)编译安装方式
  #groupadd  apache
  #useradd  -g  apache   apache
  #tar  -xzvf   httpd-.......tar.gz
  #cd  httpd-........
  #./configure    --prefix=/usr/local/apache     //指定安装路径
                       --enable-so     //支持dso
                       --enable-md5-shared=all     //编译指定功能为动态模式,不包含proxy,如果需要支持代理功能,则需要加--enable-proxy
  #make
  #make  install
3.启动apache服务
(1)rpm安装的apache
  #service  httpd  start
(2)编译方式安装的apache
  #/apache安装路径/bin/apachectl  start
注:-apache服务的守护进程为httpd,默认监听端口为80
      -可用httpd  -l查看静态模块,用httpd -t检查配置文件的错误,apache的主配置文件名为httpd.conf
二.配置apache功能
1.apache基本配置
 #vi  httpd.conf
(1)设置apache的基本工作参数
 —设置连接超时
timeout  数字
 —设置保持连接
a.keepalive    on/off     //启用保持连接
b.maxkeepaliverequests  数字   //设置每个连接的最大请求
c.keepalivetimeout   数字   //两次请求的最大间隔时间
注:对动态内容的服务器建议关闭keepalive
 —设置MPM
a.prefork MPM (主进程生成子进程,并保持一定数据量的空闲子进程)
 <ifmodule   prefork.c>
startservers  数字    //设置预生成的子进程数
minsparesevers  数字   //设置预生成最小空闲进程数
maxsparesevers  数字  //设置预生成最大空闲进程数
maxrequestsperchild  数字  //设置每个子进程可处理的请求数,0代表无限制,可增加进程的处理请求数
maxclient   数字   //设置服务器的最大并发连接数
serverlimit  数字  //设置prefork模块,并发连接数的最高极限,maxclients的值小于等于serverlimit
  </ifmodule>
b.worker  MPM
 <ifmodule  worker.c>
startserver  数字    //设置预生成的子进程数
threadsperchild  数字   //设置每个子进程数预生成的线程数
minsparethreads  数字  //设置最小空闲线程数
maxsparethreads  数字  //设置最大空闲线程数
maxclient  数字   //设置所有子进程的线程最大总数
threadlimit  数字  //设置线程数的最高极限
maxrequestsperchild   数字  //设置每个子进程的最大进程数
serverlimit   数字   //设置最大的子进程数
  </ifmodule>
注:默认采用prefork模块,如果在编译安装时加--with-mpm选项可指定相应mpm模式
 —可用httpd  -l命令获取当前apache采用哪种模式,prefork模式的访问速度要比worker要快,但需要大量的cpu和内存资源,对并发访问大的服务器应该采用worker模式
 —设置监听地址及端口
  listen   [IP地址:]数字
注:如果apache需要使用多个端口,则必须写多行listen选项
 —配置加载动态模式 
  loadmodule   模块名   模块文件路径
 —配置服务进程的启动用户和组
  a.user    用户名
  b.group  用户组名
(2)站点发布的基本配置
 —documentroot    “路径”
 设置站点主目录的位置
 —directoryindex  文件名
 指定首页文件名
 —servername    主机名/IP地址[:端口号]
 指定站点的主机名/IP地址
 —<directory "路径">
   .......
  配置命令
   .......
 </directory>
 设置特定目录的相关属性,其中options和allowoverride
a.options  [+|-]  选项
 设置目录的具有哪些特性,主要的特性有:
  execcgi          允许执行CGI脚本
  followsymlinks      允许使用符号连接   
  includes          允许使用服务器包含 
  indexes          允许使用自动生成目录列表   
  all                  所有特性,除multiviews外
b.allowoverride     选项
 确定允许存在于.htaccess文件中的指令类型,主要选项有:
 authconfig   用户验证类指令
 fileinfo        文档控制类指令
 indexes      目录索引控制类指令
 limit           主机访问控制类指令
 options       目录控制类指令
 all              所有指令
 none          不读以.htaccess                                                                                                                                                                                                   注:—可用<location   URL-PATH/URL>.....</location>或<locationmatch   正则表达式>....</localtionmatch>容器配置特定的url的属性
      —可用<file  文件名>.....</files>或<filesmatch  正则表达式>容器配置特定的属性
(3)配置语言和字符集
 —defaultlanguage    语言缩写
  设置所有文件的默认语言
 —addlanguage  语言缩写   扩展名
  设置指定语言所对应的扩展名
 —addcharset    字符集名   扩展名
  添加字符集,设置指定扩展名对应的字符集
 —addefaultcharset   字符集名/off/on
  设置是否在响应头加入默认字符集,建议设为off
2.配置虚拟主机
(1)apache支持的虚拟主机种类
  —基于IP地址虚拟主机
  —基于域名虚拟主机
  —基于端口虚拟主机
  —动态虚拟主机
(2)配置基于IP地址虚拟主机
  —给服务器绑定多个IP地址
  —修改httpd.conf,添加<virtualhost    ip地址> .....</virtualhost>
 #vi  httpd.conf
   ......... 
  <virtualhost    ip地址>            
   ........
   documentroot    "路径"
   directoryindex     文件名
   .......
  </virtualhost>
 —重启服务
(3)配置基于域名的虚拟主机
 —申请多个域名指定服务器
 —修改httpd.conf
  #vi   httpd.conf
   .......... 
  namevirtualhost   IP地址/*      //指定域名对应的ip地址
   ..........
 <virtualhost  主机名>
  documentroot    "路径"
  directoryindex  文件名
  servername   主机名
   .........
  </virualhost>
   ........
 —重启服务
(4)配置动态虚拟主机
 —基于IP地址的动态虚拟主机
a.给服务器绑定多个IP地址
b.修改httpd.conf
   #vi  httpd.conf
   .........
   virtualdocumentrootip    可变化的路径
   ........
注:可变化的路径就是路径中包含了变量,常用的变量格式如下:
    %N  表示客户机输入的IP地址(域名)的从左向右的第N部分,其中%0代表整个IP地址(域名)
    %-N表示客户机输入的IP地址(域名)的从右到左的第N部分
    %+N表示客户机输入的IP地址(域名)的从左边第N部分到结尾
    %-N+表示客户机输入的IP地址(域名)的从右边第N部分到开头
如: www.abc.com , %0=www.abc.com,%2=abc, %-1=com%, %2+=abc.com  %-2+=www.abc
例如:virtualdocumentrootip    /web/%0
c.重启服务
 —基于域名的动态虚拟主机
a.申请多个域名指向服务器
b.修改httpd.conf
 #vi  httpd.conf
   ...........
  virtualdocumentroot    可变化的路径
   ...........
c.重启服务
注:配置基于域名虚拟主机时必须将usecanonicalname设为off
3.配置用户验证和主机访问控制
(1)主机访问控制
 —主机访问控制的作用
 限制访问站点资源的客户机,设置允许和拒绝访问资源主机
 —主机访问控制的配置命令(这些命令可放directory/files/location容器中,也可以放在.htaccess文件)
  a.order   allow,deny/deny,allow
  控制默认的访问状态与Allow和deny指令生效的顺序
  b.allow  from          all/IP地址/网络号/IP开头的开头
  设置允许访问客户机列表
  c.deny   from          all/IP地址/网络号/IP开头的开头
  设置拒绝访问客户机列表
(2)用户验证
 —用户验证的分类
 a.基本用户验证
 b.摘要用户验证
 —基于文本文件的用户验证配置命令
 a.authtype   basic/digset
  配置用户验证的类型
 b.authname  "字符串"
  配置用户验证的提示信息
 c.authuserfile  文件路径
  配置存放用户口令信息的文件路径
 d.require   user 用户名   //配置允许指定的用户访问资源
    require   group  用户组名  //配置允许指定的用户组访问资源
    require   valid-user    //配置允许所有身份验证的用户访问资源
 e.authgroupfile   文件路径
  配置存放用户组信息的文件路径
 f.satisfy     any/all
  配置主机级别的访问控制和用户认证之间的相互关系
注:这些命令可放directory/files/location容器中,也可以放在.htaccess文件
 —为客户机创建web用户
 #htpasswd   [-c] 用户文件路径及名称   用户名
实例:—创建test用户,存放用户信息文件为/etc/httpd/conf/users
 #htpasswd     /etc/httpd/conf/users    test
注:保证apache的启动用户对用户信息文件具有读权限
4.配置虚拟目录和URL重定向
(1)配置虚拟目录
 —认识虚拟目录
  虚拟目录就是在站点中建立一个链接指向某个物理路径,可用于发布站点主目录以外资源或缩短物理路径
 —虚拟目录配置命令
 a.alias   URL-path    物理路径
  映射URL到文件系统的特定区域
 b.aliasmatch   正则表达式    物理路径
  使用正则表达式映射URL到文件系统
 c.scriptalias   URL-path   物理路径
  映射URL到文件系统的特定区域,允许执行CGI脚本
注:以上配置命令可以在主服务器或虚拟主机中配置
(2)配置URL重定向
 URL重定向指的是修改客户机请求的URL,并将修改后的URL返回给客户机,由客户机重新请求的URL
 —URL重定向的配置
 a.redirect  [状态]  URL-path    URL
  发送一个外部重定向使客户端重定向到一个不同的URL
 b.redirectmath   [状态]  正则表达式
  基于正则表达式匹配对当前的URL发送一个外部重定向
注:以配置命令可以放在主服务器、虚拟主机、directory或.htaccess中
5.配置代理
(1)配置正向代理
 —修改httpd.conf
   #vi   httpd.conf
      .........
    <ifmodule  mod_proxy.c>
      proxyrequests   on     //启用正向代理
      proxyvia   off       //关闭via头的处理
    <proxy   *>        //设置控制代理访问指定资源
     order  deny,allow/allow,deny
     deny   from   .......
     allow   from   .......
    </proxy>
    </ifmodule>
 —重启服务
(2)配置反问代理
    修改 httpd.conf
   #vi     httpd.conf
    ..........
    <ifmodule    mod_proxy.c>
     proxyrequests  off    //启用反向代理
     proxypass    URL-PATH   URL   //将真实的URL映射本地目录下
     proxypassreverse   URL-PATH   URL
    <proxy  *>     //控制代理访问指定资源
     order  deny ,allow/allow,deny
     deny  from  ......
     allow  from  .......
    </proxy>
    </ifmodule>
   ............
 —重启服务
6.配置带宽和并发连接限制
(1)安装bw_mod    //配置带宽    (自动配置apache加载模块)
   #tar  -xzvf   mod_bw-.....
   #cd mod_bw
   #apxs  -i  -a  -c  mod_bw.c
 —带宽限制选项
 a.Bandwidthmodule   on/off
 设置指定客户机最大带宽
 b.Bandwidth    [From]     [bytes/s]
 设置指定客户机最大带宽
 c.MinBandwidth   [From]   [bytes/s]
 设置客户机最小带宽
 d.LargeFilelimit  [Type]   [Minimum   size]   [bytes/s]
 设置访问超出特定大小的某种文件的带宽
 e.Maxconnection    [From]   [Max]
 设置指定客户机的最大并发连接数
 f.Froce Bandwidthmodule  [on/off]
 设置bw模块将应用所有请求
(2)配置并发连接限制
 —安装mod_limitipconn模块 (自动配置apache加载模块)
 #tar  -xjvf  mod_limitipconn-........tar.bz2
 #cd  mod_limiticonn
 #apxs  -i  -a   -c  mod_limitipconn.c
 —并发连接配置选项
 a.Extendedstatus   on/off
  启用apache的扩展状态
 b.Maxconnperip   数字
  设置每个客户机的最大并发连接数
7.配置规则重写
(1)认识规则重写
 规则重写就是web服务器会改写客户机符合特定规则的URL;用于实现资源重定向
(2)规则重写的配置命令
 —rewriteengine   on/off
 设置apache是否启用重写引擎
 —rewriterule
作用:为重写引擎定义重写规则
格式:rewriterule   正则表达式   替代字符串[标记]
正则表达式元字符:
                      .     任意一个单字符                
                   [chars]       字符类:“chars”中的任意一个字符
                   [^chars]      字符类:不在“chars”中的字符
                 text1|text2   选择:text1或text2 
                     ?          前面的字符出现0或1次
                     *          前面的字符出现0或N次 (N>0)
                     +         前面的字符出现1或N次(N>1)
                     ^         锚定到行首
                     $          锚定到行尾
                    \字符     转义字符
 标记:C         连接到下一条件规则 ....
          F          强烈禁URL
          G         强烈废弃URL
          L         结尾规则
          N        跳转到开头,从头再来
          NC      忽略大小写
          P        强制为代理
          R       强制为重定向
实例:rewriterule    ^/$     http://www.sje.cn   [R.L]
 —rewritecond
作用:定义重写发生的条件
格式:rewritecond   字符串   正则表达式    [标记]
字符串所包含一些特殊字符
  a.$N  反向rewriterule中的分组
  b.%N  反向rewritecond中的分组
   c. 服务器变量
           %{HTTP_USER_AGENT}   客户机信息,包括操作系统和浏览器信息
           %{HTTP_HOST} 请求的主机名  
           %{REMOTE_ADDR}  客户机IP地址
           %{REMOTE_HOST}  客户机的主机名
           %{REMOTE_PORT}  客户机连接服务器所有端口
           %{REQUEST_METHOD}  客户机的请求方法
           %{REQUEST_FILENAME} 客户机的请求的文件名
           %{REQUEST_URI}  客户机请求URI
           %{DOCUMENT_ROOT} 服务器的站点主目录
           %{SERVER_NAME}  服务器的名称
           %{SERVER_ADDR}  服务器的IP地址
           %{SERVER_PORT}  服务器的端口号
    特殊比较符号:
          <  小于
          >  大于
          =  等于
          -d  判断是不是存在的目录
          -f  判断是不是存在的普通文件
          -s  判断是不是为非空的普通文件
          -x  判断是不是为可执行的文件
          -l  判断是不是为链接文件
          -U  判断是不是有效的URL
      标记:
          -NC   忽略大小写 
          -OR   或
      实例:rewritecond %{REMOTE_ADDR} ^192.168.3.1
    -rewritebase 
  作用:设置目录级重写的基准URL
  格式:rewritebase  URL-PATH
   (3) 规则重写的应用案例
     -移动站点主目录到站点的/bbs路径下
     rewriteengine on
     rewriterule  ^/$    /bbs [R,L]
     -利用规则重写实现基于域名的虚拟主机
    RewriteEngine on
    RewriteCond   %{HTTP_HOST}    ^www\.abc\.com$
    RewriteRule   ^(.+)     %{HTTP_HOST}$1   [C]
    RewriteRule   ^www\.abc\.com(.*) /web/abc$1
 
    RewriteCond   %{HTTP_HOST}    ^www\.linux\.cn$
    RewriteRule   ^(.+)     %{HTTP_HOST}$1   [C]
    RewriteRule   ^www\.linux\.com(.*) /web/linux$1
三.LAMP环境配置
  1.  使用RPM包配置LAMP环境(模块化)
      (1) 安装apache
        #rpm -ivh  httpd-....
        #rpm -ivh httpd-devel-....
      (2) 安装mysql
        #rpm -ivh mysql-... mysql-server-... mysql-devel-....
      (3) 安装php
        -安装php依赖的组件
       a. libiconv
       b. freetype
       c. libpng
       d. libjpeg
       e. gd
       f. libxml2
       g. libmcrypt
       h. mhash
       i. zlib
        -安装php
       #rpm -ivh php-...
       #rpm -ivh php-mysql-... 
    (4) 安装Zend Optimizer 
       #tar -xzvf ZendOptimizer-3.0.0-linux-glibc21-i386.tar.gz
       #cd ZendOptimizer-3.0.0-linux-glibc21-i386
       #./install.sh
    (5) 启动mysql和apache
        ....
  2. 编译方式配置LAMP(模块化)
    (1) 编译安装apache
        ....
    (2) 编译安装mysql
        ....
    (4) 编译安装php
         -安装php依赖的组件
       a. libiconv
       b. freetype
       c. libpng
       d. libjpeg
       e. gd
       f. libxml2
       g. libmcrypt
       h. mhash
       i. zlib
         -安装php
        #tar -xzvf php-....
        #cd php-...
        #./configure 
         --prefix=/usr/local/lamp/php //指定程序的安装路径
         --with-apxs2=/usr/local/lamp/apache/bin/apxs  //指定apache的apxs工具位置
         --with-mysql=/usr/local/lamp/mysql  //指定mysql的安装位置
         --with-freetype-dir //支持freetype
         --with-jpeg-dir   //支持jpeg
         --with-png-dir //支持png
         --with-zlib  //支持zlie
         --with-libxml-dir  //支持libxml2
         --enable-xml  //支持xml
         --disable-debug //禁用debug
         --with-gd  //支持gd
         --with-gd-native-ttf
      #make
      #make install
      #cp php.ini-dist /usr/local/lamp/php/etc/php.ini
      #vi /usr/local/lamp/apache/conf/httpd.conf //修改apache配置,加载php模块
      ...........
      LoadModule php5_module modules/libphp5.so
      .........
      AddType application/x-httpd-php .php .phtml
      AddType application/x-httpd-php-source .phps
      ......
 (4) 安装Zend Optimizer 
       #tar -xzvf ZendOptimizer-3.0.0-linux-glibc21-i386.tar.gz
       #cd ZendOptimizer-3.0.0-linux-glibc21-i386
       #./install.sh
  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值