Linux上搭建http服務器

web服務器的類型:
1、僅提供用戶瀏覽的單向靜態網頁
單純是由服務器單向提供數據給客戶端,Server不需要與Client端有互動,所以只能在網站上瀏覽,無法進行數據的上傳。
2、提供用戶互動接口的動態網站
這種類型的網站可以讓服務器與用戶互動,常見的例如留言板、博客。這種類型的網站需要通過“網頁程序語言”來實現與用戶互動行爲。常見的例如:PHP網頁程序語言,配合數據庫來進行數據的讀寫。當你在向服務器請求數據時,其實是通過服務器端同一程序在負責將數據讀出或寫入數據庫,變動的是數據庫的內容,網頁程序並沒有任何改變。

動態網站架構 LAMP
LAMP:Linux+Apache+MySQL+PHP
這一組用來搭建動態網站或者服務器的開源軟件,本身都是各自獨立的程序,但是因爲常在一起使用,擁有了越來越高的兼容度,共同組成了一個強大的web應用程序平臺。

搭建動態網站的需求:
1、可支持的操作系統,讓所有需要的軟件都能安裝
2、可運行的web服務器:例如Apache
3、網頁程序語言:PHP、Perl、Java
4、數據庫系統:MySQL、Oracle

客戶端請求字段描述:
在這裏插入圖片描述
服務器返回的狀態碼描述:
1xx:指示信息——表示請求已接受,繼續處理
2xx:成功——表示請求已被成功接受、理解、處理
3xx:重定向——要完成請求必須進行更進一步操作(頁面跳轉)
4xx:客戶端錯誤——請求語法錯誤或請求無法實現
5xx:服務區錯誤——服務器未能實現合法的請求

常見狀態碼描述:
200 OK:客戶端請求成功
400:客戶端請求語法錯誤,不能被服務器所理解
401:客戶端請求未經授權
403:服務器收到請求,但拒絕服務
404:請求資源不存在,如:輸入了錯誤的URL
500:服務器發生不可預期的錯誤
503:服務器當前不能處理請求,一段時間可恢復

web服務搭建流程:
|——搭建環境:redhat7.x+
|——搭建架構:C/S
|——客戶端,網站訪問格式:http://ip :80
|——服務端,Apache:
  |——安裝軟件包
  |——啓用服務
  |——設置防火牆,selinux規則策略
  |——配置服務,設置訪問信息
  |——重啓服務
  |——查看服務狀態
  |——在客戶端測試
#yum install httpd -y
#systemctl start httpd
#systemctl status httpd
#systemctl stop firewalld
#setenfoce 0
#vim /var/www/html/index.html

配置文件解讀:
vim /etc/httpd/conf/httpd.conf
在這裏插入圖片描述
在這裏插入圖片描述在這裏插入圖片描述在這裏插入圖片描述在這裏插入圖片描述
自定義網站資源信息、訪問目錄、目錄權限:

要求:搭建web服務器通過默認80端口能夠訪問網頁內容爲“小胖,你咋這麼胖呢!”網頁文件要求在主機/www目錄下。
解:
1、在輔助配置目錄/etc/httpd/conf.d/vhost.conf下配置信息
在這裏插入圖片描述
2、配置訪問主機IP和端口爲192.168.253.128:80,服務管理員爲redhat,訪問網頁文件信息目錄存放在/www,並配置目錄/www不覆蓋,允許所有訪問權限
在這裏插入圖片描述
3、創建/www目錄
在這裏插入圖片描述
4、在/www/index.html寫入網頁內容
在這裏插入圖片描述
5、重啓httpd服務
在這裏插入圖片描述
6、查看httpd服務狀態
在這裏插入圖片描述
7、在客戶端測試
在這裏插入圖片描述在這裏插入圖片描述
一、基於不同ip地址訪問網站:
要求:
建立一個192.168.253.100的網站,文件放在/www/100,內容顯示this is 100;建立一個192.168.253.200的網站,文件放在/www/200,內容顯示this is 200.
第一步:配置網絡
#nmcli connection modify eno16777736 ipv4.addresses 192.168.253.128/24 ipv4.gateway 192.168.253.1 ipv4.dns 114.114.114.114 ipv4.method manual connection.autoconnect yse
#nmcli connection modify eno16777736 +ipv4.addresses 192.168.253.100/24
#nmcli connection modify eno16777736 +ipv4.addresses 192.168.253.200/24
#nmcli connection up eno16777736
第二步:編輯配置文件
#mkdir /www/{100,200} -pv
#echo this is 100 > /www/100/index.html
#echo this is 200 > /www/200/index.html
#vim /etc/httpd/conf.d/vhost.conf
在這裏插入圖片描述
#systemctl restart httpd 重啓http服務
第三步:測試
#curl http://192.168.253.100
this is 100
#curl http://192.168.253.200
this is 200

二、基於不同端口訪問網站:
要求:建立一個網站,文件存放在/www/80,內容顯示爲the port is 80;建立一個網站,文件存放在/www/10000,內容顯示爲the port is 10000。
配置如下:
在這裏插入圖片描述
三、基於域名訪問網站
瀏覽器域名解析順序:
1、瀏覽器緩存
2、操作系統緩存
windows:C:\windows\system32\drivers\etc\hosts
Linux:/etc/hosts
3、路由緩存
4、ISP的DNS服務器
5、根服務器
要求:新建一個網站,域名爲www.haha.com,同時可通過www1.haha.com訪問,文件存放在/www/haha目錄,網頁內容爲this is haha。
配置如下:
在這裏插入圖片描述
然後在/etc/host中添加域名對應的ip
#vim /etc/hosts
在這裏插入圖片描述
排錯:
1、重啓服務起不來(肯定是配置文件參數格式有問題)
通過查看服務狀態根據日誌提示更改配置
#systemctl status httpd
2、服務可以起來但自定義界面不能訪問
原因一:測試提示無法訪問,查看防火牆是否關閉
原因二:默認網站路徑下的資源文件可以訪問但自定義的不能訪問,檢查selinux是否關閉
原因三:界面可能沒有按照需求創建(檢查配置文件DocumentRoot參數值並確認網站目錄以及文件是否在當前主機創建)
原因四:自定義的網站根目錄權限是否開啓
Directory /www
AllowOverride none
Require all granted

發表評論
所有評論
還沒有人評論,想成為第一個評論的人麼? 請在上方評論欄輸入並且點擊發布.
相關文章