http協議

Web Service概述

web服務時一種應用程序的服務,它所提供的最主要的信息是一種超文本標記語言(HTML)、多媒體資源(如:視頻、圖片、音樂等)。HTML是一種純文字的文本信息,通過所謂的標簽來規范所要顯示的內容格式,在客戶端通過瀏覽器的形式對HTML及多媒體資源進行解析,然后呈現在終端上。主要由httphttps協議實現

http協議概述

HTTP是一個屬于應用層的面向對象的協議,B/S架構,由于其簡單、快速的方式,適用于分布式超媒體信息系統。它于1990年提出,經過幾年的使用與發展,得到不斷的完善和擴展。

http的協議版本

HTTP/0.9
HTTP/1.0:cache,MIME,method
       MIMEMultiurpose Internet Mail Extesion
       methodGET HEAD POST PUT DELETE TRACE OPTIONS
HTTP/1.1:增強了緩存功能
HTTP/2.0

http協議的特點

1.支持客戶/服務器模式。
2.簡單快速:客戶向服務器請求服務時,只需傳送請求方法和路徑。請求方法常用的有GET、HEAD、POST。每種方法規定了客戶與服務器練習的類型不同。由于HTTP協議簡單,使得HTTP服務器的程序規模小,因而通信速度很快
3.靈活:HTTP允許傳輸任意類型的數據對象。正在傳輸的類型有Centent-Type加以標記。
4.無連接:無連接的含義是限制每次連接只處理一個請求。服務器處理完客戶的請求,并收到客戶的應答后,即斷開連接。采用這種方式可以節省傳輸時間。
5.無狀態:HTTP協議是無狀態協議。無狀態是指協議對于事物處理沒有記憶能力。缺少狀態意味著如果后續處理需要前面的信息,則它必須重傳,這樣可能導致每次連接傳送的數據量增大。另一方面,在服務器不需要先前信息時它的應答就較快。

PORT

服務所使用的端口信息,http服務默認為80端口,https默認為443端口,ftp默認為21端口,而這些默認的端口是可省略的,協議自身會去識別,只有當認為更改服務器服務監聽端口時需要在客戶端手動指定端口,否則會指向默認端口

IANA

IANA(The Internet Assigned Numbers Authority,互聯網數字分配機構)是負責協調一些使Internet正常運作的機構。同時,由于Internet已經成為一個全球范圍的不受集權控制的全球網絡,為了使網絡在全球范圍內協調,存在對互聯網一些關鍵的部分達成技術共識的需要,而這就是IANA的任務。 
0-1023:眾所周知,永久地址分配給固定的應用使用,特權端口; 
1024-41951:為注冊端口,但要求不是特別嚴格,分配給程序注冊為某應用使用; 3306/tcp, 11211/tcp 
41952+:客戶端程序隨機使用的端口,動態端口,或私有端口;其范圍定義在/proc/sys/net/ipv4/ip_local_port_range

套接字

源IP地址和目的IP地址以及源端口號和目的端口號的組合稱為套接字。其用于標識客戶端請求的服務器和服務。它是網絡通信過程中端點的抽象表示,包含進行網絡通信必須的五種信息:連接使用的協議,本地主機的IP地址,本地進程的協議端口,遠地主機的IP地址,遠地進程的協議端口。

套接字類型

BSD Socket:IPC的一種實現,允許位于不同主機(也可以使同一主機)上的進程之間進行通信
       Socket API(封裝了內核中的socket通信相關的系統調用)
           SOCK_STREAM: tcp套接字
           SOCK_DGRAM: UDP套接字
           SOCK_RAW: raw套接字
根據套接字所使用的地址格式,Socket Domain
           AF_INET:Address Family,IPv4
           AF_INET6:IPv6
           AF_UNIX:同一主機上的不同進程間基于socket套接字通信使用的一種地址; Unix_SOCK

TCP協議狀態類型

CLOSED:關閉連接
LISTEN:監聽
SYN_SENT:請求建立連接
SYN_RECV:接收請求連接
ESTABLISHED:已建立的連接
FIN_WAIT1:主動關閉tcp連接,等待對方響應
CLOSE_WAIT:在關閉連接之前還有數據要發送或其它事物
FIN_WAIT2:被動關閉tcp連接
LAST_ACK:等待對方確認關閉連接
TIMEWAIT:當主動發起關閉連接請求后,則進入TIME_WAIT

