主頁 >  其他 > Web基礎

Web基礎

2021-04-24 10:25:31 其他

文章目錄

  • 一、DNS概述
    • 1、域名
    • 2、域名決議
    • 3、為什么要使用域名決議(DNS服務器)
    • 4、DNS服務器的作用
    • 5、域名決議的程序
    • 6、網站的基本概念
    • 7、頁面的分類和區別
    • 8、網站傳輸協議
    • 9、HTTP協議分析
    • 10、常見狀態回傳碼
  • 二、HTTP請求報文和回應報文
    • (1)概述
    • (2)程序
    • (3)報文的結構
  • 三、apache原理概述
    • 1、apache概述
    • 2、apache特點
    • 3、apache常見的三種作業模式
      • (1)MPM=prefork
      • (2)MPM=worker
      • (3)MPM=event
    • 4、靜態編譯和動態編譯
    • 5、訪問日志access_log詳解
  • 四、安裝apache
    • (1)實驗環境
    • (2)實驗目的
    • (3)安裝httpd服務
    • (4)優化httpd服務,調整三種作業模式
      • -prefork作業模式
      • -worker作業模式
      • -event作業模式
  • 五、擴展

一、DNS概述

1、域名

域名又稱為FQDN,使用域名是為了解決ip地址不容易記的問題
一個完整的FQDN也就是域名,由主機名+域名組成
例如: www.baidu.com 主機名就是www而域名就是baidu.com

2、域名決議

域名決議包含本地hosts檔案決議和DNS服務器決議

  • 系統中都會有一個hosts檔案,用戶可以自己定義ip和域名去自定義決議ip

  • DNS服務器相當于一個大型的專門寫hosts的系統,PC機可以去指定DNS服務器,當PC機收到一個本地hosts中沒有的域名,本地無法決議,就會轉到PC機指定的DNS服務器中,讓DNS服務器去決議,然后回應PC機,從而成功決議

3、為什么要使用域名決議(DNS服務器)

因為計算機之間進行通信使用的是ip地址,但是對于用戶來說,ip地址比較難記,所以就出現了域名決議,通過字母組成的單詞,方便用戶去記憶

4、DNS服務器的作用

將 域 名 解 析 成 i p 地 址 將域名決議成ip地址 ip

5、域名決議的程序

在這里插入圖片描述

6、網站的基本概念

Web網站:有web1.0 和web2.0,web1.0側重以編輯為特征,web2.0側重于用戶互動

web的幾個基本概念分為: 網站、網頁、主頁、HTTP、URL、HTML、超鏈接

URL和URI很相似:

  • URL的資源位置是絕對路徑
  • URI的資源位置是相對路徑

例如: URL=https://www.aaa.com/

https為用戶訪問使用的協議
www.aaa.com為用戶訪問的域名,也可以是ip地址和埠號
/為用戶訪問的資源,/就是絕對路徑

7、頁面的分類和區別

  • 靜態頁面: 頁面直接由web服務進行決議 ,頁面可以包含動態,但是內容是靜止的,部署靜態頁面需要在服務器上安裝能夠決議靜態頁面的服務,nginx、httpd這兩種web服務默認只能決議靜態頁面,

    主頁檔案后綴名為.html .xml .htm

  • 動態頁面: 頁面由php進行決議 ,頁面會隨著時間、環境、資料庫資料等因素去進行相應的變化,部署動態頁面同樣需要在服務器上安裝能夠決議動態頁面的服務(nginx、httpd等),還要安裝php來決議動態頁面,

    主頁檔案后綴名為:.php .asp .jsp .pl .py .cgi

后 綴 不 同 就 是 開 發 語 言 不 同 , 動 態 頁 面 一 般 以 編 程 語 言 編 寫 后綴不同就是開發語言不同,動態頁面一般以編程語言撰寫

8、網站傳輸協議

一般分為:http超文本傳輸協議和https安全超文本傳輸協議

http監聽埠默認為tcp的80埠,不進行加密傳輸
https監聽埠默認為tcp的443埠,進行加密傳輸

9、HTTP協議分析

(1)HTTP: HTTP又稱超文本傳輸協議,是現在互聯網應用中使用最多的一種網路協議,協議的核心功能就是傳輸Web服務器上的以html為后綴的頁面和其他檔案

(2)HTTP版本: http0.9 已經被淘汰,http1.0和http1.1 是目前廣泛使用的,http2.0 還沒有普及

(3)HTTP協議傳輸程序:

(1)用戶使用PC1的瀏覽器訪問指定的URL也就是域名
(2)如果PC1有本地決議就直接進行域名決議進行訪問,沒有本地決議那就轉發給指定的DNS服務器去進行域名決議
(3)獲取埠號,一般是80或者443
(4)PC1連接到域名決議后的ip地址以及埠號
(5)PC1發送一條http get讀取資料的請求
(6)PC1從服務器讀取http回應
(7)關閉連接
(8)PC1瀏覽器成顯示頁面

(4)影響客戶端訪問web站點的因素: 客戶端請求的網路I/O,web服務器請求頁面的磁盤I/O
I / O : i n p u t 和 o u t p u t 即 上 傳 和 讀 取 I/O : input 和 output 即上傳和讀取 I/Oinputoutput

