http特性

一、何为http

什么是http?http是Hyper Text Mark Language的缩写,超文本标记语言。Apache下的httpd是实现了这一功能的开源软件。

二、http特性

http特性1:持久连接及MPM参数设置

KeepAlive {On|Off}	#是否启动持久连接
MaxKeepAliveRequests 100	#最大持久连接数量
KeepAliveTimeout 15	#持久连接超时时长
http特性2:MPM参数控制
<IfModule prefork.c>	#prefork工作模式下的mpm设定
StartServers       8	#开始启动的进程数(主进程除外)
MinSpareServers    5	#最下空闲进程数
MaxSpareServers   20	#最大空闲进程数
ServerLimit      256	#进程数限制
MaxClients       256	#客户端最大进程数限制
MaxRequestsPerChild  4000	#单个进程最大请求数限制
</IfModule>
<IfModule worker.c>	#worker工作模式下的mpm设定
StartServers         4	#开始启动的进程数(包括主进程)
MaxClients         300	#最大客户端连接数
MinSpareThreads     25	#最小空闲线程数
MaxSpareThreads     75	#最大空闲线程数
ThreadsPerChild     25	#进程启动时生成线程数
MaxRequestsPerChild  0	#每个进程最大建立的线程数,0表示无限制
</IfModule>
[root@vm ~]# lsof -i:80
COMMAND  PID   USER   FD   TYPE DEVICE SIZE/OFF NODE NAME
httpd   2465   root    4u  IPv6  15075      0t0  TCP *:http (LISTEN)    #主进程
httpd   2467 apache    4u  IPv6  15075      0t0  TCP *:http (LISTEN)    #以下为prefork模型中的8个子进程
httpd   2468 apache    4u  IPv6  15075      0t0  TCP *:http (LISTEN)
httpd   2469 apache    4u  IPv6  15075      0t0  TCP *:http (LISTEN)
httpd   2470 apache    4u  IPv6  15075      0t0  TCP *:http (LISTEN)
httpd   2471 apache    4u  IPv6  15075      0t0  TCP *:http (LISTEN)
httpd   2472 apache    4u  IPv6  15075      0t0  TCP *:http (LISTEN)
httpd   2473 apache    4u  IPv6  15075      0t0  TCP *:http (LISTEN)
httpd   2474 apache    4u  IPv6  15075      0t0  TCP *:http (LISTEN)
[root@vm ~]# lsof -i:80
COMMAND    PID   USER   FD   TYPE DEVICE SIZE/OFF NODE NAME
httpd.wor 2513   root    4u  IPv6  15903      0t0  TCP *:http (LISTEN)    #以下为worker模型中启动的初始进程数
httpd.wor 2514 apache    4u  IPv6  15903      0t0  TCP *:http (LISTEN)
httpd.wor 2516 apache    4u  IPv6  15903      0t0  TCP *:http (LISTEN)
httpd.wor 2517 apache    4u  IPv6  15903      0t0  TCP *:http (LISTEN)

http特性3:访问控制

基于本地文件系统路径

<Directory "/path/to/somewhere">
</Directory>
基于url访问路径
<Location "/path/to/URL">
</Location>

基于用户访问控制

