一、 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_RAW:raw裸套接字
(2)根據套接字所使用的地址格式 Socket Domain
AF_INET(Address Family):IPv4的地址
AF_INET6:ipv6的地址
AF_UNIX:同一主機上不同進程之間通信使用
TCP/UDP特點
TCP(Transmission Control Protocol):傳輸控制協議
UDP(User 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字節) |
數據 |
TCP和UDP主要區別如下:
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
URL(Uniform Resource Locator)統一資源定位符
是因特網上標準的資源的地址;用于描述服務器某特定資源的位置
URL標準格式:協議類型://服務器地址(必要時需加上端口號)/路徑/文件名
Scheme(協議)://Server(服務器)[:Port](端口)[/PATH/TO/SOME_RESOURCE](路徑、文件)
例如 http://www.sina.com.cn/index.html
Web資源:web resource
靜態資源:原始形式與響應內容一致,無需服務端做出額外處理
.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
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.4中event可生產環境中使用
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 6:httpd-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 7:httpd-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、修改監聽的IP和PORT
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 6的rpm包為此專門提供了三個應用程序文件,httpd(prefork), httpd.worker, httpd.event,分別用于實現對不同的MPM機制的支持。
默認使用的為/usr/sbin/httpd,其為prefork的MPM模塊
查看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>
4、DSO
配置指定實現模塊加載
LoadModule <mod_name> <mod_path>
模塊文件路徑可使用相對路徑:
相對于ServerRoot(默認/etc/httpd)
5、定義中心主機Main Server的文檔頁面路徑
ServerName
語法格式: ServerName [scheme://]fully-qualified-domain-name[:port]
DocumentRoot “”
文檔路徑映射:
DoucmentRoot指向的路徑為URL路徑的起始位置
其相當于站點URL的根路徑
URL PATH與FileSystem 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地址
%l:Remote User, 通常為一個減號(“–”)
%u:Remote user (from auth; may be bogus if return status (%s) is 401);非為登錄訪問時,其為一個減號
%t:服務器收到請求時的時間
%r:First 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地址,顯示歡迎頁
此歡迎頁基于/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/
如想訪問8080端口,修改/etc/httpd/conf/http.conf文件中Listen即可
[root@localhost /etc/httpd/conf]#ss -tnl
添加端口配置
[root@localhost /etc/httpd/conf]#vim /etc/httpd/conf.d/port.conf
[root@localhost /etc/httpd/conf]#!sys systemctl restart httpd.service [root@localhost /etc/httpd/conf]#!ss
如果不想用此端口,將此文件刪除即可 [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端口已經被刪除)
在沒有主頁情況下會顯示默認頁,添加主頁后會顯示主頁
[root@localhost ~]#systemctl restart httpd.service
[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 '^]'.
[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
[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
[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
[root@localhost ~]#systemctl restart httpd.service [root@localhost ~]#ps aux
DOS CentOS7
定義‘Main’ server的文檔頁面路徑
更改服務器名稱 CentOS6 [root@Rookie ~]#vim /etc/hosts
[root@Rookie ~]#service httpd restart
[root@Rookie ~]#service httpd restart
DocumentRoot
[root@localhost ~]#mkdir /data/web/www/ -pv
[root@localhost ~]#vim /etc/httpd/conf/httpd.conf
[root@localhost ~]#systemctl restart httpd.service
站點訪問控制(準許) httpd2.4 CentOS7
[root@localhost ~]#vim /etc/httpd/conf/httpd.conf
[root@localhost ~]#systemctl restart httpd.service
httpd2.2 CentOS6 [root@Rookie ~]#mkdir /data/html -pv
[root@Rookie ~]#vim /etc/httpd/conf/httpd.conf
[root@Rookie ~]#service httpd restart
order和allow、deny 2.2 CentOS6
只準許172.16.0.125網段訪問
開放172.16網段,屏蔽172.16.0.125
[root@Rookie ~]#service httpd reload 重新載入 httpd:
2.4 CentOS7 [root@localhost ~]#vim /etc/httpd/conf/httpd.conf
[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
[root@localhost /etc/httpd/conf]#systemctl restart httpd.service
[root@localhost /etc/httpd/conf]#systemctl restart httpd.service
[root@localhost /etc/httpd/conf]#vim httpd.conf
[root@localhost /etc/httpd/conf]#systemctl restart httpd.service
定義站點主頁面
[root@localhost ~]#systemctl restart httpd.service
定義路徑別名 httpd2.4
[root@localhost ~]#vim /etc/httpd/conf/httpd.conf
[root@localhost ~]#systemctl restart httpd.service
將Alias注釋掉
日志設定
[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
只準許wang zhang 兩個用戶登錄
[root@localhost /etc/httpd/conf]#!sys
準許所有合法用戶登錄
[root@localhost /etc/httpd/conf]#!sys systemctl restart httpd.service
創建用戶賬號和組賬號文件,用戶名為之前賬號文件所包含的賬號
基于IP的虛擬主機示例:
172.16.253.193 ilinux
172.16.253.199 iunix
[root@localhost ~]#systemctl httpd restart
基于端口的虛擬主機:
基于FQDN的虛擬主機:
注意:如果是httpd-2.2,則使用基于FQDN的虛擬主機時,
需要事先使用如下指令:NameVirtualHost IP:PORT
status頁面
[root@localhost ~]#!sys systemctl restart httpd.service
原創文章,作者:Linux.rookie,如若轉載,請注明出處:http://www.www58058.com/77806