一、相关web配置文件

/home/was/was61/HTTPServer/bin

./apachetl start

/home/was/was61/HTTPServer/conf/httpd.conf

/home/was/was61/HTTPServer/Plugins/config/webserver1/plugin-cfg.xml

 

 

二、httpd的配置文件说明

more /home/was/was61/HTTPServer/conf/httpd.conf

 

2.1、持久连接

PidFile logs/httpd.pid

 

Timeout 150

KeepAlive On

MaxKeepAliveRequests 1000  //持久连接最大请求数

KeepAliveTimeout 10   --> 5   //超时时间

 

2.2MPM参数

多道处理模块MPM,查看系统默认启用的模块

# httpd –l

Compiled in modules:

core.c

      prefork.c  #默认启用prefork模块

      httpd_core.c

      mod_so.c

 

生产上

[WYWEB01]:/home/was/was61/HTTPServer/bin>./apachectl -l

Compiled in modules:

  core.c

  worker.c

  http_core.c

  mod_suexec.c

  mod_so.c

 

 

配置模块信息

ThreadLimit          100   --> 200

ServerLimit           120  --> 20/45

StartServers          10

MaxClients          12000 --> 4000/9000

MinSpareThreads      100  --> 400

MaxSpareThreads      300 --> 600

ThreadsPerChild      100    --> 200

MaxRequestsPerChild  0

 

 

# ThreadLimit: maximum setting of ThreadsPerChild 

每个子进程建立的常驻的执行线程数的最大值,即ThreadsPerChild的最大值

 

# ServerLimit: maximum setting of StartServers   

 服务器启动时建立的子进程数的最大值,即StartServers的最大值

 

# StartServers: initial number of server processes to start

服务器启动时建立的子进程数

 

# MaxClients: maximum number of simultaneous client connections

允许同时伺服的最大接入请求数量(最大线程数量)ServerLimit*ThreadsPerChild。要增加MaxClients,必须增加ServerLimit的值。

 

# MinSpareThreads: minimum number of worker threads which are keptspare

最小空闲线程数,这个MPM将基于整个服务器监视空闲线程数。如果服务器中总的空闲线程数太少,子进程将产生新的空闲线程

 

# MaxSpareThreads: maximum number of worker threads which are keptspare

 最大空闲线程数,这个MPM将基于整个服务器监视空闲线程数。如果服务器中总的空闲线程数太多,子进程将杀死多余的空闲线程。 MaxSpareThreads的取值范围是有限制的。Apache将按照如下限制自动修正你设置的值:worker要求其大于等于 MinSpareThreads加上ThreadsPerChild的和

 

# ThreadsPerChild: constant number of worker threads in each serverprocess

 每个子进程建立的常驻的执行线程数

 

# MaxRequestsPerChild: maximum number of requests a server processserves

每个子进程在生命周期内所能够服务的最多请求的个数(0表示不做限定),到达MaxRequestsPerChild的限制后,子进程将会结束

 

ThreadLimit          200

ServerLimit          45

StartServers          10

MaxClients          9000

MinSpareThreads      400

MaxSpareThreads      600

ThreadsPerChild      200

MaxRequestsPerChild  0

 

2.3、配置监听端口

进入/home/was/was61/HTTPServer/conf目录,用VI编辑httpd.conf文件,增加监听端口号,格式为“Listen 端口号”。注:端口号需要网络组事先分配好,并且不能重复。

 

2.4DSO机制装载的模块

显示:# httpd -DDUMP_MODULES

 

           LoadModule Module_Name/path/to/Module_File  

     可以使用相对路径和绝对路径;相对路径则对于ServerRoot所定义的未知而言;

     修改了需要重启服务service httpdrestart

                

      httpd -M #可以查看系统所有装载模块

 

[WYWEB01]:/home/was/was61/HTTPServer/bin>./apachectl -D DUMP_MODULES


[WYWEB01]:/home/was/was61/HTTPServer/bin>./apachectl –M

 

2.5、指定站点根目录

                 DocumentRoot"/path/to/somewhere"

 

生产上

DocumentRoot "/home/was/was61/HTTPServer/htdocs"

 

2.6、站点路径访问控制

基于本地文件系统路径

                     

                     

eg:

    Options none

    AllowOverride None

    Order allow,deny

    Allow from all

 

    Options none

    AllowOverride None

    Order allow,deny

    Allow from all

 

    Options none

    AllowOverride None

    Order allow,deny

    Allow from all

 

基于URL访问路径做访问控制

                     

                       

eg:

#

#    SetHandler server-info

#    Order deny,allow

#    Deny from all

#    Allow from .example.com

#

 

2.7、于Directory中可用的访问控制

(1) Options

       Indexes: 当访问的路径下无默认的主页面,将所有资源以列表形式呈现给用户;危险,慎用;

       FollowSymlinks: 跳跃符号链接

 

(2) AllowOverride

       支持在每个页面目录下创建.htaccess用于实现对此目录中资源访问时的访问控制功能。

 

2.8、基于IP做访问控制

                 Order allow,deny

                 Deny from172.16.100.17

             Allow from 172.16.0.0/16

 

2.9、定义默认的主页面

             DirectoryIndex

 

 

                  from后面能接受的地址格式:

                        IP, Network Address

                        网络地址格式较为灵活:

                              172.16

                              172.16.0.0

                              172.16.0.0/16

                              172.16.0.0/255.255.0.0

 