10、常見狀態回傳碼

200表示頁面成功訪問 ok
301請求的頁面永久跳轉了
403禁止訪問該頁面
404找不到該頁面
500服務器內部錯誤
502網管錯誤
503當前服務不可用
504網關請求超時

二、HTTP請求報文和回應報文

(1)概述

HTTP協議是一個應用層協議,報文主要分為: 請求報文和回應報文

(2)程序

  1. 當客戶端請求一個網頁時,會先通過http協議將請求的內容封裝在http請求報文中并且發送給服務器

  2. 服務器收到客戶端的請求報文后根據報文的協議規范,進行報文決議

  3. 服務器決議完成后向客戶端回傳回應報文

(3)報文的結構

一般分為三個結構:

1、起始行,對報文進行描述,包括了三個部分


資源通過一組http頭和呈現資料(如html檔案或者圖片視頻等)回傳給客戶端

  • 請求的方法,常用的有GET、POST、HEAD等

GET: 向特定的資源發送請求,它的本質就是發送一個請求來取得服務器上的某一資源,GET請求中,永遠不會包含呈現資料

POST: 向指定資源提交資料進行處理請求,例如提交表單或者上傳檔案,

HEAD: 向服務器索與GET請求相同的回應,只不過回應體將不會被回傳

  • 請求的URL
  • 協議型別以及版本

2、頭部,對報文中添加一些附加資訊

3、主體,資料的主體

三、apache原理概述

1、apache概述

apache作為最早的web服務程式,它是通過http協議來提供網頁瀏覽服務

2、apache特點

  • 模塊化設定

  • 開放源代碼

  • 跨平臺應用

  • 支持多種web編程語言

  • 運行穩定

3、apache常見的三種作業模式

apache的核心模塊叫做多路處理模塊(Multi-Processing Module),簡稱MPM

常見的三種模式為: prefork、worker、event

使用httpd -v查看當前apache版本,httpd -V |grep "server MPM" 查看apache當前模式

httpd_2.2版本默認使用prefork,httpd_2.4版本默認使用worker
一 般 來 說 , 每 個 模 式 都 會 默 認 有 兩 個 閑 置 進 程 , 所 以 一 般 來 說 如 果 只 剩 一 個 閑 置 進 程 , 那 么 a p a c h e 就 會 自 動 創 建 一 個 閑 置 進 程 一般來說,每個模式都會默認有兩個閑置行程,所以一般來說如果只剩一個閑置行程,那么apache就會自動創建一個閑置行程 apache
驚群效應: 當所有行程都為休眠狀態時,這個時候突然來了一個請求,這個請求會使所有行程都進行處理,但是最終只有一個行程可以進行 0處理,其他行程沒有請求處理就又會進入休眠狀態,這樣的現象和性能浪費就叫做驚群效應,而apache幾乎所有模式都有驚群效應

(1)MPM=prefork

prefork是多行程模式,一個行程處理一個連接,每個行程相對來說都是獨立的,這個程序會用到select機制來通知

優點: 穩定、回應快

缺點: 消耗大量cpu和記憶體、keep-alive長連接占據問題,不適用于高并發場景

———————————————————————————————————————————————————注釋——————————————————————————————————————————————————————
keep-alive長連接占據問題:即tcp連接在發送后仍然與客戶端保持連接狀態,客戶端的瀏覽器可以通過相同的連接去發送請求,這樣雖然節省了為每個請求建立新連接的時間、節約了帶寬并且減少了重復請求的次數加快了客戶端訪問的速度,但是在長連接狀態下,進行長連接的介面是無法和新的請求進行連接的,從而導致行程越來越多,使cpu和記憶體過度負載,導致服務器卡頓

原理: prefork模式的行程只能創建一個執行緒,所以說prefork是一個行程處理一個連接

在這里插入圖片描述

(2)MPM=worker

worker是多行程多執行緒模式,一個行程創建多個執行緒,每個執行緒回應一個連接請求,但是通知機制還是select不過可以接受更多的請求

優點: 節省資源,適用于高并發場景

缺點: 兼容性不好、穩定性不好,同樣具有keep-alive長連接占據問題

原理: worker模式的行程可以創建多個執行緒,每個執行緒回應一個連接請求

在這里插入圖片描述

(3)MPM=event

event是worker的升級版,把服務器行程和回應連接請求進行了分離,基于異步I/O模型(即input和output上傳讀取是分開的)

I/O模型使event在連接請求過來后行程并不直接處理請求,而是交給其他機制來處理,然后通過epoll機制來確認請求是否完成,在這個程序中,行程本身一直處于空閑狀態,所以一直可以接受用戶的請求,從而實作一個行程回應多個連接請求,

event對于keep-alive長連接處理也有所優化,event模式有單獨的執行緒去處理keep-alive長連接,執行完畢后才會允許長連接釋放,這樣增強了高并發場景下的連接請求處理能力,

優點: 支持海量級高并發負載,消耗資源少,適用于高并發場景

缺點: 對https支持的不完美

在這里插入圖片描述

4、靜態編譯和動態編譯

