edew2 发表于 2015-6-12 08:17:39

Apache之IHS相关配置

一、相关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.2、MPM参数多道处理模块MPM,查看系统默认启用的模块
# httpd –l
Compiled in modules:
core.c      prefork.c#默认启用prefork模块
      httpd_core.c
      mod_so.c

生产上
:/home/was/was61/HTTPServer/bin>./apachectl -l
Compiled in modules:
core.c
worker.c
http_core.c
mod_suexec.c
mod_so.c


配置模块信息
<IfModule worker.c>
ThreadLimit          100   --> 200
ServerLimit         120--> 20/45
StartServers          10
MaxClients          12000 --> 4000/9000
MinSpareThreads      100--> 400
MaxSpareThreads      300 --> 600
ThreadsPerChild      100    --> 200
MaxRequestsPerChild0
</IfModule>


# 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的限制后,子进程将会结束

<IfModule worker.c>
ThreadLimit          200
ServerLimit          45
StartServers          10
MaxClients          9000
MinSpareThreads      400
MaxSpareThreads      600
ThreadsPerChild      200
MaxRequestsPerChild0
</IfModule>

2.3、配置监听端口进入/home/was/was61/HTTPServer/conf目录,用VI编辑httpd.conf文件,增加监听端口号,格式为“Listen 端口号”。注:端口号需要网络组事先分配好,并且不能重复。
2.4、DSO机制装载的模块显示:# httpd -DDUMP_MODULES
         LoadModule Module_Name/path/to/Module_File   
   可以使用相对路径和绝对路径;相对路径则对于ServerRoot所定义的未知而言;
   修改了需要重启服务service httpdrestart

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

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

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

2.5、指定站点根目录               DocumentRoot"/path/to/somewhere"

生产上
DocumentRoot "/home/was/was61/HTTPServer/htdocs"

2.6、站点路径访问控制基于本地文件系统路径
                      <Directory"/path/to/somewhere">
                      </Directory>
eg:
<Directory "/home/was/was61/HTTPServer/icons">
    Options none
    AllowOverride None
    Order allow,deny
    Allow from all
</Directory>

<Directory "/home/was/was61/HTTPServer/htdocs">
    Options none
    AllowOverride None
    Order allow,deny
    Allow from all
</Directory>

<Directory "/home/was/was61/HTTPServer/htdocs/default">
    Options none
    AllowOverride None
    Order allow,deny
    Allow from all
</Directory>

基于URL访问路径做访问控制
                      <Location"/path/to/URL">
                      </Location>
eg:
#<Location /server-info>
#    SetHandler server-info
#    Order deny,allow
#    Deny from all
#    Allow from .example.com
#</Location>

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/images/logo/new.gif
    此文件位置:/www/html/images/logo/new.gif

    实现URL路径的映射,从而所访问的资源不再依赖于站点根目录;
Alias /URL/"/path/to/somewhere/"   eg:Alias /icons/"/home/was/was61/HTTPServer/icons/"


2.12、CGI脚本         CGI脚本路径别名
   CGI动态网关接口
         /var/www/cgi-bin/
               http://server/cgi-bin/

         bash写CGI脚本:
               所有文本都使用命令输出:echo, printf, cat
               执行程序:命令引用
               Content-Type:text/html
               <pre>

               </pre>

               FastCGI: 协议

2.13、基于用户访问控制         用户认证:
               基本认证: Basic
               摘要认证:digest

         虚拟用户:仅用于访问某服务或获取某资源的凭证;
               文本文件:.htpasswd
               SQL数据库
               dbm: 数据库引擎,提供API
               ldap: 轻量级目录访问协议

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

         authorization provider:授权

         案例:基于文件做访问控制
         (1) 基于用户进行认证
               <Directory"/var/www/html/admin">
                      Options none
                      AllowOverride AuthConfig
                      AuthType Basic
                      AuthName "Admin Area."
                      #AuthBasicProvider file
                      AuthUserFile /etc/httpd/conf/.htpasswd
                      Require valid-user
               </Directory>

                      Requirevalid-user: 文件中所有用户均可访问
                      Require userUSERNAME, ...

         (2) 提供认证文件
               htpasswd
                      -c: 如果此文件事先不存在,则创建;注意,只能在创建第一个用户时使用;
                      -m:以md5的格式编码存储用户的密码信息
                      -D:删除指定用户

         (3) 组认证
               <Directory"/var/www/html/admin">
                      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
               </Directory>            

               组文件:
                      组名:user1 user2 user3

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

         (1) 使用虚拟的前提:取消主服务器
               注释主服务器的站点根路径指定:DocumentRoot

         (2) 定义虚拟主机
               NameVirtualHostIP:PORT //基于主机名

               <VirtualHostIP:PORT>
                      ServerName
                      DocumentRoot
                      ServerAlias
                      ErrorLog
                      CustomLog
               </VirtualHost>

         配置文件语法检查:
               httpd -t
               service httpdconfigtest

               配置示例:
                      <VirtualHost172.16.100.7:80>
                        ServerName www.mageedu.com
                        DocumentRoot "/web/hosta"
                      </VirtualHost>

                      <VirtualHost172.16.100.8:80>
                        ServerName www.mageedu.com
                        DocumentRoot "/web/hostb"
                      </VirtualHost>

                      <VirtualHost172.16.100.8:8080>
                        ServerName www.mageedu.com
                        DocumentRoot "/web/hostc"
                      </VirtualHost>


         测试:elinks
               -dump: 获取到页面数据后直接退出进程;
eg: elinks [-dump] www.mageedu.com

eg:
用VI编辑httpd.conf文件,增加虚拟主机,格式如下:
<VirtualHost *:端口号>
   DocumentRoot/home/was/was61/HTTPServer/htdocs/成员行主页目录/
</VirtualHost>
注:端口号必须和上面的监听端口号一致,成员行主页目录下须有相关主页内容。

<VirtualHost *:8101>
   DocumentRoot
/home/was/was61/HTTPServer/htdocs/tianjinbh/
   RewriteEngine on
   RewriteCond %{REQUEST_METHOD}^TRACE
   RewriteRule .* -
   RewriteCond%{REQUEST_METHOD} ^TRACK
   RewriteRule .* -
   RewriteCond%{REQUEST_METHOD} ^OPTIONS
   RewriteRule .* -
</VirtualHost>

页: [1]
查看完整版本: Apache之IHS相关配置