溫馨提示×

您好,登錄后才能下訂單哦!

密碼登錄×
登錄注冊(cè)×
其他方式登錄
點(diǎn)擊 登錄注冊(cè) 即表示同意《億速云用戶服務(wù)條款》

httpd筆記之理論詳解優(yōu)化配置(Apache)web入門

發(fā)布時(shí)間:2020-07-08 01:02:32 來源:網(wǎng)絡(luò) 閱讀:626 作者:野蠻的螺絲 欄目:建站服務(wù)器

Linux的愛之初體驗(yàn)web服務(wù)~~?。。。ㄖ赃@么說我覺得這是進(jìn)入Linux世界的第一個(gè)也是重要的一個(gè)服務(wù))

文章叫長(zhǎng),懂的隨便看看可能有不對(duì)的地方請(qǐng)校正。小白看看也可以理解理解大白話寫的!


http 超文本傳輸協(xié)議筆記

傳輸層:tcp/udp提供進(jìn)程地址

Port number:

tcp:傳輸控制協(xié)議,面向連接的協(xié)議;通信前需要建立虛擬鏈路;結(jié)束后拆除鏈路;數(shù)據(jù)流通信協(xié)議

0-65535 Linux中端口數(shù)

udpUser Datagram Protocol,無連接的協(xié)議;無連接的數(shù)據(jù)報(bào)文通信協(xié)議

0-65535

 

IANA:

0-1023:眾所周知,永久的分配給固定的應(yīng)用使用,特權(quán)端口,22/tcp(ssh), 80/tcp(http), 443/tcp(https)  只有管理員擁有權(quán)限注冊(cè)使用

1024-41951:亦為注冊(cè)端口,但要求并不是特別嚴(yán)格,分配給程序注冊(cè)為某應(yīng)用使用,11211/tcp, 11211/udp (memcached), 3306/tcp(mysql)

41952+:客戶端程序隨機(jī)使用的端口;動(dòng)態(tài)端口,或私有端口;其范圍的定義:/proc/sys/net/ipv4/ip_local_port_range

客戶端訪問服務(wù)器端隨機(jī)生成端口,訪問服務(wù)器端的某固定端口。

 

套接字Socket: IPC的一種實(shí)現(xiàn),允許位于不同主機(jī)(甚至同一主機(jī))上不同進(jìn)程之間進(jìn)行通信;從而完成數(shù)據(jù)交換;也稱為Socket API庫(kù)調(diào)用接口, 第一次出現(xiàn)在1983年,4.2 BSD系統(tǒng)上(伯克利系統(tǒng)分發(fā)版)。

SOCK_STREAMtcp套接字

SOCK_DGRAMudp套接字

SOCK_RAW: 裸套接字不借助UDP/TCP的接口進(jìn)行通信

 

IPv4:

分類:

A1-127

B128-191

C192-223

D:組播,224-239

E240-254

 

私有地址:

A10.0.0.0/8

B172.16.0.0/16-172.31.0.0/16

C192.168.0.0/24-192.168.255.0/24

 

TCP協(xié)議的特性:

建立連接:三次握手