httpd是高度模塊化的程式,也就是說httpd的各種功能都需要加載對應的模塊來執行,但是前提是必須將使用功能的對應模塊進行編譯,方便httpd進行加載

  • 靜態編譯: 直接將模塊編譯到httpd的核心當中,靜態編譯的所有模塊都會隨著httpd主程式進行啟動和關閉
  • 動態編譯: 將模塊編譯好,但是不編譯到httpd的核心當中,想要啟動動態編譯的模塊,需要在httpd的組態檔中使用loadModule指令去加載使用

5、訪問日志access_log詳解

[root@rzy ~]# tail -1 /usr/local/httpd/logs/access_log  #查看最后一行
192.168.100.230 - - [13/Apr/2021:19:22:17 +0800] "GET / HTTP/1.1" 200 6
#注釋:
192.168.100.230:遠程主機ip,表示訪問網站的是誰
- :這一行是用戶的郵箱,但是為了避免用戶的郵箱被垃圾郵件騷擾,第二列使用-取代
- :用于記錄瀏覽者進行身份驗證時提供的名字,這里為-是因為沒有使用用戶密碼驗證登錄,例如用rzy 密碼123登錄,那么這里顯示的就是rzy
[13/Apr/2021:19:22:17 +0800] :請求時間,表明用戶訪問的時間,采用公用日志格式或者標準英文格式,+0800表示服務器所處時區位于UTC之后的8小時
"GET /favicon.ico HTTP/1.1" :GET表示方法,/表示用戶訪問的資源這里表示的是網頁目錄的相對資源,HTTP/1.1表示用戶訪問時使用的協議
200 :狀態碼
6 :發送的位元組數,可以查看配置主頁的內容有多少位元組
我這里使用的是虛擬機,使用真機查看時最后還會多一個欄位,為訪問用戶的客戶端系統、瀏覽器型別等資訊
####

[root@rzy ~]# ll /usr/local/httpd/htdocs/
總用量 4
-rw-r--r-- 1 root root 6 4月  13 17:56 index.html  #6 表示6個位元組

四、安裝apache

(1)實驗環境

系統ip地址主機名httpd版本
Centos7.4192.168.100.202rzyhttpd-2.2.17.tar.gz

(2)實驗目的

  • 客戶端可以成功訪問httpd服務器
  • 優化httpd服務,調整三種作業模式

(3)安裝httpd服務

******(1)先做初始配置
[root@rzy ~]# systemctl stop firewalld
[root@rzy ~]# setenforce 0
setenforce: SELinux is disabled
[root@rzy ~]# mount /dev/cdrom /mnt/
mount: /dev/sr0 寫保護,將以只讀方式掛載
mount: /dev/sr0 已經掛載或 /mnt 忙
       /dev/sr0 已經掛載到 /mnt 上
[root@rzy ~]# rpm -e httpd --nodeps   #檢查httpd服務是否安裝,如果兩個httpd埠會沖突
錯誤:未安裝軟體包 httpd 
       
******(2)上傳httpd原始碼包,進行解壓,安裝      
[root@rzy ~]# ll
總用量 6448
-rw-------. 1 root root    1264 1月  12 18:27 anaconda-ks.cfg
-rw-r--r--  1 root root 6597991 4月  13 17:10 httpd-2.2.17.tar.gz
[root@rzy ~]#  tar xf httpd-2.2.17.tar.gz -C /usr/src/
[root@rzy ~]# cd /usr/src/httpd-2.2.17/
[root@rzy httpd-2.2.17]# ./configure --prefix=/usr/local/httpd --enable-so --enable-rewrite --enable-cgi  
#等待配置完成,模塊注釋:
--prefix= 指定安裝目錄 
--enable-so 開啟動態加載模塊的功能 
--enable-rewrite 開啟地址重寫、重定向功能
 --enable-cgi 開啟與一些動態編程語言之間進行互動的介面
#配置完成后進行編譯安裝
[root@rzy httpd-2.2.17]# make && make install
[root@rzy httpd-2.2.17]# echo $?     #檢測安裝是否成功,使用$?來查看,回傳為0則為成功
0
[root@rzy httpd-2.2.17]# ls /usr/local/httpd/  #檢查prefix指定的安裝路徑下是否有了httpd的相關目錄
bin  build  cgi-bin  conf  error  htdocs  icons  include  lib  logs  man  manual  modules
#常用目錄注釋:
bin     存放httpd的各種命令
lib     跟httpd相關的庫檔案
man     httpd的幫助檔案
modules httpd的模塊檔案
conf    httpd的組態檔存放目錄
htdocs  httpd的網頁存放位置
logs    httpd的日志存放位置
build   存放httpd之前的配置資訊的檔案
###########

