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
下一篇 2015-10-15

相關推薦

  • python 10第二周博客作業

    1.取磁盤利用率:cut -d命令 df|tr –s? ‘ ’?? ‘%’ |cut –d “%” –f5正則表達式:df -h |grep “^/dev/sd” |grep -o “[[:digit:]]\+%”|grep -o “[[:digit:]]\+”2. paste 合并兩個…

    Linux干貨 2018-03-17
  • rsyslog將日志記錄于MySQL中,并用loganalyzer進行分析日志

    1、首先來安裝lamp環境的支持,與其相關的軟件包      # yum -y install rsyslog-mysql mariadb-server php php-mysql php-gd httpd       說明:rsyslog-mysql在數據庫中生成一個庫文件,但這個文件需…

    Linux干貨 2013-09-03
  • kickstart安裝系統

    很多時候要安裝很多機器是很繁瑣,我們可以利用kickstart網絡啟動更加方便的去安裝系統。 首先準備環境,安裝相關程序。 [root@localhost ~]# yum -y install sytem-config-kickstart [root@localhost ~]# yum&n…

    Linux干貨 2016-09-19
  • Linux 基礎知識(二)

    一、Linux文件管理類命令的使用方法及其相關示例演示? 1、文件管理 2、文件查看 二、Bash特性詳解 1、命令行展開 (1)在/tmp目錄下創建:a_c,a_d,b_c,b_d 方法一:mkdir -pv {a,b}_{c,d} (2)在/tmp目錄下創建mylinux目錄,其結構如下:         方法一:…

    Linux干貨 2016-09-26
  • 初窺門徑之腳本書寫

    一、幾個腳本的編寫: 1、編寫腳本/root/bin/systeminfo.sh,顯示當前主機系統信息,包括主機名,IPv4地址,操作系統版本,內核版本,CPU型號,內存大小,硬盤大小。 #!/bin/bash echo "HOSTNAME: $HOSTNAME" echo "IPV4 A…

    Linux干貨 2016-08-15
  • 文本處理三劍客之grep及正則表達式

    文本處理三劍客之grep及正則表達式   文本處理工具:   Linux上處理文本三劍客:     Grep:文本過濾器工具(模式:pattern)工具;     Sed: stream editor,流編輯器;文本編輯工具;   &nbs…

    Linux干貨 2016-08-12
欧美性久久久久