將數(shù)據(jù)打包成段:校驗(yàn)和(CRC-32循環(huán)冗余檢驗(yàn)

確認(rèn)、重傳以及超時(shí):

報(bào)文排序:邏輯序號(hào)

流量控制:滑動(dòng)窗口算法有接收緩存控制,快滿時(shí)暫停接收發(fā)送方流量小的情況下

擁塞控制:慢啟動(dòng)和擁塞避免算法

 httpd筆記之理論詳解優(yōu)化配置(Apache)web入門

Socket Domain(根據(jù)其所使用的地址):socket又分為三類

AF_INETAddress FamilyIPv4

AF_INET6IPv6

AF_UNIX:同一主機(jī)上不同進(jìn)程之間通信時(shí)使用;

 

每類套接字都至少提供了兩種socket:流,數(shù)據(jù)報(bào)

流:可靠地傳遞、面向連接、無邊界;

數(shù)據(jù)報(bào):不可靠地傳遞、有邊界、無連接;比如寄信,有信封,封裝多封就需要多個(gè)

 

套接字相關(guān)的系統(tǒng)調(diào)用:

socket(): 創(chuàng)建一個(gè)套接字;

bind():綁定

listen():監(jiān)聽

accept():接收請(qǐng)求

connect():請(qǐng)求連接建立

write():發(fā)送

read():接收

send(), recv(), 發(fā)接

               sendto(), recvfrom() 發(fā)接

HTTP協(xié)議

http: hyper text transfer protocol, 80/tcp

html: 編程語言,超文本標(biāo)記語言;

 

<html>

<head>

<title>TITLE</title>

</head>

<body>

<h2></h2>

<p> blabla... <a > blabal </a> </p>

<h3></h3>

</body>

</html>

 

CSS: Cascading Style Sheet  級(jí)聯(lián)樣式表

js: javascript

 

MIME: Multipurpose Internet Mail Extesion多用途Internet郵件擴(kuò)展

 

工作機(jī)制:

http請(qǐng)求

http響應(yīng)

 

被請(qǐng)求的內(nèi)容稱為:Web資源:web resource

靜態(tài)文件:.jpg, .gif, .html, .txt, .js, .css, .mp3, .avi

動(dòng)態(tài)文件:.php, .jsp,   (客戶端請(qǐng)求時(shí)不是直接反饋給客戶端而是先在服務(wù)器端執(zhí)行一次)

比如:Windows瀏覽器需要借助外部插件來工作,瀏覽器本身不具備打開圖片或視頻等而且根據(jù)文件的后綴名來決定借助由客戶端的某個(gè)插件來打開

媒體:決定了客戶端的瀏覽器如何打開借助那個(gè)插件

媒體類型(MIME類型):major/minor主類型/次類型

text/html  超文本文檔

text/plain  純文本文檔

p_w_picpath/jpeg  

p_w_picpath/gif

 

URI: Uniform Resource Identifier統(tǒng)一資源標(biāo)識(shí)符

URL: Uniform Resorce Locator,用于描述某服務(wù)器某特定資源的位置;

Scheme://Server:Port/path/to/resource

http://www.magedu.com/p_w_picpaths/logo.jpg

URN: Uniform Resource Naming統(tǒng)一資源命名

 

http協(xié)議版本:

HTTP/0.9:原型版本,功能簡(jiǎn)陋

HTTP/1.0:第一個(gè)廣泛使用的版本,支持MIME

HTTP/1.1: 增強(qiáng)了緩存功能

Spdy 

HTTP/2.0

 

rfc文檔讀一讀有助于了解 1.1 2.0

一次完整的http請(qǐng)求處理過程:

(1) 建立或處理連接:接收請(qǐng)求或拒絕請(qǐng)求

(2) 接收請(qǐng)求:

接收來自于網(wǎng)絡(luò)的請(qǐng)求報(bào)文中對(duì)某資源的一次請(qǐng)求的過程;

 

并發(fā)訪問響應(yīng)模型(Web I/O):

單進(jìn)程I/O結(jié)構(gòu):?jiǎn)?dòng)一個(gè)進(jìn)程處理用戶請(qǐng)求,而且一次只處理一個(gè);多個(gè)請(qǐng)求被串行響應(yīng);多個(gè)請(qǐng)求到來排隊(duì),依次處理

多進(jìn)程I/O結(jié)構(gòu):并行啟動(dòng)多個(gè)進(jìn)程,每個(gè)進(jìn)程響應(yīng)一個(gè)請(qǐng)求;

復(fù)用I/O結(jié)構(gòu):一個(gè)進(jìn)程響應(yīng)n個(gè)請(qǐng)求;借用一個(gè)復(fù)用I/O 處理器基于事件驅(qū)動(dòng)機(jī)制

多線程模型:一個(gè)進(jìn)程生成N個(gè)線程,每個(gè)線程響應(yīng)一個(gè)用戶請(qǐng)求;