******(3)安裝httpd后的優化配置
[root@rzy httpd-2.2.17]# cd
[root@rzy ~]# ln -s /usr/local/httpd/bin/* /usr/local/bin/    #優化httpd執行命令路徑
[root@rzy ~]# httpd -v    #查看httpd的版本
Server version: Apache/2.2.17 (Unix)
Server built:   Apr 13 2021 17:17:14
[root@rzy ~]# cp /usr/local/httpd/bin/apachectl /etc/init.d/httpd    #復制一份httpd的啟動腳本
[root@rzy ~]# chmod -x /etc/init.d/httpd  #添加可執行權限
[root@rzy ~]# /etc/init.d/httpd start  #啟動httpd
httpd: Could not reliably determine the server's fully qualified domain name, using fe80::34f4:cad:16ae:5b4d for ServerName  #這個提示語是因為沒有修改服務器域名
[root@rzy ~]# netstat -anpt | grep 80  #檢查埠
tcp6       0      0 :::80                   :::*                    LISTEN      53530/httpd         
[root@rzy ~]# /etc/init.d/httpd stop   #關閉httpd
httpd: Could not reliably determine the server's fully qualified domain name, using fe80::34f4:cad:16ae:5b4d for ServerName
[root@rzy ~]# netstat -anpt | grep 80  #檢查埠

******(4)修改組態檔,配置網頁檔案
[root@rzy ~]# vim /usr/local/httpd/conf/httpd.conf 
,,,,,,
 87 #
 88 ServerAdmin  admin@linuxfan.cn     #這個是管理員郵箱,不用修改,這是apache官方為了收集有多少人使用apache而創建的
 89 
,,,,,,
 96 #
 97 ServerName  www.rzy.com:80       #修改域名可以解決剛才的報錯問題
 98 
,,,,,,
 131 <Directory "/usr/local/httpd/htdocs">   #這個區域用來指定網頁的路徑,并且可以設定網頁,比如限制訪問、認證等
 132     Options Indexes FollowSymLinks      #中間的#號可以全部洗掉
 133     AllowOverride None
 134     Order allow,deny
 135     Allow from all                #限制訪問順序:先允許,后拒絕,默認拒絕所有,
 136                                               #先拒絕,后允許,默認允許所有   
 137 </Directory>
 138 
,,,,,,
 143 <IfModule dir_module>
 144     DirectoryIndex index.html      #apache決議的主頁,后續想安裝php決議動態頁面的話就可以添加index.php
 145 </IfModule>
 146 
,,,,,,
 163 #
 164 ErrorLog "logs/error_log"   #錯誤日志存放位置,這是一個相對路徑是從prefix指定的安裝路徑開始的
 165 
,,,,,,
 170 #
 171 LogLevel warn    #日志級別
 172 
,,,,,,
 192     #
 193     CustomLog "logs/access_log" common    #訪問日志存放位置,和錯誤日志相同都是相對路徑
 194 
#保存退出
[root@rzy ~]# echo "aaaaa" > /usr/local/httpd/htdocs/index.html  #創建目錄
[root@rzy ~]# /etc/init.d/httpd start    #開啟httpd服務
[root@rzy ~]# netstat -anptu | grep 80   #檢查埠
tcp6       0      0 :::80                   :::*                    LISTEN      53568/httpd     

(5)使用客戶機測驗是否可以正常訪問httpd

在這里插入圖片描述

發現可以正常訪問

(4)優化httpd服務,調整三種作業模式

設定httpd的作業模式時,不僅要考慮網站的并發性能等作業效率,還要考慮服務器硬體cpu和記憶體的占用情況,記憶體尤為重要

-prefork作業模式

  • prefork(行程+子行程)模式,是httpd-2.2.17版本默認的作業模式
[root@rzy ~]# /usr/local/httpd/bin/httpd -V | grep "Server MPM"  #查看當前apache作業模式
Server MPM:     Prefork
[root@rzy ~]# vim /usr/local/httpd/conf/extra/httpd-mpm.conf  #查看組態檔中prefork的選項
,,,,,,
 36 <IfModule mpm_prefork_module>
 37     StartServers          5      #服務器啟動時建立的子行程數量
 38     MinSpareServers       5      #空閑子行程最小數量,當空閑子行程數少于該數值將產生新的子行程
 39     MaxSpareServers      2       #空閑子行程最大數量,當空閑子行程數大于該數值將殺死多余的子行程
 40     MaxClients          150      #限定最大用戶并發數,是對apache性能影響最大的引數
 41     MaxRequestsPerChild   10000  #每個子行程在其生存期間允許處理的最大請求數量,若為0則代表該行程不會因為請求數量的變化而停止,
 42 </IfModule>
,,,,,,
#保存退出
[root@rzy ~]# vim /usr/local/httpd/conf/httpd.conf 
,,,,,,
 347 # Server-pool management (MPM specific)
 348 Include conf/extra/httpd-mpm.conf     #去掉#注釋
 349
,,,,,,
#保存退出
[root@rzy ~]# /etc/init.d/httpd restart   #重啟服務
[root@rzy ~]# ps aux | grep httpd | grep -v grep #查看行程發現創建了多個子行程
root      53568  0.0  0.1  28304  1980 ?        Ss   17:57   0:00 /usr/local/httpd/bin/httpd -k start
daemon    53612  0.0  0.1  28304  1420 ?        S    18:20   0:00 /usr/local/httpd/bin/httpd -k start
daemon    53613  0.0  0.1  28304  1420 ?        S    18:20   0:00 /usr/local/httpd/bin/httpd -k start
daemon    53614  0.0  0.1  28304  1420 ?        S    18:20   0:00 /usr/local/httpd/bin/httpd -k start
daemon    53615  0.0  0.1  28304  1420 ?        S    18:20   0:00 /usr/local/httpd/bin/httpd -k start
daemon    53616  0.0  0.1  28304  1420 ?        S    18:20   0:00 /usr/local/httpd/bin/httpd -k start

