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.www58058.com/8749

(0)
成吉思汗成吉思汗
上一篇 2015-10-15 16:33
下一篇 2015-10-15 16:38

相關推薦

  • N26-博客作業-week7

    1、創建一個10G分區,并格式為ext4文件系統;      (1) 要求其block大小為2048, 預留空間百分比為2, 卷標為MYDATA, 默認掛載屬性包含acl;     ~]# fdisk /dev/sda Welcome to fdisk (util-li…

    Linux干貨 2017-03-19
  • 詳解Linux下用戶和組的配置文件

    本文將介紹Linux下用戶和組的概念及相關配置文件,通過本文,能更好的認識/etc/pssswd ,/etc/group,以及UID、GID的概念,最后將通過修改用戶配置文件來實現用戶和組的管理工作,對Linux的多任務、多用戶有一個更清楚的認識。 一、用戶(USER) 在LInux上用戶的管理工作是通過修改相關的配置文件來實現的,在日常的工作中主要包含對用…

    Linux干貨 2016-10-23
  • Linux進程篇16.2pstree命令:【進程樹】

    pstree命令:【進程樹】

    Linux干貨 2017-12-18
  • 9、varnish實現動靜分離、負載均衡、后端服務器健康狀態檢測

    varnish 4.0 版本 varnish實現動靜分離 # vim /etc/varnish/varnish.params VARNISH_LISTEN_PORT=80 –> 修改為80端口 # vim /etc/varnish/default.vcl backend html {    .host = “1…

    Linux干貨 2016-11-13
  • Linux三劍客之sed

    sed 簡介 sed 工作原理 命令格式 常用選項: 地址定界: 編輯命令: 替換標記: sed元字符集(正則表達式) 高級編輯命令: sed用法實例 作業: 選定行的范圍:,(逗號) 刪除操作:d命令 顯示模式空間內容 追加(行下):a\命令 插入(行上):i\命令 退出:q命令 多點編輯:e命令 從文件讀入:r命令 寫入文件:w命令 替換操作:s命令 替…

    Linux干貨 2016-08-11
  • 系統啟動流程

    CentOS 5和6的啟動流程服務管理Grub管理自制Linux啟動排錯編譯安裝內核 系統啟動流程:  POST –> 讀取BootSequence (BIOS),決定引導次序 –>讀取引導設備的Bootloader(MBR grubstage1–>stage1.5/boot…

    Linux干貨 2016-09-13
欧美性久久久久