TCP協議的特性:

1.建立連接:三次握手
2.將數據打包成段:校驗和(CRC32)
3.確認、重傳及超時
4.排序:邏輯序號
5.流量控制:滑動窗口算法
6.擁塞控制:慢啟動和擁塞避免算法

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

(1)建立或處理連接:接收請求或拒絕請求
(2)接收請求:接收來自于網絡上的主機請求報文中對某特定資源的一次請求的過程
(3)處理請求:對請求報文進行解析,獲取客戶端請求的資源及請求方法等相關信息
(4)訪問資源:獲取請求報文中請求的資源
(5)構建響應報文
(6)發送響應報文
(7)記錄日志

接收請求的模型

并發訪問響應模型:
   單進程I/O模型:啟動一個進程處理用戶請求; 這意味著,一次只能處理一個請求,多個請求被串行響應
   多進程I/O結構:并行啟動多個進程,每個進程響應一個請求
   復用的I/O結構:一個進程響應n個請求
       多線程模式:一個進程生成n個線程,一個線程處理一個請求
       事件驅動(event-driven):一個進程直接n個請求
   復用的多進程I/O結構:啟動多個(m)個進程,每個進程生成(n)個線程
       響應的請求的數量:m*n

一次http事物

http請求報文首部
http響應報文首部

請求報文首部的格式:request
   <method> <URL> <VERSION>
   HEADERS(name value)

   <request body>

響應報文首部的格式:response
   <version> <status> <reason-phrase>
   HEADERS(name value)

   <entity-body>

method:請求方法,標明客戶端希望服務器對資源執行的動作
   GET, HEAD, POST
version:
   HTTP/<major>.<minor>
status:
   三位數字:如200, 301, 302, 404, 502; 標記請求處理過程中發生的情況
reason-phrase:
   狀態碼所標記的狀態的簡要描述
headers:
   每個請求或響應報文可包含任意個首部;每個首部都有首部名稱,后面跟一個冒號,而后跟上一個可選空格,接著是一個value
entity-body:請求時附加的數據或響應時附加的數據
method
GET:從服務器獲取一個資源
HEAD:只獲取一個資源的首部,而不是內容
POST:向服務器發送要處理的數據
PUT:將請求的主體部分存儲在服務器上
DELETE:請求刪除服務器上指定的文檔
TRACE:追蹤請求到達服務器中間經過的代理服務器
OPTIONS:請求服務器返回對指定資源支持使用的請求方法;
status
1xx:100-101,信息提示:
2xx:200-206,成功
3xx:300-305,重定向
4xx:400-415,錯誤類信息,客戶端錯誤
5xx:500-505,錯誤類信息,服務端錯誤

常用的狀態碼:
   200:成功,請求的所有數據通過響應報文的entity-body部分發送:OK
   301:請求的URL指向的資源已被刪除;但在響應報文中通過首部Location指明了資源現在所處的新位置;Moved Permanently
   302:與301相似,但在響應報文中通過Location指明資源現在所處臨時新位置;Found
   304:客戶端發出了條件是請求,但在服務器上的資源未曾發生改變,則通過響應此響應狀態碼通知客戶端:Not Modified
   401:需要輸入賬號和密碼認證方能訪問資源:Unauthorized
   403:請求被禁止;Forbidden
   404:服務器無法找到客戶端請求的資源:Not Found
   500:服務器內部錯誤;Internet Server Error
   502:代理服務器從后端服務器收到了一條偽響應;Bod Gateway
headers
格式:
   name:value