-worker作業模式

  • worker(多行程+多執行緒)作業模式,適用于高并發場景
#注意:
想要開啟worker模式,需要在編譯安裝的時候使用 --with-mpm=worker選項指定,所以需要先使用make clean情況已經編譯的內容,再重新編譯
######
[root@rzy ~]# cd /usr/src/httpd-2.2.17/  #先進入解壓原始碼包的目錄
[root@rzy httpd-2.2.17]# make clean      #清空已經編譯的內容
[root@rzy httpd-2.2.17]# ./configure --prefix=/usr/local/httpd/ --enable-so --enable-rewrite --enable-cgi --with-mpm=worker && make && make install  #重新進行編譯,安裝
[root@rzy httpd-2.2.17]# cd 
[root@rzy ~]# /usr/local/httpd/bin/httpd -V | grep "Server MPM"  #查看當前模式是否成功修改
Server MPM:     Worker
[root@rzy ~]# vim /usr/local/httpd/conf/extra/httpd-mpm.conf  #查看組態檔中worker模式的選項
,,,,,,
 51 <IfModule mpm_worker_module>
 52     StartServers          2   #服務器啟動時建立的子行程數量
 53     MaxClients          150   #限定最大用戶并發數
 54     MinSpareThreads      25   #空閑子執行緒最小數量,當空閑子執行緒數少于該數值將產生新的子執行緒
 55     MaxSpareThreads      75   #空閑子執行緒最大數量,當空閑子執行緒數大于該數值將殺死多余的子執行緒
 56     ThreadsPerChild      50   #每個子行程最大的并發執行緒數
 57     MaxRequestsPerChild   10000   #每個子行程在其生存期間內允許服務的最大請求數量,設定為0則子行程將永遠不會結束
 58 </IfModule>
 59 
,,,,,,
#保存退出
[root@rzy ~]# ps aux | grep httpd | grep -v grep  #查看子行程數
root      53568  0.0  0.1  28304  1980 ?        Ss   17:57   0:00 /usr/local/httpd/bin/httpd -k start
daemon    53612  0.0  0.1  28304  1420 ?        S    18:20   0:00 /usr/local/httpd/bin/httpd -k start
daemon    53613  0.0  0.1  28304  1420 ?        S    18:20   0:00 /usr/local/httpd/bin/httpd -k start
daemon    53614  0.0  0.1  28304  1420 ?        S    18:20   0:00 /usr/local/httpd/bin/httpd -k start
daemon    53615  0.0  0.1  28304  1420 ?        S    18:20   0:00 /usr/local/httpd/bin/httpd -k start
daemon    53616  0.0  0.1  28304  1420 ?        S    18:20   0:00 /usr/local/httpd/bin/httpd -k start

-event作業模式

  • event是一個多行程,多執行緒的作業模式,解決了長連接占據問題,適用于高并發場景
[root@rzy ~]# cd /usr/src/httpd-2.2.17/
[root@rzy httpd-2.2.17]# make clean  #同樣進行配置清空
[root@rzy httpd-2.2.17]# ./configure --prefix=/usr/local/httpd/ --enable-so --enable-rewrite --enable-cgi --with-mpm=event  && make && make install  #使用--with-mpm=event安裝
[root@rzy httpd-2.2.17]# cd 
[root@rzy ~]# /usr/local/httpd/bin/httpd -V | grep "Server MPM" #查看模式是否修改成功
Server MPM:     Event
[root@rzy ~]# vim /usr/local/httpd/conf/extra/httpd-mpm.conf  #查看組態檔中event的選項
,,,,,,
110 
111 <IfModule mpm_event_module>    #手動撰寫
112     ServerLimit          1000     #服務器開啟后最大的行程數
113     StartServers         20       #服務器啟動時建立的子行程數
114     MinSpareThreads      25       #空閑子行程最小數,當空閑子行程少于該數值將產生新的子行程
115     MaxSpareThreads      1200     #空閑子行程最大數,當空閑子行程大于該數值將殺死多余的子行程
116     ThreadsPerChild      50       #每個行程的最大并發執行緒數
117     MaxRequestsPerChild 1000   #每個子行程再其生存期間內允許服務器的最大請求數量,為0則子行程永遠不會結束
118 </IfModule>
,,,,,,
#保存退出
[root@rzy ~]# ps aux | grep httpd | grep -v grep  #查看子行程數量
root      53568  0.0  0.1  28304  1980 ?        Ss   17:57   0:00 /usr/local/httpd/bin/httpd -k start
daemon    53612  0.0  0.1  28304  1420 ?        S    18:20   0:00 /usr/local/httpd/bin/httpd -k start
daemon    53613  0.0  0.1  28304  1420 ?        S    18:20   0:00 /usr/local/httpd/bin/httpd -k start
daemon    53614  0.0  0.1  28304  1420 ?        S    18:20   0:00 /usr/local/httpd/bin/httpd -k start
daemon    53615  0.0  0.1  28304  1420 ?        S    18:20   0:00 /usr/local/httpd/bin/httpd -k start
daemon    53616  0.0  0.1  28304  1420 ?        S    18:20   0:00 /usr/local/httpd/bin/httpd -k start
[root@rzy ~]# cat /usr/local/httpd/build/config.nice  #查看配置時使用的模塊資訊
#! /bin/sh
#
# Created by configure

