wed服務基礎·httpd基礎配置詳解

一、 Web Service基礎:

service:計算機后臺提供的功能或計算機可以提供的某一種功能

Web Service本質:通過網絡調用其它網站的資源

根據來源的不同,分為兩種服務:

本地服務:使用同一臺機器提供的服務,不需要網絡

網絡服務:使用另一臺機器提供的服務,需要網絡

 

IANA互聯網地址授權機構(Internet Assigned Numbers Authority):

負責對IP地址分配規劃以及對TCP/UDP公共服務的端口定義

 

BSD Socket

IPC(進程間通信)的一種實現,允許位于不同主機上不同進程之間進行通信

Socket API封裝了內核中的socket通信相關的系統調用

(1)根據傳輸層協議分類

SOCK_STREAM:tcp套接字

SOCK_DGRAM:UDP套接字

SOCK_RAWraw裸套接字

(2)根據套接字所使用的地址格式  Socket Domain

AF_INET(Address Family):IPv4的地址

AF_INET6ipv6的地址

AF_UNIX:同一主機上不同進程之間通信使用

TCP/UDP特點

TCPTransmission Control Protocol):傳輸控制協議

UDPUser Datagram Protocol):用戶數據報協議

TCP特點:

面向連接的協議

TCP是可靠的

TCP會依序排序數據包,不管數據包到達的先后順序

可以通過三次握手實現流量控制

因為有三次握手所以TCP傳輸速度慢

TCP是重量級的

TCP要建立連接、保證可靠性和有序性,就會傳輸更多信息,所以包頭大

TCP協議的頭結構