2.10、配置日志功能

             ErrorLog "/path/to/error_log"

             LogLevel{debug|info|notice|warn|error|crit|alert|emerg}

 

             LogFormat

             CustomLog "/path/to/access_log" LogFormat_Name

 

                  %h: 客户端地址

                  %l: 远程登录名,通常为-

                  %u: 认证时输入用户名,没有认证时为-

                  %t: 服务器收到用户请求时的时间

                  %r:请求报名的起始行

                  %>s: 响应状态码

                  %b: 响应报文的长度,单位是字节

                  %{HEADER_NAME}i: 记录指定首部对应的值

 

eg:

LogLevel warn

LogFormat "%h %l %u %t \"%r\" %>s %b\"%{Referer}i\" \"%{User-Agent}i\"" combined

LogFormat "%h %l %u %t \"%r\" %>s %b" common

LogFormat "%{Referer}i -> %U" referer

LogFormat "%{User-agent}i" agent

ErrorLog "|/home/was/was61/HTTPServer/bin/rotatelogs/home/was/was61/HTTPServer/logs/error_log.%y%m%d%H 86400 +480"

TransferLog "|/home/was/was61/HTTPServer/bin/rotatelogs/home/was/was61/HTTPServer/logs/access_log.%y%m%d%H 86400 +480"

 

2.11、路径别名

    站点根目录:/www/html

    http://www.magedu.com/p_w_picpaths/logo/new.gif

    此文件位置:/www/html/p_w_picpaths/logo/new.gif

 

    实现URL路径的映射,从而所访问的资源不再依赖于站点根目录;

Alias /URL/"/path/to/somewhere/"

     eg:Alias /icons/"/home/was/was61/HTTPServer/icons/"

 

 

2.12CGI脚本

           CGI脚本路径别名

     CGI动态网关接口

           /var/www/cgi-bin/

                 http://server/cgi-bin/

 

           bashCGI脚本:

                 所有文本都使用命令输出:echo, printf, cat

                 执行程序:命令引用

                 Content-Type:text/html

                

 

                

 

                 FastCGI: 协议

 

2.13、基于用户访问控制

           用户认证

                 基本认证: Basic

                 摘要认证:digest

 

           虚拟用户:仅用于访问某服务或获取某资源的凭证;

                 文本文件:.htpasswd

                 SQL数据库

                 dbm: 数据库引擎,提供API

                 ldap: 轻量级目录访问协议

 

           authenticationprovider: 账号和密码的存储机制;

                 authn

 

           authorization provider:授权

 

           案例:基于文件做访问控制

           (1) 基于用户进行认证

                

                      Options none

                      AllowOverride AuthConfig

                      AuthType Basic

                      AuthName "Admin Area."

                      #AuthBasicProvider file

                      AuthUserFile /etc/httpd/conf/.htpasswd

                      Require valid-user

                

 

                      Requirevalid-user: 文件中所有用户均可访问

                      Require userUSERNAME, ...

 

           (2) 提供认证文件

                 htpasswd

                      -c: 如果此文件事先不存在,则创建;注意,只能在创建第一个用户时使用;

                      -m:以md5的格式编码存储用户的密码信息

                      -D:删除指定用户

 

           (3) 组认证

                

                      Options none

                      AllowOverride AuthConfig

                      AuthType Basic

                      AuthName "Admin Area."

                      #AuthBasicProvider file

                      AuthUserFile /etc/httpd/conf/.htpasswd

                      AuthGroupFile /etc/httpd/conf/.htgroup

                      Require group GROUP_NAME

                            

 

                 组文件:

                      组名:user1 user2 user3

 

2.14、虚拟主机

       虚拟主机:使用不同访问路径

虚拟主机是使用特殊的软硬件技术,把一台真实的物理电脑主机分割成多个的逻辑单元,每个单元都没有物理实体,但是每一个物理单元都能像真实的物理主机一样在网络上工作,具有单独的IP地址(或共享的IP地址)以及完整的Internet服务器功能。

 

                 基于端口

                 基于IP

                 基于主机名

    

           (1) 使用虚拟的前提:取消主服务器

                 注释主服务器的站点根路径指定:DocumentRoot

 

           (2) 定义虚拟主机

                 NameVirtualHostIP:PORT //基于主机名

 

                

                      ServerName

                      DocumentRoot

                      ServerAlias

                      ErrorLog

                      CustomLog

                

 

           配置文件语法检查

                 httpd -t

                 service httpdconfigtest

 

                 配置示例:

                     

                          ServerName www.mageedu.com

                          DocumentRoot "/web/hosta"

                     

 

                     

                          ServerName www.mageedu.com

                          DocumentRoot "/web/hostb"

                     

 

                     

                          ServerName www.mageedu.com

                          DocumentRoot "/web/hostc"

                     

 

 

           测试:elinks

                 -dump: 获取到页面数据后直接退出进程;

eg: elinks [-dump] www.mageedu.com

 

eg

VI编辑httpd.conf文件,增加虚拟主机,格式如下:

端口号>

     DocumentRoot/home/was/was61/HTTPServer/htdocs/成员行主页目录/

注:端口号必须和上面的监听端口号一致,成员行主页目录下须有相关主页内容。

 

     DocumentRoot

/home/was/was61/HTTPServer/htdocs/tianjinbh/

     RewriteEngine on

     RewriteCond %{REQUEST_METHOD}^TRACE

     RewriteRule .* -[F]

     RewriteCond%{REQUEST_METHOD} ^TRACK

     RewriteRule .* -[F]

     RewriteCond%{REQUEST_METHOD} ^OPTIONS

     RewriteRule .* -[F]