事件驅(qū)動(dòng):event-driven一個(gè)進(jìn)程內(nèi)部維持一個(gè)類似事件監(jiān)控器,能夠監(jiān)控著多個(gè)I/O使得一個(gè)服務(wù)器進(jìn)程能夠同時(shí)連接多個(gè)請(qǐng)求針對(duì)怎么知道每一個(gè)請(qǐng)求的連接與結(jié)束,在服務(wù)器編程時(shí)在內(nèi)部基于事件回調(diào)的機(jī)制來完成連接狀態(tài)(i/o)的追蹤,并基于回調(diào)的狀態(tài)來完成連接與結(jié)束的響應(yīng)。

 

復(fù)用的多進(jìn)程/線程--I/O結(jié)構(gòu):?jiǎn)?dòng)多個(gè)(m)進(jìn)程,每個(gè)進(jìn)程響應(yīng)n個(gè)請(qǐng)求;

 

 

(3) 處理請(qǐng)求:對(duì)請(qǐng)求報(bào)文進(jìn)行解析,并獲取請(qǐng)求的資源及請(qǐng)求方法等相關(guān)信息

 

元數(shù)據(jù):請(qǐng)求報(bào)文首部

<method>//請(qǐng)求的方法 <URL>//資源 <VERSION>//版本

Host: www.magedu.com   請(qǐng)求的主機(jī)名稱

Connection//指明此次連接使用的方式

 

(4) 訪問資源:獲取請(qǐng)求報(bào)文中請(qǐng)求的資源

 

web服務(wù)器,即存放了web資源的服務(wù)器,負(fù)責(zé)向請(qǐng)求者提供對(duì)方請(qǐng)求的靜態(tài)資源,或動(dòng)態(tài)運(yùn)行后生成的資源;這些資源放置于本地文件系統(tǒng)某路徑下,此路徑通常稱為DocRoot

 

/var/www/html/

p_w_picpaths/1.jpg

 

http://www.magedu.com/p_w_picpaths/1.jpg

 

web服務(wù)器資源路徑映射方式:

(a) docroot

(b) alias

(c) 虛擬主機(jī)docroot

(d) 用戶家目錄docroot

 

(5) 構(gòu)建響應(yīng)報(bào)文

 

資源的MIME類型:標(biāo)記的方法

顯式分類

魔法分類

協(xié)商分類

 

URL重定向:

web服務(wù)構(gòu)建的響應(yīng)并非客戶端請(qǐng)求的資源,而是資源另外一個(gè)訪問路徑;

 

(6) 發(fā)送響應(yīng)報(bào)文

 

 

(7) 記錄日志

 

http服務(wù)器程序:

httpd (apache)

nginx

Lighttpd  //德國(guó)人研發(fā)輕量級(jí)類似Nginx

 

應(yīng)用程序服務(wù)器容器類動(dòng)靜都能解析

IIS

tomcat, jetty, jboss, resin

webshpere, weblogic, oc4j

 

www.netcraft.com  //查看一些web服務(wù)器占用市場(chǎng)的份額

 

httpd的安裝配置和使用:

httpd: apache

a  patchy server = apache

ASF: apache software foundation  //軟件基金會(huì)

 

httpd的特性:

高度模塊化:core + modules

DSO: Dynamic Shared Object  動(dòng)態(tài)模塊機(jī)制

MPMMultipath Processing Modules  實(shí)現(xiàn)多種不同I/O模型機(jī)制

prefork:多進(jìn)程模型,每個(gè)進(jìn)程響應(yīng)一個(gè)請(qǐng)求;每個(gè)主進(jìn)程只負(fù)責(zé)監(jiān)聽套接字,接收請(qǐng)求交給子進(jìn)程處理請(qǐng)求。

一個(gè)主進(jìn)程:負(fù)責(zé)生成n個(gè)子進(jìn)程,子進(jìn)程也稱為工作進(jìn)程,每個(gè)子進(jìn)程處理一個(gè)用戶請(qǐng)求;即便沒有用戶請(qǐng)求,也會(huì)預(yù)先生成多個(gè)空閑進(jìn)程,隨時(shí)等待請(qǐng)求到達(dá);最大不會(huì)超過1024個(gè);