來源端口(2字節

目的端口(2字節

序號(4字節

確認序號(4字節

頭長度(4

保留(6

URG

ACK

PSH

RST

SYN

PIN

窗口大?。?/span>2字節

校驗和(16

緊急指針(16

選項(可選)

數據

 

UDP特點:

無連接協議

UDP是不可靠的

UDP對數據包的接受是不做管理(無序)

UDP沒有流量控制

相對于TCP,UDP傳輸速度較快

UDP是輕量級的

UDP包頭小

UDP協議的頭結構

源端口(2字節

目的端口(2字節

封報長度(2字節

校驗和(2字節

數據

 

TCPUDP主要區別如下:

TCP:是面向連接的、可靠地、有序的、速度慢的協議;頭部比UDP大;無界有擁塞控制

基于TCP的協議:HTTP/HTTPS  Telnet  FTP  SMTP

UDP是無連接的、不可靠的、無序的、速度快的協議;有界無擁塞控制

基于UDP的協議:DHCP  DNS  SNMP  TFTP  BOOTP

 

TCP協議的特性:

建立連接:三次握手

將數據打包成段:校驗和(CRC-32)

確認、重傳及超時

排序:基于邏輯序號實現

流量控制:滑動窗口算法

擁塞控制:慢啟動和擁塞避免算法

 

二、 HTTP協議

http(hyper text transfer protocol)超文本傳輸協議    應用層協議

html(Hyper Text Mark Language)超文本標記語言

一種用于創建網頁的標準標記語言

HTML語法示例:

<html>
<head>
<title>TITLE</title>
</head>
<body>
<h1></h1>
<p> ...... <a > ...... </a> </p>
<h2> </h2>
</body>
</html>

HTTP協議:

超文本傳輸協議是一種通信協議,允許將超文本標記語言文檔從Web服務器傳輸到客戶端的瀏覽器。

http協議版本

HTTP0.9:原型版本,只能傳輸文本文件

HTTP1.0:支持MIME機制、cache支持、method(請求方法)

HTTP1.1:增強了緩存功能

HTTP2.0:大大提升了性能

 

工作模式:一次http事務===>請求<==>響應

一次請求和一次HTTP響應的通信過程就是一次完成的http事務

http請求報文:http request

http響應報文: http response

 

URLUniform Resource Locator)統一資源定位符

是因特網上標準的資源的地址;用于描述服務器某特定資源的位置

URL標準格式:協議類型://服務器地址(必要時需加上端口號)/路徑/文件名

  Scheme(協議)://Server(服務器)[:Port](端口)[/PATH/TO/SOME_RESOURCE](路徑、文件)

  例如 http://www.sina.com.cn/index.html 

Web資源:web resource

wed服務基礎·httpd基礎配置詳解

靜態資源:原始形式與響應內容一致,無需服務端做出額外處理

.jpg  .png  .gif  .html  txt  .js  .css  .mp3  .avi

動態資源:服務端需要通過執行程序做出處理,發送給客戶端的事程序的運行結果

.php  .jsp  

注意:一個網頁中展示的資源可能有多個,每個資源都需要單獨請求,Web頁面通常是一組資源的集合。

 

一次完整的http請求處理過程:

       1.建立連接—— 接受一個客戶端連接,如果如果不希望與這個客戶端建立連接,就直接關閉

2.接收請求—— 從網絡中讀取一條HTTP 請求報文

3.處理請求—— 對請求報文進行解析,并且采取相應的行動

4.訪問資源—— 發起系統調用,訪問報文中指定的資源

5.構建響應報文并發送響應報文—— 創建帶有正確首部的HTTP 響應報文

6.記錄日志,分析用戶行為—— 將與已完成事務有關的內容記錄在一個日志文件中

 

并發訪問響應模型:

單進程I/O模型:啟動一個進程處理用戶請求,一次只能處理一個請求,多個請求被串行響應

多進程I/O結構:由父進程并行啟動多個子進程,每個子進程響應一個請求

復用的I/O結構:一個進程響應n個請求

多線程模式:一個進程生成n個線程,一個線程處理一個請求

事件驅動(event-driven):一個進程直接處理n個請求

復用的多進程I/O結構:啟動多個(m)個進程,每個進程生成(n)個線程

響應的請求的數量:m*n

wed服務基礎·httpd基礎配置詳解

Web Server請求處理:分析請求報文的HTTP首部

HTTP協議

http請求報文首部

http響應報文首部

請求報文首部的格式

<method><URL><VERSION>

HEADERS (name:value)

<request body>  請求的主體部分

 

訪問資源:獲取請求報文中請求的資源

web服務器,即存放了web資源的主機,負責向請求者提供對方請求的靜態資源,或動態資源運行生成的結果

Docroot:存放靜態資源或者動態資源的本地文件系統路徑

 

web 服務器的資源路徑映射方式

1.Docroot

2.alias

3.虛擬主機的Docroot

4.用戶家目錄的Docroot111111111

例:http://www.rookie.com/rookie.jpg

Apache 配置文件中定義了根目錄/var/www/html/

在此目錄下存放rookie.jpg

 

http請求處理中的連接模式:

保持連接(長連接) keep-alive

避免過多的連接保持,可以從時間和數量兩個維度對長連接加以限制

非保持連接(短連接)

對于大量并發的場景中,短連接的三次握手四次揮手占據了大量帶寬

 

常用Http 服務器程序

Httpd Apache

Nginx

Lighttpd

 

應用程序服務器

不僅能處理靜態資源,還能處理動態資源

IIS: .Net 程序

Tomcat:. jsp 程序

 

Httpd 的特性

高度模塊化:核心模塊+ 功能模塊

DSO dynamic share object  動態裝卸載

MPM:多路處理模塊機制Multipath processing Modules) )

Prefork: 多進程模型,每個進程響應一個請求

一個主進程:負責生成子進程及回收子進程;負責創建套接字;負責接收請求,并將其派發給某子進程進行處理

       n個子進程:每個子進程處理一個請求

       工作模型:會預先生成幾個空閑進程,隨時等待用于響應用戶請求;最大空閑和最小空閑

Worker: 多進程多線程模型,每線程處理一個用戶請求

一個主進程:負責生成子進程;負責創建套接字;負責接收請求,并將其派發給某子進程進行處理

多個子進程:每個子進程負責生成多個線程

每個線程:負責響應用戶請求

并發響應數量:m*n

      m:子進程數量

      n:每個子進程所能創建的最大線程數量

Event :事件驅動模型,多進程模型,每個進程響應多個請求

       一個主進程 :負責生成子進程;負責創建套接字;負責接收請求,并將其派發給某子進程進行處理

       子進程:基于事件驅動機制直接響應多個請求

在httpd-2.2中仍為測試使用模型

在httpd-2.4event可生產環境中使用

 

Httpd 程序版本

1.3:停止維護

2.0

2.2 :CentOS 6 默認版本,event仍為測試使用模型

2.4 :CentOS 7  默認版本,event可生產環境中使用

 

Httpd 功能特性

CGI Common Gateway Interface(公共網關接口)

虛擬主機:基于IP ,基于端口,基于FQDN

反向代理

負載均衡

路徑別名

豐富的用戶認證機制

Basic

Digest

  支持擴展的第三方模塊

 

CentOS 6httpd-2.2

程序環境:

配置文件:

/etc/httpd/conf/httpd.conf

/etc/httpd/conf.d/*.conf

服務腳本:/etc/rc.d/init.d/httpd

腳本配置文件:/etc/sysconfig/httpd

主程序文件:

/usr/sbin/httpd

/usr/sbin/httpd.event

/usr/sbin/httpd.worker

日志文件:

/var/log/httpd:

access_log:訪問日志

error_log:錯誤日志

站點文檔:/var/www/html

模塊文件路徑:/usr/lib64/httpd/modules

服務控制和啟動:

chkconfig  httpd  on|off

service  {start|stop|restart|status|configtest|reload}  httpd

 

CentOS 7httpd-2.4

程序環境:

配置文件:

/etc/httpd/conf/httpd.conf

/etc/httpd/conf.d/*.conf

模塊相關的配置文件:/etc/httpd/conf.modules.d/*.conf

systemd unit file

/usr/lib/systemd/system/httpd.service

主程序文件:

/usr/sbin/httpd

httpd-2.4支持MPM的動態切換;

日志文件:

/var/log/httpd:

access_log:訪問日志

error_log:錯誤日志

站點文檔:/var/www/html

模塊文件路徑:/usr/lib64/httpd/modules

服務控制和啟動:

systemctl  enable|disable  httpd.service

systemctl  {start|stop|restart|status}  httpd.service

 

Httpd 2.2 配置文件

主配置文件:/etc/httpd/conf/httpd.conf

###Section 1:Global Environment

###Section 2:’Main’ Server configuration  (默認)

###Section 3:Virtual Hosts

配置格式

指令行:指令 Directive:value

Directive:不區分字符大小寫,但是字符首位應該大寫

Value:作為路徑時候,是否區分字符大小寫,取決于文件系統

 

常用配置:

1、修改監聽的IPPORT

Listen [IP-address:]portnumber [protocol]

(1) 省略IP表示為0.0.0.0

(2) Listen指令可重復出現多次

Listen  80

Listen  8080

(3) 修改監聽socket,重啟服務進程方可生效

(4) 限制其必須通過ssl通信時,protocol需要定義為https

 

2、持久連接的概念

Persistent Connection,TCP 連接建立后, 每個資源獲取完成后不會斷開連接,繼續進行其他資源請求的進行,同時為了避免大量的連接被占據,可以從數量和時間上兩個維度進行限制。Httpd 2.4 支持毫秒級別的限制。

副作用:對并發訪問量較大的服務器,長連接機制會使后續某些請求無法得到正常響應

折衷:使用較短的持久連接時長,以及較少的請求數量

三個參數

KeepAlive On|Off

KeepAliveTimeout 15

MaxKeepAliveRequests 100

 

3、MPM

MPM的基本概念和模型:prefork  woker  event

httpd-2.2不支持同時編譯多個MPM模塊,所以只能編譯選定要使用的那個;CentOS 6rpm包為此專門提供了三個應用程序文件,httpd(prefork), httpd.worker, httpd.event,分別用于實現對不同的MPM機制的支持

默認使用的為/usr/sbin/httpd,其為preforkMPM模塊

查看httpd 程序的模塊列表

查看靜態編譯的模塊:httpd -l

查看靜態編譯及動態編譯的模塊:httpd -M

更換使用httpd程序,以支持其它MPM機制

/etc/sysconfig/httpd

HTTPD=/usr/sbin/httpd.{worker,event}

注意:重啟服務進程方可生效

MPM配置:

條件式配置,prefork worker分別對應不同的配置區段

Prefork 模式

<IfModule prefork.c>
StartServers    8 服務器進程啟動時候啟動多少空閑進程
MinSpareServers 5 最少空閑進程數,如果少于5 ,主控進程再啟動幾個達到5
MaxSpareServers 20 最大空閑進程數,如果大于20 主控進程對子進程進行回收
ServerLimit 256 所允許啟動的最大在線進程數量
MaxClients 256 最大允許啟動進程數量響應用戶請求(最大并發響應數)
MaxRequestsPerChild  4000每個進程最多可以處理多少個請求,超過4000 銷毀
</IfModule>

worker模式

<IfModule worker.c>
StartServers    4 服務器進程啟動時候啟動多少空閑進程
MaxClients      300 最大并發響應數300
MinSpareThreads 25 最小空閑線程數25
MaxSpareThreads 75 最大空閑線程數75
ThreadsPerChild 25 每個進程啟動25 個線程
MaxRequestsPerChild 0 每個進程可以處理無限個請求
</IfModule>

4DSO

配置指定實現模塊加載

LoadModule  <mod_name>  <mod_path>

模塊文件路徑可使用相對路徑:

相對于ServerRoot(默認/etc/httpd

 

5、定義中心主機Main Server的文檔頁面路徑

ServerName

語法格式: ServerName [scheme://]fully-qualified-domain-name[:port]

DocumentRoot  “”

文檔路徑映射:

DoucmentRoot指向的路徑為URL路徑的起始位置

其相當于站點URL的根路徑

URL PATHFileSystem PATH不是等同的,而是存在一種映射關系

URL /  –> FileSystem /var/www/html/

/images/logo.jpg –> /var/www/html/images/logo.jpg

 

6、站點訪問控制常見機制

可基于兩種機制指明對哪些資源進行何種訪問控制

文件系統路徑

<Directory  “/var/html/www”>

……

</Directory> // 對目錄下所有資源實現訪問控制

<File “ ”>

….

</File> // 對單個文件實現訪問控制

 

<FileMatch  “PATTERN”>

</FileMatch> // 使用正則表達式模式匹配進行訪問控制

注意:正則表達式要啟用正則表達式引擎,效率會降低很多

基于URL 路徑

<Location “ ”>

</Locaion>

 

<LocationMatch “ ”>

</LocationMatch>

 

7、定義站點主頁面

DirectoryIndex index.html index.html.var

當請求的資源不存在的時候 http服務器會有兩種處理結果

1.返回404或者403

2.將當前網頁目錄下內容全部列出來

 

8、定義路徑別名

定義一個DocumentRoot  “/data/www/”

網站訪問 http://www.rookie.com/download/test.html

對應文件存放目錄應該是 /data/www/download/test.html

定義一個目錄別名

Alias /download/  “/rpms/pub”

    此時訪問

    http://www.rookie.com/download/test.html

    對應的文件存放目錄應該是/rpms/pub/test.html

 

9、設定默認字符集

AddDefaultCharset UTF-8

三種常見的中文字符集格式 GBK  GB2312  GB18030

 

10、日志設定

日志類型:訪問日志和錯誤日志

錯誤日志

定義 ErrorLog logs/error_log

/etc/httpd/conf/httpd.conf指定,相對目錄(/etc/httpd/下)

錯誤日志級別

debug,   所有信息,只要產生就全部記錄下來

info,   所有的信息數據

notice,   引起注意

warn,   警告

error, 發生錯誤

crit, 級別很嚴重

alert, 紅色警戒

emerg. 引起恐慌

訪問日志:

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

CustomLog  logs/access_log  combined

LogFormat format strings:

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

%h:客戶端IP地址

%lRemote User, 通常為一個減號(“”)

%uRemote user (from auth; may be bogus if return status (%s) is 401);非為登錄訪問時,其為一個減號

%t:服務器收到請求時的時間

%rFirst line of request,即表示請求報文的首行;記錄了此次請求的“方法”,“URL”以及協議版本

%>s:響應狀態碼

%b:響應報文的大小,單位是字節;不包括響應報文的http首部;

%{Referer}i:請求報文中首部“referer”的值;即從哪個頁面中的超鏈接跳轉至當前頁面的

%{User-Agent}i:請求報文中首部“User-Agent”的值;即發出請求的應用程序

 

11、基于用戶的訪問控制

常見的用戶認證方式:

http協議自身提供的認證(明文,抓包即可獲取密碼)–>basic 明文認證

表單認證–>digest消息摘要認證

認證質詢:

www-authenticate

響應碼為401,拒絕客戶端請求,并說明要求客戶端提供賬號密碼

Authorization

客戶端用戶填入賬號密碼后再次發送請求報文,認證通過時,則服務器發送響應的資源

安全域,需要用戶認證后方能訪問的路徑。應該通過名稱對其進行標示,以便于告知用戶認證的原因

用戶賬號密碼存放位置

虛擬賬號:僅用于訪問某服務時候用到的認證標識

存儲:文件文件、SQL數據庫、LDAP 輕量級目錄訪問協議

 

Basic認證配置步驟

(1)定義安全域

    <Directory  “ ”>
        Options None
        AllowOverride None
        AuthType Basic
        AuthName  “String”
        AuthUserFile  “/PATH/TO/HTTPD_USER_PASSWD_FILE”
     # AuthGroupFile  “/PATH/TO/HTTPD_GROUP_FILE”  #基于組來認證
        Require user username1 username2...
     #  Require group grpname1 grpname2 ...   
    </Directory >

(2)賬號和密碼存儲(文本文件)

使用命令完成密碼文件的創建和用戶管理

 

12、虛擬主機

通常情況下,一個服務器上只能跑一個網站,或者說一個進程只能跑一個網站。虛擬主機實現了一臺機器上或者一個Web服務上為多個網站提供服務。

站點標示:Socket

IP相同,端口不同,易于實現,不實用

IP不同,端口均為默認端口,不實用,需要多個IP,成本很高

IP相同,端口相同,FQDN不同,在請求報文首部實現

 

虛擬主機的實現方式

基于IP為每個虛擬主機至少準備一個IP地址

基于port為每個虛擬主機至少一個獨立的port

基于FQDN每個虛擬主機至少一個FQDN

 

虛擬主機的配置

注釋DocumentRoot指令,禁用Main主機


配置語法

 <VirtualHost IP:PORT>
     ServerName FQDN
     DocumentRoot  “ “ //站點路徑
  </VirtualHost>

可用指令

ServerAlias  虛擬主機的別名,可多次使用

Errorlog 專用的錯誤日志

CustomLog 專用的自定義日志

<Directory  “ ”>

</Directory> 對資源做訪問控制

 

基于IP的虛擬主機示例:

<VirtualHost 172.16.100.6:80>
ServerName www.a.com
DocumentRoot "/www/a.com/htdocs"
</VirtualHost>
 
<VirtualHost 172.16.100.7:80>
ServerName www.b.net
DocumentRoot "/www/b.net/htdocs"
</VirtualHost>
 
<VirtualHost 172.16.100.8:80>
ServerName www.c.org
DocumentRoot "/www/c.org/htdocs"
</VirtualHost>

基于端口的虛擬主機:

<VirtualHost 172.16.100.6:80>
ServerName www.a.com
DocumentRoot "/www/a.com/htdocs"
</VirtualHost>
 
<VirtualHost 172.16.100.6:808>
ServerName www.b.net
DocumentRoot "/www/b.net/htdocs"
</VirtualHost>
 
<VirtualHost 172.16.100.6:8080>
ServerName www.c.org
DocumentRoot "/www/c.org/htdocs"
</VirtualHost>

基于FQDN的虛擬主機:

<VirtualHost 172.16.100.6:80>
ServerName www.a.com
DocumentRoot "/www/a.com/htdocs"
</VirtualHost>
 
<VirtualHost 172.16.100.6:80>
ServerName www.b.net
DocumentRoot "/www/b.net/htdocs"
</VirtualHost>
 
<VirtualHost 172.16.100.6:80>
ServerName www.c.org
DocumentRoot "/www/c.org/htdocs"
</VirtualHost>

注意:如果是httpd-2.2,則使用基于FQDN的虛擬主機時,需要事先使用如下指令:

NameVirtualHost IP:PORT

 

13、status頁面

Httpd狀態頁面開啟 /etc/httpd/conf/httpd.conf開啟status模塊

啟動狀態訪問頁面:

httpd-2.2
<Location /server-status>
SetHandler server-status
Order allow,deny
Allow from 172.16
</Location>
httpd-2.4
<Location /server-status>
SetHandler server-status
<RequireAll>
Require ip 172.16
</RequireAll>
</Location>

 

關于上述理論所做驗證如下:

[root@localhost ~]#systemctl start httpd.service
在瀏覽器輸入本機IP地址,顯示歡迎頁

wed服務基礎·httpd基礎配置詳解 

此歡迎頁基于/etc/httpd/conf.d中的welcome.conf
如不需歡迎頁,可將welcome.conf改名,并重啟服務
[root@localhost ~]#cd /etc/httpd/conf.d/
[root@localhost /etc/httpd/conf.d]#mv welcome.conf{,.bak}
[root@localhost /etc/httpd/conf.d]#systemctl restart httpd.service
[root@localhost /etc/httpd/conf.d]#cp /etc/issue /var/www/html/

wed服務基礎·httpd基礎配置詳解 

 

如想訪問8080端口,修改/etc/httpd/conf/http.conf文件中Listen即可

wed服務基礎·httpd基礎配置詳解 

[root@localhost /etc/httpd/conf]#ss -tnl

wed服務基礎·httpd基礎配置詳解 

添加端口配置

[root@localhost /etc/httpd/conf]#vim /etc/httpd/conf.d/port.conf

wed服務基礎·httpd基礎配置詳解 

[root@localhost /etc/httpd/conf]#!sys
systemctl restart httpd.service
[root@localhost /etc/httpd/conf]#!ss

wed服務基礎·httpd基礎配置詳解 

如果不想用此端口,將此文件刪除即可
[root@localhost /etc/httpd/conf]#rm -f ../conf.d/port.conf
[root@localhost /etc/httpd/conf]#!sys
systemctl restart httpd.service
[root@localhost /etc/httpd/conf]#!ss (可以看到10000端口已經被刪除)

wed服務基礎·httpd基礎配置詳解 

在沒有主頁情況下會顯示默認頁,添加主頁后會顯示主頁

wed服務基礎·httpd基礎配置詳解 

[root@localhost ~]#systemctl restart httpd.service

wed服務基礎·httpd基礎配置詳解 

[root@localhost ~]#yum install -y telnet
[root@localhost ~]#telnet 172.16.250.149 80
Trying 172.16.250.149...
Connected to 172.16.250.149.
Escape character is '^]'.

wed服務基礎·httpd基礎配置詳解 

[root@localhost ~]#systemctl restart httpd.service
[root@localhost ~]#telnet 172.16.250.149
Trying 172.16.250.149...
 
root@localhost ~]#vim /etc/httpd/conf.d/keepalive.conf
 
KeepAlive Off
KeepAliveTimeout 30
MaxKeepAliveRequests 100

MPM

httpd2.2     CentOS6

wed服務基礎·httpd基礎配置詳解 

[root@Rookie ~]#service httpd restart
停止 httpd:                                               [確定]
正在啟動 httpd:httpd.worker: apr_sockaddr_info_get() failed for Rookie.CN
httpd.worker: Could not reliably determine the server's fully qualified domain name, using 127.0.0.1 for ServerName
                                                           [確定]
[root@Rookie ~]#ps aux
root     2771  0.0  0.2 186264  4124 ?        Ss   02:19   0:00 /usr/sbin/httpd.worker
apache   2774  0.0  0.2 530524  5396 ?        Sl   02:19   0:00 /usr/sbin/httpd.worker
apache   2775  0.0  0.2 530524  5416 ?        Sl   02:19   0:00 /usr/sbin/httpd.worker
apache   2782  0.0  0.2 530524  5420 ?        Sl   02:19   0:00 /usr/sbin/httpd.worker
 
[root@Rookie ~]#vim /etc/sysconfig/httpd

wed服務基礎·httpd基礎配置詳解 

[root@Rookie ~]#service httpd restart
停止 httpd:                                               [確定]
正在啟動 httpd:httpd.event: apr_sockaddr_info_get() failed for Rookie.CN
httpd.event: Could not reliably determine the server's fully qualified domain name, using 127.0.0.1 for ServerName
                                                           [確定]
[root@Rookie ~]#ps aux
root      2927  0.5  0.2 186200  4112 ?        Ss   02:23   0:00 /usr/sbin/httpd.event
apache    2930  0.0  0.2 530460  5384 ?        Sl   02:23   0:00 /usr/sbin/httpd.event
apache    2931  0.0  0.2 530460  5404 ?        Sl   02:23   0:00 /usr/sbin/httpd.event
apache    2932  0.0  0.2 530460  5388 ?        Sl   02:23   0:00 /usr/sbin/httpd.event

http2.4    CentOS7
[root@localhost ~]#vim /etc/httpd/conf.modules.d/00-mpm.conf

wed服務基礎·httpd基礎配置詳解 

[root@localhost ~]#systemctl restart httpd.service
[root@localhost ~]#ps aux

 

DOS CentOS7

wed服務基礎·httpd基礎配置詳解 

 

定義‘Main’ server的文檔頁面路徑

更改服務器名稱      CentOS6
[root@Rookie ~]#vim /etc/hosts

wed服務基礎·httpd基礎配置詳解 

[root@Rookie ~]#service httpd restart

wed服務基礎·httpd基礎配置詳解 

[root@Rookie ~]#service httpd restart

 

DocumentRoot

[root@localhost ~]#mkdir /data/web/www/ -pv

wed服務基礎·httpd基礎配置詳解 

[root@localhost ~]#vim /etc/httpd/conf/httpd.conf

wed服務基礎·httpd基礎配置詳解 

[root@localhost ~]#systemctl restart httpd.service

wed服務基礎·httpd基礎配置詳解 

 

站點訪問控制(準許)   httpd2.4   CentOS7

[root@localhost ~]#vim /etc/httpd/conf/httpd.conf

wed服務基礎·httpd基礎配置詳解 

[root@localhost ~]#systemctl restart httpd.service

wed服務基礎·httpd基礎配置詳解 

 

httpd2.2  CentOS6
[root@Rookie ~]#mkdir /data/html -pv

wed服務基礎·httpd基礎配置詳解 

[root@Rookie ~]#vim /etc/httpd/conf/httpd.conf

wed服務基礎·httpd基礎配置詳解 

wed服務基礎·httpd基礎配置詳解 

[root@Rookie ~]#service httpd restart

wed服務基礎·httpd基礎配置詳解 

order和allow、deny 2.2  CentOS6

只準許172.16.0.125網段訪問

wed服務基礎·httpd基礎配置詳解 

開放172.16網段,屏蔽172.16.0.125

wed服務基礎·httpd基礎配置詳解 

[root@Rookie ~]#service httpd reload
重新載入 httpd:

2.4  CentOS7
[root@localhost ~]#vim /etc/httpd/conf/httpd.conf

wed服務基礎·httpd基礎配置詳解 

[root@localhost ~]#systemctl restart httpd.service

[root@localhost /etc/httpd/conf]#mkdir /data/web/www/images
[root@localhost /etc/httpd/conf]#find /usr/share/ -iname "*.jpg" -exec cp {} /data/web/www/images/ \;
將/usr/share/下所有找到的圖片放到/data/web/www/images/下
[root@localhost /etc/httpd/conf]#vim httpd.conf

wed服務基礎·httpd基礎配置詳解 

[root@localhost /etc/httpd/conf]#systemctl restart httpd.service

wed服務基礎·httpd基礎配置詳解 

wed服務基礎·httpd基礎配置詳解 

[root@localhost /etc/httpd/conf]#systemctl restart httpd.service

wed服務基礎·httpd基礎配置詳解 

wed服務基礎·httpd基礎配置詳解 

[root@localhost /etc/httpd/conf]#vim httpd.conf

wed服務基礎·httpd基礎配置詳解 

[root@localhost /etc/httpd/conf]#systemctl restart httpd.service

 

定義站點主頁面

wed服務基礎·httpd基礎配置詳解 

[root@localhost ~]#systemctl restart httpd.service

wed服務基礎·httpd基礎配置詳解 

 

定義路徑別名    httpd2.4

[root@localhost ~]#vim /etc/httpd/conf/httpd.conf

wed服務基礎·httpd基礎配置詳解 

wed服務基礎·httpd基礎配置詳解 

wed服務基礎·httpd基礎配置詳解 

[root@localhost ~]#systemctl restart httpd.service

wed服務基礎·httpd基礎配置詳解 

將Alias注釋掉

wed服務基礎·httpd基礎配置詳解 

wed服務基礎·httpd基礎配置詳解 

 

日志設定

[root@localhost ~]#tail /var/log/httpd/error_log

訪問日志

[root@localhost /etc/httpd/conf]#vim httpd.conf

 

基于用戶的訪問控制

[root@localhost /etc/httpd/conf]#htpasswd -c /tmp/test.users zhang
New password:
Re-type new password:
Adding password for user zhang
[root@localhost /etc/httpd/conf]#cat /tmp/test.users
zhang:$apr1$MqD2EyV0$tFQ4IUw.V.e3EnGPolI5E/
[root@localhost /etc/httpd/conf]#htpasswd /tmp/test.users wang
New password:
Re-type new password:
Adding password for user wang
[root@localhost /etc/httpd/conf]#cat /tmp/test.users
zhang:$apr1$MqD2EyV0$tFQ4IUw.V.e3EnGPolI5E/
wang:$apr1$d1AFoDa6$U8AwV4qan80HbN5hsdpKd0

wed服務基礎·httpd基礎配置詳解 

只準許wang zhang 兩個用戶登錄

wed服務基礎·httpd基礎配置詳解 

[root@localhost /etc/httpd/conf]#!sys

wed服務基礎·httpd基礎配置詳解 

準許所有合法用戶登錄

wed服務基礎·httpd基礎配置詳解 

[root@localhost /etc/httpd/conf]#!sys
systemctl restart httpd.service

wed服務基礎·httpd基礎配置詳解 

創建用戶賬號和組賬號文件,用戶名為之前賬號文件所包含的賬號

wed服務基礎·httpd基礎配置詳解 

wed服務基礎·httpd基礎配置詳解 

wed服務基礎·httpd基礎配置詳解 

 

基于IP的虛擬主機示例:

172.16.253.193 ilinux

172.16.253.199 iunix

wed服務基礎·httpd基礎配置詳解 

wed服務基礎·httpd基礎配置詳解 

wed服務基礎·httpd基礎配置詳解 

wed服務基礎·httpd基礎配置詳解 

wed服務基礎·httpd基礎配置詳解 

wed服務基礎·httpd基礎配置詳解 

wed服務基礎·httpd基礎配置詳解 

wed服務基礎·httpd基礎配置詳解 

wed服務基礎·httpd基礎配置詳解 

[root@localhost ~]#systemctl httpd restart

wed服務基礎·httpd基礎配置詳解 

wed服務基礎·httpd基礎配置詳解 

wed服務基礎·httpd基礎配置詳解 

 

基于端口的虛擬主機:

wed服務基礎·httpd基礎配置詳解 

wed服務基礎·httpd基礎配置詳解 

wed服務基礎·httpd基礎配置詳解 

wed服務基礎·httpd基礎配置詳解 

基于FQDN的虛擬主機:

wed服務基礎·httpd基礎配置詳解 

wed服務基礎·httpd基礎配置詳解 

wed服務基礎·httpd基礎配置詳解 

注意:如果是httpd-2.2,則使用基于FQDN的虛擬主機時,

需要事先使用如下指令:NameVirtualHost IP:PORT

 

status頁面

wed服務基礎·httpd基礎配置詳解 

[root@localhost ~]#!sys
systemctl restart httpd.service

 

原創文章,作者:Linux.rookie,如若轉載,請注明出處:http://www.www58058.com/77806

(1)
Linux.rookieLinux.rookie
上一篇 2017-06-09
下一篇 2017-06-10

相關推薦

  • 2、基本命令介紹

    http://note.youdao.com/yws/public/redirect/share?id=dbbed5e1e3ecce8712076f11e70fc038&type=false

    Linux干貨 2016-08-08
  • Linux基礎知識之GUN awk

    awk:報告生成器,格式化文本輸出    基本用法:    gawk [options] 'program' FILE …    options:     &…

    Linux干貨 2016-09-20
  • 循環語句

    馮羅伊曼體系架構 1.?輸入設備 2.?輸出設備 3.?存儲器 4.?運算器 5.?控制器 轉義序列:\\, \t , \r , \n , \”, ?\’ Python:是動態語言,強類型語言 算數運算符 + – */ % ** /是自然除,//是整除 位運算符 & | ?~ ?^ ?<< ?>> 原碼 5=&gt…

    Linux干貨 2018-03-26
  • day7作業練習

    1、顯示當前系統root、mage或wang用戶的UID和默認shell  2、找出/etc/rc.d/init.d/functions文件中行首為某單詞(包 括下劃線)后面跟一個小括號的行  3、使用egrep取出/etc/rc.d/init.d/functions中其基名     v …

    系統運維 2016-08-08
  • LVS實現

    一 LVS-NAT實驗前的準備 操作系統:CentOS 6.7 64位 配置防火墻,iptables –F 清理防火墻規則或者關閉iptables 關閉SELINUX, setenforce 0  #立即生效(實際是寬容模式) Director ip:172.16.2.1  VIP:192.168.1.8 RS1 ip:172.16.2.…

    Linux干貨 2016-12-29
  • Linux用戶和組的相關命令(二、組的相關命令)

    用戶和組之間息息相關。創建用戶時 ,Linux系統會默認生成一個與用戶名相同的組,這個組是用戶的私有組,也是用戶的主組。對用戶來說,主組有且只有一個,但是可以有零個或多個附加組??梢栽诮M內設置組管理員來管理組內的用戶列表,組管理員可以刪除用戶列表內的組員。組管理員不唯一,可以有零個或多個。 關于組及其屬性和組密碼及其屬性的有關信息保存在/etc/group和…

    2017-07-22
欧美性久久久久