首部的分類:
   通用首部
   請求首部
   響應首部
   實體首部
   擴展首部

   通用首部:
       Date:報文的創建時間
       Connection:連接狀態,如keep-alive,close
       Via:顯示報文經過的中間節點
       Cache-Control:控制緩存
       Pragma

   請求首部:
       Accept:通知服務器自己可接收的媒體類型
       Accept-Charset:聲明自己可接收的字符集
       Accept-Encoding:可接收的編碼格式,如gzip
       Accept-Language:接收的語言

       Client-IP:客戶端IP地址
       Host:請求的服務器名稱和端口號
       Referer:包含當前正在請求的資源的上一級資源,表示從哪個頁面跳轉至此頁面
       User-Agent:客戶端代理(瀏覽器類型)

       條件式請求首部:
           Expect:
           If-Modified-Since:自從指定的時間之后,請求的資源是否發生過修改
           If-Unmodified-Since:自從指定的時間之后,請求的資源是否沒有被修改過
           If-None-Match:本地緩存中存儲的文檔的ETag標簽是否與服務器文檔的ETag不匹配
           If-Match:本地緩存中存儲的文檔的ETag標簽是否與服務器文檔的ETag匹配

       安全請求首部:
           Authorization:向服務器發送認證信息,如賬號和密碼
           Cookie:客戶端向服務器發送cookie
           Cookie2

       代理請求首部:
           Proxy-Authorization:向代理服務器認證

   響應首部:
       信息性:
           Age:響應持續時長
           Server:服務器程序軟件名稱版本

       協商首部:某資源有多種表示方法時使用
           Accept-Ranges:服務器可接受的請求范圍類型
           Vary:服務器查看的其它首部列表

       安全響應首部:
           Set-Cookie:向客戶端設置cookie
           Set-Cookie2
           WWW-Authentication:來自服務器的對客戶端的質詢認證表單

   實體首部:
       Allow:列出對此實體可使用的請求方法
       Location:告訴客戶端真正的實體位于何處

       Content-Encoding:服務器表明了自己的壓縮方法
       Content-Language:服務器告訴客戶端自己響應的語言
       Content-Length:主體的長度
       Content-Location:實體真正所處的位置
       Content-Type:主體的對象類型

       緩存相關:
           ETag:實體的擴展標簽
           Expires:實體的過期時間
           Last-Modified:最后一次修改的時間            

web資源

靜態資源(無須服務端做出額外處理):.jpg, .png, .gif, .html, .txt, .js, .css, .mp3, avi
動態資源(服務端需要通過執行程序做出處理,發送給客戶端的是程序的運行結果):.php, .jsp
注意:一個頁面中展示的資源可能有多個;每個資源都需要單獨請求

URL

Uniform Resouce Locator:用于描述服務器某特定資源的位置
   scheme://host[:port]/URL
       URL的根通常要映射為文件系統上的某路徑
           DocumentRoot /var/www/html
               /index.html --> /var/www/html/index.html
               /images/logo.jpg --> /var/www/html/images/logo.jpg

           Alias /images/ /data/imgs/
               /images/logo.jpg --> /data/imgs/logo.jpg
               /images/a/3.gif --> /data/imgs/a/3.gif

   基本語法:<scheme>://<user>:<password>@<host>:<port></path>;<params>?<query>#<frag>
       params:參數
           http://www.magedu.com/bbs/hello;gender=f
       query:查詢
           http://www.magedu.com/bbs/item.php?username=tom&title=abc
       frag:標記

http服務器程序

httpd(apache)
Nginx
lighttpd

httpd的特性

高度模塊化:core modules + standard modules + 3rd party modules
DSO:dynamic shared object
MPM:Multipath Processing Modules(多路處理模塊)
   prefork:多進程模型,每個進程響應一個請求
       一個主進程:負責生成子進程及回收子進程
; 負責創建套接字; 負責接收請求,并將其派發給某子進程進行處理
       n個子進程:每個子進程處理一個請求
       工作模型:會預先生成幾個空閑進程,隨時等待用于響應用戶請求; 最大空閑和最小空閑
   worker:多進程多線程模型,每線程處理一個用戶請求
       一個主進程:負責生成子進程
       多個子進程:每個子進程負責生成多個線程
       每個線程:負責響應用戶請求
       并發響應數量:m*n
           m:子進程數量
           n:每個子進程所能創建的最大線程數量
   event:事件驅動模型,多進程模型,每個進程響應多個請求
       一個主進程:負責生成子進程; 負責創建套接字; 負責接收請求,并將其派發給某子進程進行處理
       子進程:基于事件驅動機制直接響應多個請求

       httpd-2.2:仍為測試使用模型
       httpd-2.4event可生產環境中使用

httpd的程序版本

