海安建設局網(wǎng)站刷評論網(wǎng)站推廣
?目錄
一、www簡介
1、什么是www
2、www所用的協(xié)議
3、WEB服務器????????
4、主要數(shù)據(jù)
5、瀏覽器
二、 網(wǎng)址及HTTP簡介
1、HTTP協(xié)議請求的工作流程
三、www服務器的類型(靜態(tài)網(wǎng)站(HTML), 動態(tài)網(wǎng)站(jsp python,php,perl))
1、 僅提供用戶瀏覽的單向靜態(tài)網(wǎng)頁
2、 提供用戶互動接口的動態(tài)網(wǎng)站
搭建動態(tài)網(wǎng)站的需求:
四、www服務器的基本配置
第一步:掛載
第二步:編輯配置文件
第三步:安裝軟件包
第四步:啟動httpd
查看配置文件:
主配置文件內容:
注:如果沒有apache能否正常運行(源碼安裝常見問題)
刪除apache:
解決方法:添加apache用戶
第五步:設置防火墻狀態(tài):
重啟服務:
查看狀態(tài):
查看是否啟動成功:
或者可以用:
測試:
一、www簡介
1、什么是www
????????www是world wide web的縮寫,也就是全球信息廣播的意思。通常說的上網(wǎng)就是使用www來查詢用戶所需要的信息。www可以結合文字、圖形、影像以及聲音等多媒體,并通過可以讓鼠標單擊超鏈接的方式將信息以Internet傳遞到世界各處去。
2、www所用的協(xié)議
????????HTTP超文本傳輸協(xié)議(HyperText Transfer Protocal),是互聯(lián)網(wǎng)上最廣泛的一種網(wǎng)絡協(xié)議,所有的WWW文件都必須遵守這個標準。它是建立在TCP上一種的無狀態(tài)連接,整個基本的工作流程是客戶端發(fā)送一個HTTP請求,說明客戶端想要訪問的資源和請求的動作,服務端收到請求之后,服務端開始處理請求,并根據(jù)請求做出相應的動作訪問服務器資源,最后通過發(fā)送HTTP響應把結果返回給客戶端。其中一個請求的開始到一個響應的結束稱為事務,當一個事物結束后還會在服務端添加一條日志條目。
3、WEB服務器????????
www web http apache http server tomcat nginx IIS
????????指網(wǎng)站服務器,是指駐留與因特網(wǎng)上某種類型計算機的程序,可以向瀏覽器等WEB客戶端提供文檔,也可以放置網(wǎng)站文件,讓全世界瀏覽;可以放置數(shù)據(jù)文件,讓全世界下載。
????????目前最主流的三個WEB服務器是Apache和Microsoft和Internet-信息服務器(Internet Information Services,IIS)unix nginx。
4、主要數(shù)據(jù)
????????服務器所提供的最主要數(shù)據(jù)是超文本標記語言(Hyper Text Markup Language,HTML)、多媒體文件(圖片、影像、聲音、文字等,都屬于多媒體或稱為超媒體),HTML只是一些純文本數(shù)據(jù),通過所謂的標記來規(guī)范所要顯示的數(shù)據(jù)格式。
5、瀏覽器
????????客戶端收到服務器的數(shù)據(jù)之后需要軟件解析服務器所提供的數(shù)據(jù),最后將效果呈現(xiàn)在用戶的屏幕上。那么著名的瀏覽器就有內建在Windows操作系統(tǒng)內的IE瀏覽器了,還有Firefox瀏覽器和Google的chrome瀏覽器
二、 網(wǎng)址及HTTP簡介
????????web服務器提供的這些數(shù)據(jù)大部分都是文件,那么我們需要在服務器端先將數(shù)據(jù)文件寫好,并且放置在某個特殊的目錄下面,這個目錄就是我們整個網(wǎng)站的首頁,在redhat中,這個目錄默認在 /var/www/html 。瀏覽器是通過你在地址欄中輸入你所需要的網(wǎng)址來取得這個目錄的數(shù)據(jù)的
- URL:Uniform Resource Locator,統(tǒng)一資源定位符,對可以從互聯(lián)網(wǎng)上得到的資源的位置和訪問方法的一種簡潔的表示,是互聯(lián)網(wǎng)上標準資源的地址。
- 網(wǎng)址格式:<協(xié)議>://<主機或主機名>[:port]/<目錄資源,路徑>
- 瀏覽器常支持的協(xié)議有:http、https、ftp等
- 主機地址或者主機名:主機地址就是服務器在因特網(wǎng)所在的IP地址。如果是主機名的話,那么就需要域名解析了
- 端口號(port):http為80/8080,https為443 (IANA:互聯(lián)網(wǎng)數(shù)字分配機構)
- 41952-60000:客戶端程序隨機使用的端口,動態(tài)端口,或私有端口
- 1024-41951:亦為注冊端口,但要求不是特別嚴格,分配給程序注冊為某應用使用:3306/TCP、
- ?0-1023:眾所周知,永久地分配給固定的應用程序使用,特權端口(只有管理員有權限啟用并讓進程監(jiān)聽)
-
http請求方法:在http通信中,每個http請求報文都包含一個方法,用以告訴web服務器端需要執(zhí)行哪些具體的動作,這些動作包括:獲取指定web頁面、提交內容到服務器、刪除服務器上資源文件等。
-
狀態(tài)代碼:由三位數(shù)字組成,第一個數(shù)字定義了響應的類別,且有五種可能取值。
-
1xx:指示信息 —— 表示請求已接收,繼續(xù)處理
-
2xx:成功 —— 表示請求已被成功接收、理解、接受
-
3xx:重定向 —— 要完成請求必須進行更進一步的操作
-
4xx:客戶端錯誤 —— 請求有語法錯誤或請求無法實現(xiàn)
-
5xx:服務器端錯誤 —— 服務器未能實現(xiàn)合法的請求
-
常見狀態(tài)代碼、狀態(tài)描述的說明如下:
-
200 OK:客戶端請求成功
-
400 Bad Request:客戶端請求有語法錯誤,不能被服務器所理解
-
401 Unauthorized:請求未經(jīng)授權,這個狀態(tài)代碼必須和 WWW-Authenticate 報頭域一起使用
-
403 Forbidden:服務器收到請求,但是拒絕提供服務
-
404 Not Found:請求資源不存在,舉個例子:輸入了錯誤的URL
-
500 Internal Server Error:服務器發(fā)生不可預期的錯誤
-
503 Server Unavailable:服務器當前不能處理客戶端的請求,一段時間后可能恢復正常
-
505
-
-
-
HTTP報文:http報文中有很多行內容,這些行的字段內容都是由一些ASCII碼串組成,但各個字段的長度是不同的。http報文可分為兩種,一種是從web客戶端發(fā)往web服務器的http報文,稱為請求報文。另外一種是從web服務器發(fā)往web客戶端的報文,稱為響應報文
-
http請求報文:
????????http請求報文由請求行、請求頭部、空行和請求報文主體幾個部分組成:
????????MIME(Multipurpose Internet Mail Extension,多用途因特網(wǎng)郵件擴展)最初是為了解決在不同的電子郵件系統(tǒng)之間搬移報文時存在的問題。后來http也支持了這個功能,用它來描述數(shù)據(jù)并標記不同的數(shù)據(jù)內容類型。
????????當web服務器響應http請求時,會為每一個http對象數(shù)據(jù)加一個MIME類型。當web瀏覽器獲取到服務器返回的對象時,會去查看相關的MIME類型,并進行相應的處理。
????????MIME類型存在于HTTP響應報文的響應頭部信息里,它是一種文本標記,表示一種主要的對象類型和一個特定的子類型。常見的MIME類型:
MIME類型 | 文件類型 |
---|---|
text/html | html、htm、shtml文本類型 |
text/css | css文本類型 |
text/xml | xml文本類型 |
image/gif | gif圖像類型 |
image/jpeg | jpeg、jpg圖像類型 |
application/javascript | js文本類型 |
text/plain | txt文本類型 |
application/json | json文本類型 |
video/mp4 | mp4視頻類型 |
video/quicktime | mov視頻類型 |
video/x-flv | flv視頻類型 |
video/x-ms-wmv | wmv視頻類型 |
video/x-msvideo | avi視頻類型 |
1、HTTP協(xié)議請求的工作流程
(1)終端客戶在web瀏覽器地址欄輸入訪問地址http://www.ceshi.com:80/index.html
(2)web瀏覽器請求DNS服務器把域名www.ceshi.com解析成web服務器的IP地址
(3)web瀏覽器將端口號(默認是80)從訪問地址(URL)中解析出來
(4)web瀏覽器通過解析后的ip地址及端口號與web服務器之間建立一條TCP連接
(5)建立TCP連接后,web瀏覽器向web服務器發(fā)送一條HTTP請求報文
(6)web服務器響應并讀取瀏覽器的請求信息,然后返回一條HTTP響應報文。
(7)web服務器關閉HTTP連接,關閉TCP連接,web瀏覽器顯示訪問的網(wǎng)站內容到屏幕上。
三、www服務器的類型(靜態(tài)網(wǎng)站(HTML), 動態(tài)網(wǎng)站(jsp python,php,perl))
1、 僅提供用戶瀏覽的單向靜態(tài)網(wǎng)頁
單純是由服務器單向提供數(shù)據(jù)給客戶端,Server不需要與client端有互動,所以你可以到該網(wǎng)站上去瀏覽,但是無法進行數(shù)據(jù)的上傳。
2、 提供用戶互動接口的動態(tài)網(wǎng)站
??? ??? ?這種類型的網(wǎng)站可以讓服務器與用戶互動,常見的例如留言板,博客。這種類型的網(wǎng)站需要通過“網(wǎng)頁程序語言”來實現(xiàn)與用戶互動的行為。常見的例如:PHP網(wǎng)頁程序語言,配合數(shù)據(jù)庫系統(tǒng)來進行數(shù)據(jù)的讀、寫。當你在向服務器請求數(shù)據(jù)時,其實是通過服務器端同一個網(wǎng)頁程序在負責將數(shù)據(jù)讀出或寫入數(shù)據(jù)庫,變動的是數(shù)據(jù)庫的內容,網(wǎng)頁程序并沒有任何改變。
??? ??? ?另外一種交互式的動態(tài)網(wǎng)頁主要是在客戶端實現(xiàn)。服務端將可執(zhí)行的程序代碼(JavaScript)傳送給客戶端,客戶端的瀏覽器如果提供JavaScript的功能,那么該程序就可以在客戶端的計算機上面工作了;另外一種可在客戶端執(zhí)行的就是flash動畫格式,在這種動畫格式內還可以進行程序設計。
搭建動態(tài)網(wǎng)站的需求:
1. 可支持的操作系統(tǒng):讓所有需要的軟件都能夠進行安裝。
2. 可運行的www服務器:例如Apache。
3. 網(wǎng)頁程序語言:Perl(Practical Extraction and Report Language,實用報表提取語言)、PHP(Hypertext Preprocessor,超文本預處理器,是一種通用開源腳本語言)、JSP(Java Server Pages,java服務器頁面)、CGI(Common Gateway Interface,公共網(wǎng)關接口)、ASP(Active Server Pages,動態(tài)服務器頁面)。
4. 數(shù)據(jù)存儲的數(shù)據(jù)庫系統(tǒng) :MySQL、MSSQL、Oracle等。
LAMP(linux+Apache+MySQL+PHP)
- Apache主要提供www的服務器平臺
- MySQL:傳統(tǒng)的文件讀取是很麻煩的,如果你只要讀取該文件當中的一小部分,系統(tǒng)還是會將整個文件讀出來,若又有人同時讀取同一個文件時,那就會造成效率與系統(tǒng)上的問題,所以才會有數(shù)據(jù)庫系統(tǒng)的推出。數(shù)據(jù)庫其實是一種特殊格式的文件,這種文件要通過特殊接口(數(shù)據(jù)庫軟件)來進行讀寫。由于這個特殊接口已經(jīng)針對數(shù)據(jù)的查詢、寫入做過優(yōu)化設計,因此很適合多人同時寫入與查詢工作。
- PHP:PHP可以被用來建立動態(tài)網(wǎng)頁,PHP程序代碼可以直接在HTML網(wǎng)頁當中嵌入,就像編輯HTML網(wǎng)頁一樣簡單。PHP是一種“程序語言”,這種程序語言可以直接在網(wǎng)頁當中編寫,不需要經(jīng)過編譯即可執(zhí)行。
四、www服務器的基本配置
服務器端:在linux上面實現(xiàn)網(wǎng)頁服務器需要Apache這套服務器軟件,httpd提供Apache主程序 http://httpd.apache.org/docs/2.4/ 安裝軟件:httpd
-
服務端:192.168.17.171
-
客戶端:主機
第一步:掛載
[root@localhost node1]# mount /dev/sr0 /mnt/
第二步:編輯配置文件
[root@localhost node1]# vim /etc/yum.repos.d/web.repo
[BaseOS]
name=BaseOS
baseurl=file:///mnt/BaseOS
gpgcheck=0
?
[AppStream]
name=AppStream
baseurl=file:///mnt/AppStream
gpgcheck=0
第三步:安裝軟件包
[root@localhost node1]# dnf install httpd -y
[root@localhost ~]# rpm -ql httpd
[root@localhost httpd]# tree /etc/httpd
/etc/httpd
├── conf
│ ├── httpd.conf
│ └── magic
├── conf.d
│ ├── autoindex.conf
│ ├── README
│ ├── userdir.conf
│ └── welcome.conf
├── conf.modules.d
│ ├── 00-base.conf
│ ├── 00-dav.conf
│ ├── 00-lua.conf
│ ├── 00-mpm.conf
│ ├── 00-proxy.conf
│ ├── 00-systemd.conf
│ └── 01-cgi.conf
├── logs -> ../../var/log/httpd
├── modules -> ../../usr/lib64/httpd/modules
└──
run -> /run/httpd
第四步:啟動httpd
[root@localhost node1]# systemctl start httpd.service注:1、啟動用start,再次啟動用restart,2、.service后綴可加可不加
查看配置文件:
[root@localhost node1]# rpm -ql httpd | grep etc
主配置文件內容:
-
主要的配置文件 /etc/httpd/conf/httpd.conf 。
-
額外的參數(shù)文件 /etc/httpd/conf.d/*.conf 。
如果你不想要修改原始配置文件httpd.conf的話,那么你可以將你自己的額外參數(shù)文件獨立出來,例如你想要有自己的額外設置值, 可以將它寫入 /etc/httpd/conf.d/zhuji.conf (注意,擴展名一定是.conf),而啟動Apache時,這個文件就會被讀入主要配置文件當 中了。 - 默認的首頁所在目錄 /var/www/html/ ,當輸入網(wǎng)址時所顯示的數(shù)據(jù),就是放在這個目錄當中的首頁文件(默認為index.html)。
-
默認給一些可執(zhí)行的CGI(網(wǎng)頁程序)程序放置的目錄 /var/www/cgi-bin/ ,當輸入網(wǎng)址/cgi-bin/時所顯示的數(shù)據(jù)所在。
-
默認的Apache日志文件都放在 /var/log/httpd/ ,對于流量比較大的網(wǎng)站來說,一個星期的日志文件的數(shù)據(jù)可以達到1GB左右
主配置文件內容:
[root@localhost ~]# vim /etc/httpd/conf/httpd.conf
31 ServerRoot "/etc/httpd" #http服務的頂級目錄為/etc/httpd
42 Listen 80 #監(jiān)聽在80端口,80為web服務器的默認端口
56 Include conf.modules.d/*.conf #包括/etc/httpd/conf.modules.d/*.conf的所有文件 66
User apache #服務的用戶(ps -ef | grep httpd,先以root用戶把/usr/sbin/httpd服務啟動起來)。啟動服務后轉換的身份,在啟動服務時通常以root身份,然后轉換身份,這樣增加系統(tǒng)安全 67
Group apache
86 ServerAdmin root@localhost #你的郵箱,有事的時候給你發(fā)郵件
95 #ServerName www.example.com:80 ServerName 0.0.0.0:80匹配任意IP地址,監(jiān)聽端口在80端口
注:默認是不需要指定的,服務器通過名字解析過程來獲得自己的名字,但如果解析有問題(如反向解析不正確),或者沒有DNS名字,也可以在這里指定ip地址,當這項不正確的時候服務器不能正常啟動。解決辦法就是啟動該項把www.example.com:80修改為自己的域名或者直接修改為localhost
102 <Directory /> #目錄為根,<>為起始標志,</>為結束標志
103 AllowOverride none #不允許這個目錄下的訪問控制文件來改變這里的配置,這也意味著不用查看這個目錄下的訪問控制文件。
104 Require all denied #拒絕訪問根
105 </Directory> #和<Directory />是一組標簽,目錄控制容器
119 DocumentRoot "/var/www/html" #網(wǎng)頁文件存放的目錄
124 <Directory "/var/www">
125 AllowOverride None
126 # Allow open access:
127 Require all granted
128 </Directory>
131 <Directory "/var/www/html">
144 Options Indexes FollowSymLinks #索引,跟蹤軟鏈接
151 AllowOverride None
156 Require all granted
157 </Directory>
163 <IfModule dir_module> #加載一個目錄模塊
164 DirectoryIndex index.html
165 </IfModule>
171 <Files ".ht*"> #不能訪問
172 Require all denied
173 </Files>
182 ErrorLog "logs/error_log"
189 LogLevel warn
191 <IfModule log_config_module>
#日志配置模塊 /var/log/httpd,日志模塊:通過時間節(jié)點去記錄(man date)
196 LogFormat "%h %l %u %t \"%r\" %>s %b \"%{ Referer}i\" \"%{UserAgent}i\"" combined
197 LogFormat "%h %l %u %t \"%r\" %>s %b" com mon
198
199 <IfModule logio_module>
201 LogFormat "%h %l %u %t \"%r\" %>s %b \" %{Referer}i\" \"%{UserAgent}i\" %I %O" combi nedio
202 </IfModule>
217 CustomLog "logs/access_log" combined
218 </IfModule>
220 <IfModule alias_module> #別名模塊
247 ScriptAlias /cgi-bin/ "/var/www/cgi-bin/"
248
249 </IfModule>
cgi(通用網(wǎng)關接口)是web服務器運行時外部程序的規(guī)范,按cgi編寫的程序可以擴展服務器的功能。cgi應用程序能與瀏覽器進行交互,還可通過數(shù)據(jù)庫API與數(shù)據(jù)庫服務器等外部數(shù)據(jù)源進行通信,從數(shù)據(jù)庫服務器中獲取數(shù)據(jù)
255 <Directory "/var/www/cgi-bin">
256 AllowOverride None
257 Options None
258 Require all granted
259 </Directory>
261 <IfModule mime_module> #多用途互聯(lián)網(wǎng)郵件擴展模塊
266 TypesConfig /etc/mime.types
283 AddType application/x-compress .Z
284 AddType application/x-gzip .gz .tgz
305 AddType text/html .shtml
306 AddOutputFilter INCLUDES .shtml
307 </IfModule>
mime多用途互聯(lián)網(wǎng)郵件擴展類型,是設定某種擴展名的文件用一種應用程序來打開的方式類型,當該擴展名文件被訪問時,瀏覽器會自動使用指定應用程序來打開。多用于指定一些客戶端自定義的文件名,以及一些媒體文件打開方式。
316 AddDefaultCharset UTF-8 默認字符集
318 <IfModule mime_magic_module>
324 MIMEMagicFile conf/magic
325 </IfModule>
348 EnableSendfile on ?#全局生效
353 IncludeOptional conf.d/*.conf
?
注:如果沒有apache能否正常運行(源碼安裝常見問題)
刪除apache:
[root@localhost node1]# cd /var/www/html
[root@localhost html]# id apache
uid=48(apache) gid=48(apache) groups=48(apache)
[root@localhost html]# userdel -r apache
userdel: user apache is currently used by process 43605
[root@localhost html]# systemctl stop httpd
[root@localhost html]# userdel -r apache
userdel: apache mail spool (/var/spool/mail/apache) not found
userdel: /usr/share/httpd not owned by apache, not removing
[root@localhost html]# id apache
id: ‘a(chǎn)pache’: no such user
[root@localhost html]# systemctl restart httpd
Job for httpd.service failed because the control process exited with error code.
See "systemctl status httpd.service" and "journalctl -xe" for details.
此時無法正常訪問網(wǎng)站:
解決方法:添加apache用戶
[root@localhost node1]# cd /var/www/html
[root@localhost html]# useradd -r apache
[root@localhost html]# systemctl restart httpd
[root@localhost html]# id apache
uid=975(apache) gid=974(apache) groups=974(apache)
第五步:設置防火墻狀態(tài):
[root@localhost ~]# systemctl status firewalld
[root@localhost ~]#systemctl stop firewalld#可不用
[root@localhost ~]#systemctl disable firewalld
注意: systemctl start/restart/enable/disable/stop/status/reload 的區(qū)別 ?
重啟服務:
[root@localhost ~]# systemctl restart httpd
查看狀態(tài):
查看是否啟動成功:
[root@localhost node1]# systemctl is-active httpd
active
?
##測試狀態(tài)代碼
[root@localhost node1]# systemctl stop httpd.service
[root@localhost node1]# systemctl is-active httpd
inactive
或者可以用:
[root@localhost node1]# systemctl status httpd
[root@localhost ~]# systemctl status httpd | less
Aug 31 03:35:09 localhost.localdomain httpd[7374]: AH00558: httpd: Could not
reliably determine the server's fully qualified domain name, using
localhost.localdomain. Set the 'ServerName' directive globally to suppress this
message
#httpd:無法使用localhost.localdomain可靠地確定服務器的完全限定域名。 全局設
置“ServerName”指令以禁止顯示此消息
**排錯**:
- 編輯httpd的主配置文件:`vim /etc/httpd/conf/httpd.conf`
- 將ServerName 改成0.0.0.0:80
- 重啟服務
- 看狀態(tài)顯示正常
測試:
-
在客戶端:curl http://ip地址, curl -I 可以查看http報文信息
-
通過瀏覽器訪問http://ip地址