"./configure" \
"--prefix=/usr/local/httpd/" \
"--enable-so" \
"--enable-rewrite" \
"--enable-cgi" \
"--with-mpm=event" \
"$@"
[root@rzy ~]# /usr/local/httpd/bin/apachectl -D DUMP_MODULES #查看模塊
Loaded Modules:
 core_module (static)    #static就是靜態模塊的意思
 authn_file_module (static)
 authn_default_module (static)
 authz_host_module (static)
 authz_groupfile_module (static)
 authz_user_module (static)
 authz_default_module (static)
 auth_basic_module (static)
 include_module (static)
 filter_module (static)
 log_config_module (static)
 env_module (static)
 setenvif_module (static)
 version_module (static)
 mpm_event_module (static)
 http_module (static)
 mime_module (static)
 status_module (static)
 autoindex_module (static)
 asis_module (static)
 cgid_module (static)
 cgi_module (static)
 negotiation_module (static)
 dir_module (static)
 actions_module (static)
 userdir_module (static)
 alias_module (static)
 rewrite_module (static)
 so_module (static)
Syntax OK

五、擴展

正常情況下不做任何配置如果寫多個目錄的話,用戶訪問的時候會全部顯示出來,例如:

[root@rzy ~]# cd /usr/local/httpd/htdocs/
[root@rzy htdocs]# ll
總用量 4
-rw-r--r-- 1 root root 6 4月  13 17:56 index.html
[root@rzy htdocs]# rm -rf index.html 
[root@rzy htdocs]# mkdir aaa
[root@rzy htdocs]# mkdir bbb
[root@rzy htdocs]# cd bbb/
[root@rzy bbb]# echo "bbbbb" > index.html
[root@rzy bbb]# cd ..
[root@rzy htdocs]# cd aaa/
[root@rzy aaa]# echo "aaaaa" > index.html

現在使用瀏覽器進行訪問:

在這里插入圖片描述

會顯示所有網頁目錄,這樣在真實環境中肯定是不允許,用戶只有在ip后面跟網頁目錄才會顯示相應的內容,例如:
在這里插入圖片描述

那么只需要在組態檔中修改一樣東西,就可以讓用戶訪問不到所有的目錄

[root@rzy aaa]# vim /usr/local/httpd/conf/httpd.conf 
,,,,,,
131 <Directory "/usr/local/httpd/htdocs">
132     Options Indexes FollowSymLinks  #把Indexes洗掉
133     AllowOverride None
134     Order allow,deny
135     Allow from all
,,,,,,
#洗掉后:
131 <Directory "/usr/local/httpd/htdocs">
132     Options  FollowSymLinks
133     AllowOverride None
134     Order allow,deny
135     Allow from all
,,,,,,
[root@rzy aaa]# /etc/init.d/httpd restart  #重啟服務

再次進行訪問

[外鏈圖片轉存失敗,源站可能有防盜鏈機制,建議將圖片保存下來直接上傳(img-P1E9w4f8-1619055222372)(F:\個人檔案\markdown圖片\image-20210413164939530.png)]

就會發現以及禁止訪問了,必須在后面加目錄名才可以

所有的目錄**

[root@rzy aaa]# vim /usr/local/httpd/conf/httpd.conf 
,,,,,,
131 <Directory "/usr/local/httpd/htdocs">
132     Options Indexes FollowSymLinks  #把Indexes洗掉
133     AllowOverride None
134     Order allow,deny
135     Allow from all
,,,,,,
#洗掉后:
131 <Directory "/usr/local/httpd/htdocs">
132     Options  FollowSymLinks
133     AllowOverride None
134     Order allow,deny
135     Allow from all
,,,,,,
[root@rzy aaa]# /etc/init.d/httpd restart  #重啟服務

再次進行訪問

[外鏈圖片轉存中...(img-P1E9w4f8-1619055222372)]

就會發現以及禁止訪問了,必須在后面加目錄名才可以

在這里插入圖片描述

轉載請註明出處,本文鏈接:https://www.uj5u.com/qita/279522.html

標籤:其他

上一篇:VMware Linux RAID5 介紹

下一篇:django-admin.py startproject newProjectTestName無法創建專案