httpd 1.3:官方已經停止維護
httpd 2.0
httpd 2.2:
httpd 2.4:目前最新穩定版
安裝httpd程序
rpm包:CentOS發行版中直接提供
編譯安裝:定制新功能,或其它原因
CentOS 6
程序環境:
   配置文件:
       /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|reload|configtest} httpd
CentOS 7
程序環境:
   配置文件:
       /etc/httpd/conf/httpd.conf
       /etc/httpd/conf.d/*.conf
       模塊相關配置文件:/etc/httpd/conf.modules.d/*.conf
   systemctl 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.4的常用配置

主配置文件:/etc/httpd/conf/httpd.conf
   ### Section 1: Global Environment
   ### Section 2: 'Main' server configuration
   ### Section 3: Virtual Hosts

配置格式:
   directive value
       directive:不區分字符大小寫
       value:為路徑時,是否區分字符大小寫,取決于文件系統

   配置修改完成后:
       (1)測試語法
           httpd -t
       (2)讓服務程序重載配置文件
           CentOS 6: ~]# service httpd reload
           CentOS 7: ~]# systemctl reload httpd.service
1.修改監聽的IP和PORT
配置項:Listen [IP]:PORT

(1)省略IP表示為0.0.0.0
(2)Listen指令可重復出現多次
   Listen 80
   Listen 8080
(3)修改監聽socket,重啟服務進程可生效
2.持久連接
Persistent Connection:tcp連接建立后,每個資源獲取完成后不全斷開連接,而是繼續等待其它資源請求的進行
   如何斷開?
       數量限制
       時間限制

       副作用:對并發訪問量較大的服務器,長連接機制會使得后續某些請求無法得到正常 響應    
       折衷:使用較短的持久連接時長,以及較少的請求數量

   KeepAliv On|Off     # 是否開啟持久連接
   KeepAlivTimeout 15   # 定義超時時長
   MaxKeepAliveRequests 100   # 超出此請求數則斷開

測試:
   telnet WEB_SERVER_IP PORT
   GET /URL HTTP/1.1
   Host: WEB_SERVER_IP    
3.MPM
httpd-2.2不支持同時編譯多個MPM模塊,所以只能編譯選定要使用的那個; CentOS 6的rpm包為此專門提供了三個應用程序文件,http(prefork),http.worker
httpd.event,分別用于實現對不同的MPM機制的支持; 確認現在使用的是哪個程序文件的方法
   ps aux | grep httpd

默認使用的為/usr/sbin/httpd, 其為prefork的MPM模塊
   查看httpd程序的模塊列表
       查看靜態編譯的模塊
           # httpd -l
       查看靜態編譯及動態編譯的模塊
           # httpd -M

更換使用httpd程序,以支持其它MPM機制;
   /etc/sysconfig/httpd
       HTTPD=/usr/sbin/httpd.{worker,event}

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

MPM配置:
   prefork的配置
       <IfModule prefork.c>
       StartServers       8   #啟動服務器進程的數量
       MinSpareServers    5   #保持空閑的服務器進程的最少數量
       MaxSpareServers   20   #保持空閑的服務器進程的最大數量
       ServerLimit      256   #用于服務器的壽命MaxClients最大值
       MaxClients       256   #允許啟動的服務器進程的最大數量
       MaxRequestsPerChild  4000  #服務器進程服務的最大請求數
       </IfModule>    

   worker的配置
       <IfModule worker.c>
       StartServers         4   #子進程初始數量
       MaxClients         300   #最大并發數
       MinSpareThreads     25   #保持空閑的最小工作線程數
       MaxSpareThreads     75   #保持空閑的最大工作線程數
       ThreadsPerChild     25   #在每個服務器進程中的恒定數目的工作線程
       MaxRequestsPerChild  0   #服務器進程服務的最大請求數
       </IfModule>
4.DSO
顯示已裝載的模塊:
   httpd -M
配置指定實現模塊加載
   LoadModule <mod_name> <mod_path>

   模塊文件路徑可使用相對路徑:
       相對于ServerRoot (默認/etc/httpd)
5.定義’Main’ server的文檔頁面路徑
DocumentRoot "/PATH/TO/DIRECTORY"

文檔路徑映射:
   DocumentRoot指向的路徑為URL路徑的起始位置
       其相當于站點URL的根路徑
           (filesystem)/web/host1/index.html --> (URL)/index.html

定義服務器名稱
   ServerName SERVER_NAME
6.站點訪問控制
可基于兩種機制指明對哪些資源進行何種訪問控制

文件系統路徑:
   針對指定的目錄做訪問控制
       <Directory "">
           ...
       </Directory>

   針對指定的單個文件做訪問控制
       <Files "">
           ...
       </Files>

   基于正則表達式匹配
       <FilesMatch "PATTERN">
           ...
       </FilesMatch>

URL路徑
   <Location "">
       ...
   </Location>

   <LocationMatch ~ "">
       ...
   </LocationMatch>

<Directory>中"基于源地址"實現訪問控制
   (1)Options
       后跟1個或多個以空白字符分隔的"選項"列表
           Indexes:指明的URL路徑下不存在與定義的主頁面資源相符的資源文件時,返回索引列表給用戶
           FollowSymLinks:允許跟蹤符號鏈接文件所指向的源文件
           ExecCGI:是否允許運行CGI腳本
           None
           All

   (2)AllowOverride
       與訪問控制相關的哪些指令可以放在.htaccess文件(每個目錄下都可以有一個)中
       AllowOverride表示是否允許目錄中.htaccess文件中的配置來覆蓋當前配置段中的配置
           All
           None
           Options FileInfo AuthConfig Limit

   基于源地址的訪問控制
       允許所有地址訪問:Require all granted
       拒絕所有地址訪問:Require all denied

       <RequireAll>

       </RequireAll>

       基于IP控制:
           Require ip ADDRESS
           Require not ip ADDRESS
               ADDRESS:
                   ip
                   network:
                       10.1.0.0/255.255.0.0
                       10.1.0.0/16
                       10.1
       基于主機名控制:
           Require host HOSTNAME
           Require not host HOSTNAME
               HOSTNAME:
                   FQDN
                   DOMAIN.TLD

http2.2配置
   order和allow、deny
       order:定義生效次序; 寫在后面的表示默認法則

       Allow from, Deny from
           來源地址:
               IP
               NetAddr:
                   172.16
                   172.16.0.0
                   172.16.0.0/16
                   172.16.0.0/255.255.0.0  
7.定義站點主頁面
DirectoryIndex index.html index.html.var
8.定義路徑別名
格式:
   Alias /URL/ "/PATH/TO/SOMEDIR"

DocumentRoot "/www/htdocs"
   http://www.magedu.com/download/setup.exe
       /www/htdocs/download/setup.exe

Alias /download/ "/rpms/pub"
   http://www.magedu.com/download/setup.exe
       /rpms/pub/setup.exe

   http:
//www.magedu.com/images/logo.png
       /www/htdocs/images/logo.png
9.設定默認字符集
AddDefaultCharset UTF-8

中文字符集:GBK, GB2312, GB18030
10.日志設定
日志類型:訪問日志和錯誤日志
錯誤日志:
   ErrorLog logs/error_log
   LogLevel warn
       Possible values include: 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

       %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.基于用戶的訪問控制
認證質詢:
   WWW-Authenticate:響應嗎為401,拒絕客戶端請求,并說明要求客戶端提供賬號和密碼

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

   認證方式有兩種:
       basic:明文
       digest:消息摘要認證

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

用戶賬號和密碼存放于何處?
   虛擬賬號:僅用于訪問某服務時用到的賬號

   存儲:
       文本文件
       SQL數據庫
       LDAP目錄存儲

basic認證配置示例:
   (1)定義安全域
       <Directory "">
           Options None
           AllowOverride None
           AuthType Basic
           AuthName "String"
           AuthUserFile "/PATH/TO/HTTPD_USER_PASSWD_FILE"
           Require user username1 username2...
       </Directory>

       允許賬號文件中的所有用戶登錄訪問:
           Require valid-user

   (2)提供賬號和密碼存儲(文本文件)
       使用專用命令完成此類文件的創建及用戶管理
           htpasswd [options] /PATH/TO/HTTPD_USER_PASSWD_FILE username
               -c:自動創建此處指定的文件,因此,僅應該在此文件不存在時使用
               -m:md5格式加密
               -s:sha格式加密
               -D:刪除指定用戶

   另外:基于組賬號進行認證
       (1)定義安全域
           <Directory "">
               Options None
               AllowOverride None
               AuthType Basic
               AuthName "String"
               AuthUserFile "/PATH/TO/HTTPD_USER_PASSWD_FILE"
               AuthGroupFile "/PATH/TO/HTTPD_GROUP_FILE"
               Require group grpname1 grpname2...
           </Directory>

       (2)創建用戶賬號和組賬號文件

           組文件:每一行定義一個組
               GRP_NAME: username1 username2 ...

httpd-2.2與httpd-2.4的不同之處

MPM:
   prefork:進程模型,兩級結構,master/worker, 每worker處理一個請求;
   worker:線程模型,三級結構,master/worker/thread,每thread處理一個請求;
   event:事件驅動的線程模型,兩級結構,master/worker,每worker響應多個請求;

   httpd-2.2的MPM模塊為static模塊,而非shared模塊;
       /etc/sysconfig/httpd
       HTTPD=/usr/sbin/{httpd|httpd.worker|httpd.event}

       <IfModule prefork.c>
       StartServers       8
       MinSpareServers    5
       MaxSpareServers   20
       ServerLimit      256
       MaxClients       256
       MaxRequestsPerChild  4000
       </IfModule>        

       <IfModule worker.c>
       StartServers         4
       MaxClients         300
       MinSpareThreads     25
       MaxSpareThreads     75
       ThreadsPerChild     25
       MaxRequestsPerChild  0
       </IfModule>

基于IP的訪問控制機制:
   httpd-2.4:
       require ip, require not ip, require host, require not host

   httpd-2.2
       allow from, deny from

       order allow,deny, order deny,allow

基于主機名的虛擬主機:
   httpd-2.2:須使用NameVirtualHost;
   httpd-2.4:無須使用;

各映射的本地文件系統路徑內的資源:
   httpd-2.4:須做顯式授權
   httpd-2.2:無須顯式授權

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

(0)
zhai796898zhai796898
上一篇 2016-10-28 21:55
下一篇 2016-10-28 23:01

相關推薦

  • 學習宣言

     博觀而約取,厚積而薄發。

    Linux干貨 2016-10-24
  • grep命令

    ]# chmod -R 700 /home/tuser1 ]# ll /home/tuser1/ total 0 drwx——. 2 root root 72 Nov 20 17:33 skel 新增用戶與組: 顯示/proc/meminfo: 顯示shell 非 /sbin/nologin 的用戶 找出/etc/passwd文件中一…

    Linux干貨 2016-11-20
  • 8.1-用戶和組(命令篇)

    1、標準輸入輸出 我們知道,執行一個shell命令行時通常會自動打開三個標準文件,     即標準輸入文件(stdin),通常對應終端的鍵盤;     標準輸出文件(stdout)     標準錯誤輸出文件(stderr),這兩個文件都對應…

    Linux干貨 2016-08-04
  • N25 第三周作業

    1、列出當前系統上所有已經登錄的用戶的用戶名,注意:同一個用戶登錄多次,則只顯示一次即可。   2、取出最后登錄到當前系統的用戶的相關信息。 3、取出當前系統上被用戶當作其默認shell的最多的那個shell。   4、將/etc/passwd中的第三個字段數值最大的后10個用戶的信息全部改為大寫后保存至/tmp/maxusers.txt…

    Linux干貨 2017-01-04
  • 聊聊CentOS6的啟動過程

    前言:     作為一個合格的運維人員,系統的啟動過程我們需要牢記在心,此文不深入探討,只求大致理解CentOS6的啟動過程。 一張圖帶你了解CentOS6的啟動過程 注意:圖片放大查看效果更佳 上圖各階段詳解 POST:計算機開機時BIOS對其各硬件的簡單測試,測試各硬件的完整性 BootSqunce:加電自檢后根據…

    Linux干貨 2016-03-14
  • Nginx及其相關配置詳解(二)

    與套接字相關的配置: 1、server { … }  #配置一個虛擬主機;         Default:—         Context:http server { # 配…

    2017-07-14
欧美性久久久久