worker:多線程模型,每個(gè)線程響應(yīng)一個(gè)請(qǐng)求;

一個(gè)主進(jìn)程:生成多個(gè)子進(jìn)程,每個(gè)子進(jìn)程負(fù)責(zé)生個(gè)多個(gè)線程,每個(gè)線程響應(yīng)一個(gè)請(qǐng)求;


event:事件驅(qū)動(dòng)模型,每個(gè)線程響應(yīng)n個(gè)請(qǐng)求;

一個(gè)主進(jìn)程:生成m個(gè)子進(jìn)程,每個(gè)進(jìn)程直接n個(gè)請(qǐng)求;

m進(jìn)程,n線程:m*n

httpd-2.2: event為測(cè)試使用

httpd-.24event可生產(chǎn)使用

 

CentOS 6:

 

程序環(huán)境

配置文件:

/etc/httpd/conf/httpd.conf

/etc/httpd/conf.d/*.conf  //補(bǔ)充性配置文件

服務(wù)腳本:

/etc/rc.d/init.d/httpd

服務(wù)腳本自己的配置文件:/etc/sysconfig/httpd

主程序文件:

/usr/sbin/httpd       //prefork 默認(rèn)使用的

/usr/sbin/httpd.event   //event

/usr/sbin/httpd.worker  //worker

日志文件目錄:

/var/log/httpd

access_log: 訪問日志

error_log:錯(cuò)誤日志  //啟動(dòng)停止訪問錯(cuò)誤等信息

站點(diǎn)文檔目錄:

/var/www/html

模塊文件路徑:

/usr/lib64/httpd/modules

 

配置文件的組成:

 ~]# grep "Section" /etc/httpd/conf/httpd.conf

### Section 1: Global Environment   //全局環(huán)境配置

### Section 2: 'Main' server configuration  //主服務(wù)器配置

### Section 3: Virtual Hosts   ///虛擬主機(jī)配置

 

配置格式:directive value  指令對(duì)應(yīng)的值來完成 比如listen 80

directive: 不區(qū)分字符大小寫;

value: 為路徑時(shí),取決于文件系統(tǒng);

 

常用配置:修改完配置文件 httpd -t 或者 service httpd configtest 測(cè)試語法

1、修改監(jiān)聽的IPPort  //修改監(jiān)聽端口需要restart

Listen [IP:]PORT

 

省略ip表示監(jiān)聽本機(jī)所有IP; Listen可重復(fù)出現(xiàn)多次;


2、持久連接

Persistent Connection長(zhǎng)連接):連接建立,每個(gè)資源獲取完成后不會(huì)斷開連接,而是繼續(xù)等待其它的請(qǐng)求完成;

如何斷開?

數(shù)量限制:100 資源請(qǐng)求默認(rèn)100

時(shí)間限制:可配置   

副作用:對(duì)并發(fā)訪問量較大的服務(wù)器,持久連接功能會(huì)使用有些請(qǐng)求得不到響應(yīng);

折衷:使用較短的持久連接時(shí)間;5

httpd-2.4 支持毫秒級(jí)持久時(shí)間;

非持久連接

 

KeepAlive On|Off  //是否開啟

MaxKeepAliveRequests # //最大連接請(qǐng)求數(shù)量

KeepAliveTimeout #   //連接超時(shí)

 

測(cè)試:

telnet HOST PORT

GET /URL HTTP/1.1

Host: HOSTNAME or IP

httpd筆記之理論詳解優(yōu)化配置(Apache)web入門

3MPM

Multipath Process Module:多道處理模塊

prefork, worker, event

 

httpd-2.2不支持同時(shí)編譯多個(gè)模塊,所以只能編譯時(shí)選定一個(gè);rpm安裝的包提供三個(gè)二進(jìn)制程序文件,分別用于實(shí)現(xiàn)對(duì)不同MPM機(jī)制的支持;確認(rèn)方法:

# ps aux  | grep httpd

httpd筆記之理論詳解優(yōu)化配置(Apache)web入門


默認(rèn)為/usr/sbin/httpd, 其使用prefork

查看模塊列表:

查看靜態(tài)編譯的模塊

# httpd -l   ///httpd.worker  -l///httpd.event -l

Compiled in modules:

  Core.c   //核心模塊

  Prefork.c   /已經(jīng)使用的

  http_core.c  //功能核心模塊

  mod_so.c   //支持模塊動(dòng)態(tài)裝卸載的功能

查看所有靜態(tài)編譯及動(dòng)態(tài)裝載的模塊

# httpd -M   

 

更換使用的httpd程序:

/etc/sysconfig/httpd

HTTPD=

httpd筆記之理論詳解優(yōu)化配置(Apache)web入門

重啟服務(wù)生效;

 

prefork的配置:

<IfModule prefork.c>

StartServers       8  //服務(wù)啟動(dòng)時(shí)啟動(dòng)多少服務(wù)子進(jìn)程

MinSpareServers    5  //最小空閑進(jìn)程數(shù)

MaxSpareServers   20  //最大空閑進(jìn)程數(shù)

ServerLimit      256   ///在服務(wù)器聲明周期內(nèi)為MaxClients生成數(shù)量

MaxClients       256   ///最大并發(fā)數(shù)

MaxRequestsPerChild  4000  //一個(gè)進(jìn)程最多能夠響應(yīng)多少次請(qǐng)求然后死掉

</IfModule> 

httpd筆記之理論詳解優(yōu)化配置(Apache)web入門


worker的配置:

<IfModule worker.c>

StartServers         4    //服務(wù)啟動(dòng)時(shí)啟動(dòng)多少服務(wù)子進(jìn)程

 

MaxClients         300  ///最大并發(fā)數(shù),最大啟動(dòng)的線程數(shù)

 

MinSpareThreads     25  //最少空閑線程

MaxSpareThreads     75  //最大空閑線程

ThreadsPerChild     25   //每個(gè)進(jìn)程能夠啟動(dòng)的線程數(shù)

MaxRequestsPerChild  0   //每個(gè)線程最大響應(yīng)的請(qǐng)求數(shù)

</IfModule> 

PV, UV

PV: Page View  頁(yè)面訪問量

UV: User View  用戶數(shù)量

獨(dú)立IP有效訪問量;

4DSO

httpd筆記之理論詳解優(yōu)化配置(Apache)web入門

配置指令實(shí)現(xiàn)模塊加載

 

LoadModule <mod_name> <mod_path>

 

模塊路徑可使用相對(duì)地址

相對(duì)于ServerRoot(/etc/httpd)指向的路徑而言;

/etc/httpd/modules/

httpd筆記之理論詳解優(yōu)化配置(Apache)web入門

httpd筆記之理論詳解優(yōu)化配置(Apache)web入門

5、定義'Main' server的文檔頁(yè)面路徑

DocumentRoot

httpd筆記之理論詳解優(yōu)化配置(Apache)web入門

文檔路徑映射:

DocumentRoot指向的路徑為URL路徑的起始位置;

DocumentRoot "/var/www/html"

test/index.html --> http://HOST:PORT/test/index.html

 

6、站點(diǎn)訪問控制

可基于兩種類型的路徑指明對(duì)哪些資源進(jìn)行訪問控制

文件系統(tǒng)路徑:

<Directory ""> </Direcotry>

httpd筆記之理論詳解優(yōu)化配置(Apache)web入門

<File ""> 

</File>


httpd筆記之理論詳解優(yōu)化配置(Apache)web入門

訪問控制機(jī)制:

基于來源地址;

基于賬號(hào);

7、Directory中“基于來源地址”實(shí)現(xiàn)訪問控制

httpd筆記之理論詳解優(yōu)化配置(Apache)web入門


(1) Options  建議關(guān)閉(如果是下載網(wǎng)站打開不指定默認(rèn)網(wǎng)頁(yè)可以打開網(wǎng)站上資源,非下載網(wǎng)站是不安全的在沒有定義默認(rèn)頁(yè)的情況下同事http的也沒有做測(cè)試頁(yè)客戶端打開網(wǎng)站會(huì)獲取服務(wù)器端的所有網(wǎng)站資源)

比如默認(rèn)根目錄下存放的沒有默認(rèn)定義的主頁(yè)面(index.html)就會(huì)索引到根目錄下其他的文檔。

httpd筆記之理論詳解優(yōu)化配置(Apache)web入門

所有可用特性:Indexes Includes FollowSymLinks SymLinksifOwnerMatch ExecCGI MultiViews

  None, All

Indexes: 索引;//當(dāng)訪問網(wǎng)站目錄下默認(rèn)主頁(yè)面

FollowSymlinks:允許跟蹤符號(hào)鏈接文件;允許訪問網(wǎng)站中根目錄下作鏈接的文件

SymLinksifOwnerMatch 允許追蹤鏈接文件和源文件為同一屬主就允許(使用少)

MultiViews  是否允許多視圖(不開啟)(使用少)

 

(2) 基于來源地址的訪問控制機(jī)制

Order:檢查次序

Order allow,deny

Order deny,allow

Allow from

Deny from

httpd筆記之理論詳解優(yōu)化配置(Apache)web入門

來源地址:

IP

NetAddr:

172.16

172.16.0.0

172.16.0.0/16

172.16.0.0/255.255.0.0

 

8、定義默認(rèn)主頁(yè)面  訪問沒有指明自左向右訪問

DirecotryIndex  index.html  index.html.var  index.php

 

9、日志設(shè)定

 

錯(cuò)誤日志:

ErrorLog logs/error_log

LogLevel warn

httpd筆記之理論詳解優(yōu)化配置(Apache)web入門

debug, info, notice, warn,  error, crit, alert, emerg

                        調(diào)試信息、通知、警告、 錯(cuò)誤、暴擊、警報(bào)、緊急

定義warn那么比warn高的級(jí)別都將記錄。

訪問日志:

CustomLog logs/access_log combined

LogFormat "%h %l %u %t \"%r\" %>s %b \"%{Referer}i\" \"%{User-Agent}i\"" combined

httpd筆記之理論詳解優(yōu)化配置(Apache)web入門

%h:客戶端IP地址;

%l: Remote logname (from identd, if supplied). -表示為空;遠(yuǎn)程登錄名大多數(shù)為空

%u: Remote user,  (from auth; may be bogus if return status (%s) is 401);用戶認(rèn)證時(shí)的用戶名  大多數(shù)無需認(rèn)證-表示為空

%tTime the request was received (standard english format),服務(wù)器收到請(qǐng)求的時(shí)間;默認(rèn)為英文格式

%rFirst line of request,請(qǐng)求報(bào)文的行信息請(qǐng)求的URL以及協(xié)議版本等(method url version);

%>s: 響應(yīng)狀態(tài)碼;

%b: 響應(yīng)報(bào)文的大小,單位是字節(jié),不包括響應(yīng)報(bào)文首部;

%{Referer}i:請(qǐng)求報(bào)文當(dāng)中"referer"首部的值;當(dāng)前資源的訪問入口,即從哪個(gè)頁(yè)面中的超鏈接跳轉(zhuǎn)而來;

%{User-Agent}i:請(qǐng)求報(bào)文當(dāng)中"User-Agent"首部的值;即發(fā)出請(qǐng)求用到的應(yīng)用程序;

httpd筆記之理論詳解優(yōu)化配置(Apache)web入門

詳情:http://httpd.apache.org/docs/2.2/mod/mod_log_config.html#formats

 

10、路徑別名

 

DocumentRoot "/www/htocs"

http://www.magedu.com/download/bash-4.4.2-3.el6.x86_64.rpm

--> /www/htdocs/download/bash-4.4.2-3.el6.x86_64.rpm

 

Alias /URL/ "/PATH/TO/SOMEDIR/"

 

Alias /3/ "/1/2"

http://www.magedu.com/3/index.html

--> /1/2/3/

 

Alias /bbs/ "/forum/htdocs"

http://www.magedu.com/bbs/index.html

--> /forum/htdocs/bbs/

 

httpd筆記之理論詳解優(yōu)化配置(Apache)web入門

httpd筆記之理論詳解優(yōu)化配置(Apache)web入門

httpd筆記之理論詳解優(yōu)化配置(Apache)web入門

httpd筆記之理論詳解優(yōu)化配置(Apache)web入門

httpd筆記之理論詳解優(yōu)化配置(Apache)web入門

httpd筆記之理論詳解優(yōu)化配置(Apache)web入門

httpd筆記之理論詳解優(yōu)化配置(Apache)web入門

11、設(shè)定默認(rèn)字符集

AddDefaultCharset UTF-8

 

GBK, GB2312, GB18030 中文字符

 

12、基于用戶的訪問控制

 

認(rèn)證質(zhì)詢:

WWW-Authenticate:響應(yīng)碼為401,拒絕客戶端請(qǐng)求,并說明要求客戶提供賬號(hào)和密碼;

 

認(rèn)證:

Authorization:客戶端用戶填入賬號(hào)和密碼后再次發(fā)送請(qǐng)求報(bào)文;認(rèn)證通過,則服務(wù)器發(fā)送響應(yīng)的資源;

 

認(rèn)證類型:

basic:明文

digest:消息摘要

 

安全域:需要用戶認(rèn)證后方能訪問的路徑;

應(yīng)該通過名稱對(duì)其進(jìn)行標(biāo)識(shí),并用于告知用戶認(rèn)證的原因;

 

用戶的賬號(hào)和密碼存儲(chǔ)于何處?

虛擬賬號(hào):僅用于訪問某服務(wù)時(shí)用到的認(rèn)證標(biāo)識(shí);

 

存儲(chǔ):

文本文件

SQL數(shù)據(jù)庫(kù)

ldap

nis

 

basic認(rèn)證:

(1) 定義安全域

<Directory ""> //指明路徑

Options None  

AllowOverride None  

AuthType Basic

AuthName "STRING"  ///安全域名稱

AuthUserFile "/PATH/TO/HTTPD_USER_PASSWD_FILE" //認(rèn)證時(shí)使用的賬號(hào)文件

Require user username1 username2 ...   //所有合法(允許)賬號(hào)都行

</Directory>

 

允許賬號(hào)文件中的所有用戶登錄訪問:

Require valid-user

httpd筆記之理論詳解優(yōu)化配置(Apache)web入門

httpd筆記之理論詳解優(yōu)化配置(Apache)web入門

httpd筆記之理論詳解優(yōu)化配置(Apache)web入門

(2) 提供賬號(hào)和密碼存儲(chǔ)(文本文件)

使用htpasswd命令進(jìn)行管理

htpasswd [options] passwordfile username

-c: 自動(dòng)創(chuàng)建passwordfile,因此,僅應(yīng)該在添加第一個(gè)用戶時(shí)使用;

-m: md5加密用戶密碼;

-s: sha1加密用戶密碼;

-D: 刪除指定用戶

httpd筆記之理論詳解優(yōu)化配置(Apache)web入門

httpd筆記之理論詳解優(yōu)化配置(Apache)web入門

httpd筆記之理論詳解優(yōu)化配置(Apache)web入門

(3) 實(shí)現(xiàn)基于組進(jìn)行認(rèn)證

<Directory "">

Options None

AllowOverride None

AuthType Basic

AuthName "STRING"

AuthUserFile "/PATH/TO/HTTPD_USER_PASSWD_FILE"

AuthGroupFile "/PATH/TO/HTTPD_GROUP_FILE"

Require group GROUP1 GROUP2 ...

</Directory>

 

要提供:用戶賬號(hào)文件和組文件;

 

組文件:每一行定義一個(gè)組

GRP_NAMEuser1 user2 user3 ... 組名 冒號(hào) 用戶名用空格分隔

 

 

示例:

<Directory "/www/htdocs/admin">

    Options None

    AllowOverride None

    AuthType Basic

    AuthName "Administator private"

    AuthUserFile "/etc/httpd/conf.d/.htpasswd"

    AuthGroupFile "/etc/httpd/conf.d/.htgroup"

    Require group webadmin

</Directory>

httpd筆記之理論詳解優(yōu)化配置(Apache)web入門

httpd筆記之理論詳解優(yōu)化配置(Apache)web入門

httpd筆記之理論詳解優(yōu)化配置(Apache)web入門

httpd筆記之理論詳解優(yōu)化配置(Apache)web入門

13、虛擬主機(jī)

 

有三種實(shí)現(xiàn)方案:

基于ip

為每個(gè)虛擬主機(jī)準(zhǔn)備至少一個(gè)ip地址;

基于port

為每個(gè)虛擬主機(jī)準(zhǔn)備至少一個(gè)專用port;實(shí)踐中很少使用;

基于hostname

為每個(gè)虛擬主機(jī)準(zhǔn)備至少一個(gè)專用hostname;

 

可混合使用上述三種方式中任意方式;

 

注意:一般虛擬主機(jī)莫與中心主機(jī)混用,所以,要使用虛擬主機(jī),先禁用中心主機(jī);

禁用中心主機(jī):注釋DocumentRoot

 

每個(gè)虛擬主機(jī)都有專用配置:

<VirtualHost "IP:PORT">

SeverName

DocumentRoot ""

</VirtualHost>

 

ServerAlias: 虛擬主機(jī)的別名;以下這些都可以定義在虛擬主機(jī)中

ErrorLog   

CustomLog

<Directory "">

</Directory>

               ip addr add [ip/mask] dev eth0  /添加新的IP

Ip addr list //查看

示例1:基于ip

<VirtualHost 172.16.100.6:80>

    ServerName web1.magedu.com

    DocumentRoot "/vhosts/web1/htdocs"

</VirtualHost>

 

<VirtualHost 172.16.100.7:80>

    ServerName web2.magedu.com

    DocumentRoot "/vhosts/web2/htdocs"

</VirtualHost>

 

示例2:基于port

<VirtualHost 172.16.100.7:80>

    ServerName web2.magedu.com

    DocumentRoot "/vhosts/web2/htdocs"

</VirtualHost>

 

<VirtualHost 172.16.100.7:8080>

    ServerName web3.magedu.com

    DocumentRoot "/vhosts/web3/htdocs"

</VirtualHost>

httpd筆記之理論詳解優(yōu)化配置(Apache)web入門

示例3:基于hostname

<VirtualHost 172.16.100.6:80>

    ServerName web1.magedu.com

    DocumentRoot "/vhosts/web1/htdocs"

</VirtualHost>

 

<VirtualHost 172.16.100.6:80>

    ServerName web2.magedu.com

    DocumentRoot "/vhosts/web2/htdocs"

</VirtualHost>

 

<VirtualHost 172.16.100.6:80>

    ServerName web3.magedu.com

    DocumentRoot "/vhosts/web3/htdocs"

</VirtualHost>

 

14、內(nèi)置的status頁(yè)面  //內(nèi)置狀態(tài)頁(yè)面

<Location /server-status>

    SetHandler server-status

    Order deny,allow

    Deny from all

    Allow from 172.16

</Location>

httpd筆記之理論詳解優(yōu)化配置(Apache)web入門

httpd筆記之理論詳解優(yōu)化配置(Apache)web入門

實(shí)現(xiàn):基于賬號(hào)實(shí)現(xiàn)訪問控制


向AI問一下細(xì)節(jié)

免責(zé)聲明:本站發(fā)布的內(nèi)容(圖片、視頻和文字)以原創(chuàng)、轉(zhuǎn)載和分享為主,文章觀點(diǎn)不代表本網(wǎng)站立場(chǎng),如果涉及侵權(quán)請(qǐng)聯(lián)系站長(zhǎng)郵箱:is@yisu.com進(jìn)行舉報(bào),并提供相關(guān)證據(jù),一經(jīng)查實(shí),將立刻刪除涉嫌侵權(quán)內(nèi)容。

AI