標籤雲
其他(157675) Python(38076) JavaScript(25376) Java(17977) C(15215) 區塊鏈(8255) C#(7972) AI(7469) 爪哇(7425) MySQL(7132) html(6777) 基礎類(6313) sql(6102) 熊猫(6058) PHP(5869) 数组(5741) R(5409) Linux(5327) 反应(5209) 腳本語言(PerlPython)(5129) 非技術區(4971) Android(4554) 数据框(4311) css(4259) 节点.js(4032) C語言(3288) json(3245) 列表(3129) 扑(3119) C++語言(3117) 安卓(2998) 打字稿(2995) VBA(2789) Java相關(2746) 疑難問題(2699) 细绳(2522) 單片機工控(2479) iOS(2429) ASP.NET(2402) MongoDB(2323) 麻木的(2285) 正则表达式(2254) 字典(2211) 循环(2198) 迅速(2185) 擅长(2169) 镖(2155) 功能(1967) .NET技术(1958) Web開發(1951) python-3.x(1918) HtmlCss(1915) 弹簧靴(1913) C++(1909) xml(1889) PostgreSQL(1872) .NETCore(1853) 谷歌表格(1846) Unity3D(1843) for循环(1842)

熱門瀏覽
  • 網閘典型架構簡述

    網閘架構一般分為兩種:三主機的三系統架構網閘和雙主機的2+1架構網閘。 三主機架構分別為內端機、外端機和仲裁機。三機無論從軟體和硬體上均各自獨立。首先從硬體上來看,三機都用各自獨立的主板、記憶體及存盤設備。從軟體上來看,三機有各自獨立的作業系統。這樣能達到完全的三機獨立。對于“2+1”系統,“2”分為 ......

    uj5u.com 2020-09-10 02:00:44 more
  • 如何從xshell上傳檔案到centos linux虛擬機里

    如何從xshell上傳檔案到centos linux虛擬機里及:虛擬機CentOs下執行 yum -y install lrzsz命令,出現錯誤:鏡像無法找到軟體包 前言 一、安裝lrzsz步驟 二、上傳檔案 三、遇到的問題及解決方案 總結 前言 提示:其實很簡單,往虛擬機上安裝一個上傳檔案的工具 ......

    uj5u.com 2020-09-10 02:00:47 more
  • 一、SQLMAP入門

    一、SQLMAP入門 1、判斷是否存在注入 sqlmap.py -u 網址/id=1 id=1不可缺少。當注入點后面的引數大于兩個時。需要加雙引號, sqlmap.py -u "網址/id=1&uid=1" 2、判斷文本中的請求是否存在注入 從文本中加載http請求,SQLMAP可以從一個文本檔案中 ......

    uj5u.com 2020-09-10 02:00:50 more
  • Metasploit 簡單使用教程

    metasploit 簡單使用教程 浩先生, 2020-08-28 16:18:25 分類專欄: kail 網路安全 linux 文章標簽: linux資訊安全 編輯 著作權 metasploit 使用教程 前言 一、Metasploit是什么? 二、準備作業 三、具體步驟 前言 Msfconsole ......

    uj5u.com 2020-09-10 02:00:53 more
  • 游戲逆向之驅動層與用戶層通訊

    驅動層代碼: #pragma once #include <ntifs.h> #define add_code CTL_CODE(FILE_DEVICE_UNKNOWN,0x800,METHOD_BUFFERED,FILE_ANY_ACCESS) /* 更多游戲逆向視頻www.yxfzedu.com ......

    uj5u.com 2020-09-10 02:00:56 more
  • 北斗電力時鐘(北斗授時服務器)讓網路資料更精準

    北斗電力時鐘(北斗授時服務器)讓網路資料更精準 北斗電力時鐘(北斗授時服務器)讓網路資料更精準 京準電子科技官微——ahjzsz 近幾年,資訊技術的得了快速發展,互聯網在逐漸普及,其在人們生活和生產中都得到了廣泛應用,并且取得了不錯的應用效果。計算機網路資訊在電力系統中的應用,一方面使電力系統的運行 ......

    uj5u.com 2020-09-10 02:01:03 more
  • 【CTF】CTFHub 技能樹 彩蛋 writeup

    ?碎碎念 CTFHub:https://www.ctfhub.com/ 筆者入門CTF時時剛開始刷的是bugku的舊平臺,后來才有了CTFHub。 感覺不論是網頁UI設計,還是題目質量,賽事跟蹤,工具軟體都做得很不錯。 而且因為獨到的金幣制度的確讓人有一種想去刷題賺金幣的感覺。 個人還是非常喜歡這個 ......

    uj5u.com 2020-09-10 02:04:05 more
  • 02windows基礎操作

    我學到了一下幾點 Windows系統目錄結構與滲透的作用 常見Windows的服務詳解 Windows埠詳解 常用的Windows注冊表詳解 hacker DOS命令詳解(net user / type /md /rd/ dir /cd /net use copy、批處理 等) 利用dos命令制作 ......

    uj5u.com 2020-09-10 02:04:18 more
  • 03.Linux基礎操作

    我學到了以下幾點 01Linux系統介紹02系統安裝,密碼啊破解03Linux常用命令04LAMP 01LINUX windows: win03 8 12 16 19 配置不繁瑣 Linux:redhat,centos(紅帽社區版),Ubuntu server,suse unix:金融機構,證券,銀 ......

    uj5u.com 2020-09-10 02:04:30 more
  • 05HTML

    01HTML介紹 02頭部標簽講解03基礎標簽講解04表單標簽講解 HTML前段語言 js1.了解代碼2.根據代碼 懂得挖掘漏洞 (POST注入/XSS漏洞上傳)3.黑帽seo 白帽seo 客戶網站被黑帽植入劫持代碼如何處理4.熟悉html表單 <html><head><title>TDK標題,描述 ......

    uj5u.com 2020-09-10 02:04:36 more
最新发布
  • 2023年最新微信小程式抓包教程

    01 開門見山 隔一個月發一篇文章,不過分。 首先回顧一下《微信系結手機號資料庫被脫庫事件》,我也是第一時間得知了這個訊息,然后跟蹤了整件事情的經過。下面是這起事件的相關截圖以及近日流出的一萬條資料樣本: 個人認為這件事也沒什么,還不如關注一下之前45億快遞資料查詢渠道疑似在近日復活的訊息。 訊息是 ......

    uj5u.com 2023-04-20 08:48:24 more
  • web3 產品介紹:metamask 錢包 使用最多的瀏覽器插件錢包

    Metamask錢包是一種基于區塊鏈技術的數字貨幣錢包,它允許用戶在安全、便捷的環境下管理自己的加密資產。Metamask錢包是以太坊生態系統中最流行的錢包之一,它具有易于使用、安全性高和功能強大等優點。 本文將詳細介紹Metamask錢包的功能和使用方法。 一、 Metamask錢包的功能 數字資 ......

    uj5u.com 2023-04-20 08:47:46 more
  • vulnhub_Earth

    前言 靶機地址->>>vulnhub_Earth 攻擊機ip:192.168.20.121 靶機ip:192.168.20.122 參考文章 https://www.cnblogs.com/Jing-X/archive/2022/04/03/16097695.html https://www.cnb ......

    uj5u.com 2023-04-20 07:46:20 more
  • 從4k到42k,軟體測驗工程師的漲薪史,給我看哭了

    清明節一過,盲猜大家已經無心上班,在數著日子準備過五一,但一想到銀行卡里的余額……瞬間心情就不美麗了。最近,2023年高校畢業生就業調查顯示,本科畢業月平均起薪為5825元。調查一出,便有很多同學表示自己又被平均了。看著這一資料,不免讓人想到前不久中國青年報的一項調查:近六成大學生認為畢業10年內會 ......

    uj5u.com 2023-04-20 07:44:00 more
  • 最新版本 Stable Diffusion 開源 AI 繪畫工具之中文自動提詞篇

    🎈 標簽生成器 由于輸入正向提示詞 prompt 和反向提示詞 negative prompt 都是使用英文,所以對學習母語的我們非常不友好 使用網址:https://tinygeeker.github.io/p/ai-prompt-generator 這個網址是為了讓大家在使用 AI 繪畫的時候 ......

    uj5u.com 2023-04-20 07:43:36 more
  • 漫談前端自動化測驗演進之路及測驗工具分析

    隨著前端技術的不斷發展和應用程式的日益復雜,前端自動化測驗也在不斷演進。隨著 Web 應用程式變得越來越復雜,自動化測驗的需求也越來越高。如今,自動化測驗已經成為 Web 應用程式開發程序中不可或缺的一部分,它們可以幫助開發人員更快地發現和修復錯誤,提高應用程式的性能和可靠性。 ......

    uj5u.com 2023-04-20 07:43:16 more
  • CANN開發實踐:4個DVPP記憶體問題的典型案例解讀

    摘要:由于DVPP媒體資料處理功能對存放輸入、輸出資料的記憶體有更高的要求(例如,記憶體首地址128位元組對齊),因此需呼叫專用的記憶體申請介面,那么本期就分享幾個關于DVPP記憶體問題的典型案例,并給出原因分析及解決方法。 本文分享自華為云社區《FAQ_DVPP記憶體問題案例》,作者:昇騰CANN。 DVPP ......

    uj5u.com 2023-04-20 07:43:03 more
  • msf學習

    msf學習 以kali自帶的msf為例 一、msf核心模塊與功能 msf模塊都放在/usr/share/metasploit-framework/modules目錄下 1、auxiliary 輔助模塊,輔助滲透(埠掃描、登錄密碼爆破、漏洞驗證等) 2、encoders 編碼器模塊,主要包含各種編碼 ......

    uj5u.com 2023-04-20 07:42:59 more
  • Halcon軟體安裝與界面簡介

    1. 下載Halcon17版本到到本地 2. 雙擊安裝包后 3. 步驟如下 1.2 Halcon軟體安裝 界面分為四大塊 1. Halcon的五個助手 1) 影像采集助手:與相機連接,設定相機引數,采集影像 2) 標定助手:九點標定或是其它的標定,生成標定檔案及內參外參,可以將像素單位轉換為長度單位 ......

    uj5u.com 2023-04-20 07:42:17 more
  • 在MacOS下使用Unity3D開發游戲

    第一次發博客,先發一下我的游戲開發環境吧。 去年2月份買了一臺MacBookPro2021 M1pro(以下簡稱mbp),這一年來一直在用mbp開發游戲。我大致分享一下我的開發工具以及使用體驗。 1、Unity 官網鏈接: https://unity.cn/releases 我一般使用的Apple ......

    uj5u.com 2023-04-20 07:40:19 more