(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>
Require valid-user: 文件中所有用户均可访问
Require user USERNAME, ...

(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>
   其中.htgroup文件的格式如下
 组名:user1 user2 user3

http特性4:Directory中可用访问控制

(1) Options  (如何值取反,可使用-号)

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

FollowSymlinks: 跳跃符号链接

(2) AllowOverride

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

http特性5:基于IP做访问控制

(httpd-2.2以下版本)

Order allow,deny    #除了allow IP or NET之外都是deny
Deny from 172.16.100.17
    Allow from 172.16.0.0/16
    from后面能接受的地址格式:
    IP, Network Address
    网络地址格式较为灵活:
    172.16
    172.16.0.0
    172.16.0.0/16
    172.16.0.0/255.255.0.0

(httpd-2.4以上版本)

Require ip IPADDR
Require not ip IPADDR
IPADDR:
单个ip
Network/Netmask: 
Network/Length: 172.16.0.0/16
Net: 172.16
Require host HOSTNAME
Require not host HOSTNAME
HOSTNAME:
FQDN:具体的主机
DOMAIN: 域内的所有主机

http特性5:定义默认的主页面

DirectoryIndex

Http特性6:配置日志功能

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: 响应报文的长度,单位是字节

http特性7:路径别名

Alias  /url/	“/path/to/somewhere/”   (url中是否有/号与后面的值结尾处一直)

http特性8:DSO机制装载模块

LoadModule Module_Name /path/to/Module_File  (可使用相对路径和绝对路径)

http特性9:指定站点根目录

DocumentRoot "/path/to/somewhere"

http特性10:设定默认字符集

AddDefaultCharset

http特性11:虚拟主机

注意:使用虚拟主机时需要取消主服务器的DocumentRoot设定

定义虚拟主机

NameVirtualHost IP:PORT
<VirtualHost IP:PORT>

</VirtualHost>

http特性12:https协议

https协议是加密的连接,具体使用要结合证书,可参考http的帮助文档

http特性13: status页面

httpd内嵌有handler,其中有一个handler用于输出当前httpd服务相关状态信息

handler: server-status

启用handler要使用SetHandler指令

handler: 当文件被调用时,apache内部表示形式;一般每种文件类型都有其隐式处理器

http特性14:mod_deflate模块压缩

SetOutputFilter DEFLATE
# mod_deflate configuration
# Restrict compression to these MIME types
AddOutputFilterByType DEFLATE text/plain 
AddOutputFilterByType DEFLATE text/html
AddOutputFilterByType DEFLATE application/xhtml+xml
AddOutputFilterByType DEFLATE text/xml
AddOutputFilterByType DEFLATE application/xml
AddOutputFilterByType DEFLATE application/x-javascript
AddOutputFilterByType DEFLATE text/javascript
AddOutputFilterByType DEFLATE text/css 
# Level of compression (Highest 9 - Lowest 1)
DeflateCompressionLevel 9
# Netscape 4.x has some problems.
BrowserMatch ^Mozilla/4 gzip-only-text/html 
# Netscape 4.06-4.08 have some more problems
BrowserMatch ^Mozilla/4\.0[678] no-gzip 
# MSIE masquerades as Netscape, but it is fine
BrowserMatch \bMSI[E] !no-gzip !gzip-only-text/html

三、基本工具介绍

httpd: 

apache服务器程序

-t: 测试配置文件

-l: 列表静态模块

-D DUMP_MODULES:列出DSO模块

-M:

-D DUMP_VHOSTS: 列出所有虚拟主机

htpasswd:

为基于文件的basic认证创建和更新用户认证文件

apachectl: 

脚本,httpd服务控制工具;

ab: apache benchmark

httpd的基准性能测试工具; 

apxs: 

httpd得以扩展使用第三方模块的工具;

htcacheclean: 

磁盘缓存清理工具;

htdigest: 

为digest认证创建和更新用户认证文件

httxt2dbm:

为rewrite map创建dbm格式的文件

rotatelogs: 

不关闭httpd而切换其使用日志文件的工具

access_log, access_log.1, access_log.2,

suexec:

User apache

Group apache

当httpd进程需要以另外的用户的身份去访问某些资源时,可以以suexec作临时切换;

ab工具的初步使用

使用ab工具时,请注意系统对于资源利用是有限定的,管理员可以使用ulimit命令临时修改各种资源限制,当然不能超过系统的负载。其配置文件在/etc/security/limits.conf

/etc/security/limits.d/*.conf中

同类工具:http_load, webbench, seige

Usage: ab [options] [http[s]://]hostname[:port]/path

-c #: 模拟的并发数;

-n #: 总的请求数

-n的值一定要大于等于-c的值;

原创文章,作者:成吉思汗,如若转载,请注明出处:http://www.178linux.com/8749

(0)
成吉思汗成吉思汗
上一篇 2015-10-15
下一篇 2015-10-15

相关推荐

  • 计算机网络基础

    1、OSI, TCP/IP, 五层协议的体系结构, 以及各层协议 OSI分层(7层): 物理层, 数据链路层, 网络层, 传输层, 会话层, 表示层, 应用层 TCP/IP分层(4层): 网络接口层, 网际层, 传输层, 应用层 五层协议(5层): 物理层, 数据链路层, 网络层, 运输层, 应用层 每一层的协议: 物理层: RJ45, CLOCK, IEE…

    Linux干货 2016-09-19
  • 文本处理工具sed的使用以及Vim的使用技巧详解

    一、什么是sed     sed的英文全称是Stream EDitor,叫行编辑器。     sed是一种流编辑器,它一次处理一行内容。处理时,把当前处理的行存储在临时缓冲区中,称为“模式空间”(pattern space),接着用sed命令处理缓冲区中的内容…

    Linux干货 2016-08-11
  • 少走冤枉路!带你走过SNMP的那些坑

    SNMP(Simple Network Management Protocol)即简单网络管理协议,是在网络与系统监控领域中,最常使用的一种数据采集技术。尽管这个协议非常简单,但在大规模IT环境监测中,还是经常会碰到各种坑,因此优云开源了一套友好的SNMPAPI,并通过本文简单介绍这套API中的一些特点,希望帮助各位运维同仁提前规避一些问题。 特点[0].&…

    2016-06-22
  • linux基础学习-(磁盘管理、分区挂载、SWAP)

    1、磁盘结构 2、分区类型 3、管理分区、文件系统以及挂载设备 4、管理虚拟内存SWAP 一、磁盘结构(机械硬盘) CHS寻址模式将硬盘划分为磁头(Heads)、柱面(Cylinder)、扇区(Sector)。 heads:磁头 tracks:磁道 cylinder: 柱面 sector: 扇区,512bytes(最小的存储单位) 1、其中:每个盘面…

    Linux干货 2016-09-01
  • Linux运维实战之2-2:bash的工作特性

    这次博文我们主要来谈谈bash的工作特性哈。 主要内容: bash是一种shell解释程序     bash工作特性之命令状态返回值 bash工作特性之命令行展开 bash工作特性之命令补全 bash工作特性之路径补齐 bash工作特性之命令引用 bash工作特性之命令别名 bash工作特性之文件名通配 bash工作特性之命令hash 问…

    Linux干货 2016-11-06
  • 20160802课堂作业

    作业: 在/data/testdir里创建的新文件自动属于g1组,组g2的成员如:alice能对这些新文件有读写权限,组g3的成员如:tom只能对新文件有读权限,其它用户(不属于g1,g2,g3)不能访问这个文件夹。 #groupadd g1 #groupadd g2 #groupadd g3 #useradd -G g2 alice #useradd -G…

    Linux干货 2016-08-04