您的位置:首页 > 运维架构 > Apache

Apache之IHS相关配置

2015-06-11 22:48 561 查看

一、相关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

生产上
[WYWEB01]:/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
MaxRequestsPerChild 0
</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
MaxRequestsPerChild 0
</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 #可以查看系统所有装载模块

[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、站点路径访问控制

基于本地文件系统路径
<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 .* -[F]
RewriteCond%{REQUEST_METHOD} ^TRACK
RewriteRule .* -[F]
RewriteCond%{REQUEST_METHOD} ^OPTIONS
RewriteRule .* -[F]
</VirtualHost>
内容来自用户分享和网络整理,不保证内容的准确性,如有侵权内容,可联系管理员处理 点击这里给我发消息
标签: