如何使用Linux搭建web服務(wù)器
搭建web服務(wù)器
www 簡介
網(wǎng)址及 HTTP 簡介
web 服務(wù)器提供的這些數(shù)據(jù)大部分都是文件,那么我們需要在服務(wù)器端先將數(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)上標(biāo)準(zhǔn)資源的地址。
- 網(wǎng)址格式:<協(xié)議>://<主機或主機名>[:port]/<目錄資源,路徑>
- 瀏覽器常支持的協(xié)議有:http、https、ftp 等
- 主機地址或者主機名:主機地址就是服務(wù)器在因特網(wǎng)所在的 IP 地址。如果是主機名的話,那么就需要域名解析了
- 端口號(port):http 為 80,https 為 443 (IANA:互聯(lián)網(wǎng)數(shù)字分配機構(gòu))
- 0-1023:眾所周知,永久地分配給固定的應(yīng)用程序使用,特權(quán)端口(只有管理員有權(quán)限啟用并讓進程監(jiān)聽)
- 1024-41951:亦為注冊端口,但要求不是特別嚴格,分配給程序注冊為某應(yīng)用使用:3306/TCP
- 41952-60000:客戶端程序隨機使用的端口,動態(tài)端口,或私有端口
- http 請求方法:在 http 通信中,每個 http 請求報文都包含一個方法,用以告訴 web 服務(wù)器端需要執(zhí)行哪些具體的動作,這些動作包括:獲取指定 web 頁面、提交內(nèi)容到服務(wù)器、刪除服務(wù)器上資源文件等。
- 狀態(tài)代碼:由三位數(shù)字組成,第一個數(shù)字定義了響應(yīng)的類別,且有五種可能取值。
- 1xx:指示信息 —— 表示請求已接收,繼續(xù)處理
- 2xx:成功 —— 表示請求已被成功接收、理解、接受
- 3xx:重定向 —— 要完成請求必須進行更進一步的操作
- 4xx:客戶端錯誤 —— 請求有語法錯誤或請求無法實現(xiàn)
- 5xx:服務(wù)器端錯誤 —— 服務(wù)器未能實現(xiàn)合法的請求
- 常見狀態(tài)代碼、狀態(tài)描述的說明如下:
- 200 OK:客戶端請求成功
- 400 Bad Request:客戶端請求有語法錯誤,不能被服務(wù)器所理解
- 401 Unauthorized:請求未經(jīng)授權(quán),這個狀態(tài)代碼必須和WWW-Authenticate 報頭域一起使用
- 403 Forbidden:服務(wù)器收到請求,但是拒絕提供服務(wù)
- 404 Not Found:請求資源不存在,舉個例子:輸入了錯誤的URL
- 500 Internal Server Error:服務(wù)器發(fā)生不可預(yù)期的錯誤
- 503 Server Unavailable:服務(wù)器當(dāng)前不能處理客戶端的請求,一段時間后可能恢復(fù)正常
- HTTP 報文:http 報文中有很多行內(nèi)容,這些行的字段內(nèi)容都是由一些 ASCII碼串組成,但各個字段的長度是不同的。http 報文可分為兩種,一種是從web 客戶端發(fā)往 web 服務(wù)器的 http 報文,稱為請求報文。另外一種是從 web服務(wù)器發(fā)往 web 客戶端的報文,稱為響應(yīng)報文
HTTP 協(xié)議請求的工作流程
(1)終端客戶在 web 瀏覽器地址欄輸入訪問地址http://www.ceshi.com:80/index.html
(2)web 瀏覽器請求 DNS 服務(wù)器把域名 www.ceshi.com 解析成 web 服務(wù)器的 IP地址
(3)web 瀏覽器將端口號(默認是 80)從訪問地址(URL)中解析出來
(4)web 瀏覽器通過解析后的 ip 地址及端口號與 web 服務(wù)器之間建立一條 TCP連接
(5)建立 TCP 連接后,web 瀏覽器向 web 服務(wù)器發(fā)送一條 HTTP 請求報文
(6)web 服務(wù)器響應(yīng)并讀取瀏覽器的請求信息,然后返回一條 HTTP 響應(yīng)報文。
(7)web 服務(wù)器關(guān)閉 HTTP 連接,關(guān)閉 TCP 連接,web 瀏覽器顯示訪問的網(wǎng)站內(nèi)容到屏幕上。
www 服務(wù)器的基本配置
使用yum命令查找httpd服務(wù)yum search httpd
下載安裝httpd服務(wù)yum install httpd.x86_64 -y
啟動httpd服務(wù),并查看httpd服務(wù)狀態(tài)情況
systemctl start httpd systemctl status httpd
在我們的物理機上做訪問WEB網(wǎng)頁的實驗 首先要保證物理機與虛擬機在同一個網(wǎng)段,而且能夠ping通


之后開啟防火墻的80端口
[root@localhost redhat]# firewall-cmd --permanent --add-port=80/tcp success [root@localhost redhat]# firewall-cmd --permanent --add-service=http success [root@localhost redhat]# firewall-cmd --reload success [root@localhost redhat]#
此時已經(jīng)可以在物理機的瀏覽器輸入虛擬機IP地址查看到HTTP的首頁
如果發(fā)現(xiàn)超時那就是因為防火墻的問題,檢查一下自己的虛擬機防火墻端口和服務(wù)都開放了么
如果都開放了還提示:HTTP/1.1 Forbidden被拒絕,意思是權(quán)限不夠,可以關(guān)閉物理機的防火墻試試

下面就可以開始編輯配置文件來搭建個人網(wǎng)頁了
[root@x1 redhat]# cd /etc/httpd/conf [root@x1 conf]# ls httpd.conf httpd.conf.bak magic [root@x1 conf]# vim httpd.conf
補充:命令模式下:set nu可以顯示文件行數(shù)
配置所有的訪問請求都授權(quán)了

在httpd.conf這個配置文件中配置瀏覽器訪問的網(wǎng)頁根目錄:可以自定義更改

開放訪問/var/www目錄的權(quán)限

Options Indexes FollowSymLinks語句:如果該虛擬目錄下沒有 index.html,瀏覽器會顯示該虛擬目錄的目錄結(jié)構(gòu),列出該虛擬目錄下的文件和子目錄。

AllowOverride None: 完全忽略.htaccess 文件(超文本文件)

設(shè)置瀏覽器默認訪問的網(wǎng)頁為index.html

創(chuàng)建一個簡單的測試網(wǎng)頁
[root@x2 ~]# cd /etc/httpd/conf [root@x2 conf]# ls httpd.conf magic [root@x2 conf]# vim httpd.conf [root@x2 conf]# cd /var/www/html [root@x2 html]# mkdir stu [root@x2 html]# cd stu/ [root@x2 stu]# echo "this student score web">index.html [root@x2 stu]# cat index.html this student score web

實驗
實驗一
搭建一個 web 服務(wù)器,訪問該服務(wù)器時顯示“hello world”歡迎界面。
[root@x2 ~]# echo hello world > /var/www/html/index.html [root@x2 ~]# curl 192.168.80.130 hello world
實驗二、基于多個虛擬主機IP、基于多個虛擬端口、基于個人Web站點的Web網(wǎng)站
1.搭建基于IP地址的虛擬主機
[root@localhost redhat]# cd /etc/sysconfig/network-scripts/ [root@localhost network-scripts]# ls ifcfg-ens160 [root@localhost network-scripts]# vim ifcfg-ens160
在文件中的IP地址字段下面添加兩個IP地址

重啟網(wǎng)絡(luò)服務(wù),查看虛擬機的IP地址,發(fā)現(xiàn)確實多了兩個IP地址
[root@localhost network-scripts]# ifup ens160
Connection successfully activated (D-Bus active path: /org/freedesktop/NetworkManager/ActiveConnection/3)
[root@localhost network-scripts]# ip addr
1: lo: <LOOPBACK,UP,LOWER_UP> mtu 65536 qdisc noqueue state UNKNOWN group default qlen 1000
link/loopback 00:00:00:00:00:00 brd 00:00:00:00:00:00
inet 127.0.0.1/8 scope host lo
valid_lft forever preferred_lft forever
inet6 ::1/128 scope host
valid_lft forever preferred_lft forever
2: ens160: <BROADCAST,MULTICAST,UP,LOWER_UP> mtu 1500 qdisc fq_codel state UP group default qlen 1000
link/ether 00:0c:29:6b:46:66 brd ff:ff:ff:ff:ff:ff
inet 192.168.80.129/24 brd 192.168.80.255 scope global dynamic noprefixroute ens160
valid_lft 1796sec preferred_lft 1796sec
inet 192.168.80.100/24 brd 192.168.80.255 scope global secondary noprefixroute ens160
valid_lft forever preferred_lft forever
inet 192.168.80.200/24 brd 192.168.80.255 scope global secondary noprefixroute ens160
valid_lft forever preferred_lft forever
inet6 fe80::20c:29ff:fe6b:4666/64 scope link noprefixroute
valid_lft forever preferred_lft forever嘗試用物理機ping虛擬機新加的地址

配置虛擬主機IP地址的網(wǎng)頁訪問主目錄和網(wǎng)頁index.html文件
[root@localhost network-scripts]# cd /var/www/ [root@localhost www]# mkdir 100 200 [root@localhost www]# echo 192.168.80.100 test website > 100/index.html [root@localhost www]# echo 192.168.80.200 test website > 200/index.html
配置虛擬主機ip地址的httpd配置文件
回到配置文件的目錄下面,創(chuàng)建一個vhost目錄,里面專門存放虛擬IP地址的配置文件,然后在httpd服務(wù)的主配置文件中引用這個目錄
[root@localhost 100]# cd /var/www/200/ [root@localhost 200]# vim index.html [root@localhost 200]# cd /etc/httpd/conf [root@localhost conf]# cd .. [root@localhost httpd]# ls conf conf.d conf.modules.d logs modules run state [root@localhost httpd]# mkdir vhost [root@localhost httpd]# cd vhost/ [root@localhost vhost]# touch 100.conf 200.conf [root@localhost vhost]# ls 100.conf 200.conf
配置虛擬主機IP的配置文件
[root@localhost vhost]# vi 100.conf [root@localhost vhost]# cat 100.conf <VirtualHost 192.168.80.100> DocumentRoot "/var/www/100" DirectoryIndex index.html <Directory "/var/www/100"> Options Indexes FollowSymLinks AllowOverride None Require all granted </Directory> </VirtualHost> [root@localhost vhost]# vi 200.conf [root@localhost vhost]# cat 200.conf <VirtualHost 192.168.80.200> DocumentRoot "/var/www/200" DirectoryIndex index.html <Directory "/var/www/200"> Options Indexes FollowSymLinks AllowOverride None Require all granted </Directory> </VirtualHost> [root@localhost vhost]#
配置/etc/httpd/conf/httpd.conf主配置文件引用vhost目錄里的虛擬主機IP的.conf配置文件
補充:快捷鍵Shift+g可以直接到達文件最后一行
在主配置文件的末尾加上

重啟httpd服務(wù),在物理機瀏覽器查看虛擬主機IP的網(wǎng)頁配置
[root@localhost vhost]# systemctl restart httpd


2.搭建基于端口號的虛擬主機
首先創(chuàng)建網(wǎng)頁文件html
[root@localhost redhat]# cd /var/www/ [root@localhost www]# mkdir 8081 8082 [root@localhost www]# ls 100 200 8081 8082 cgi-bin html [root@localhost www]# echo 8081 port test web > 8081/index.html [root@localhost www]# echo 8082 port test web > 8082/index.html
然后在vhost目錄下配置這兩個虛擬端口的配置文件
[root@localhost www]# cd /etc/httpd/ [root@localhost httpd]# [root@localhost httpd]# cd vhost/ [root@localhost vhost]# cp 100.conf 8081.conf [root@localhost vhost]# cp 100.conf 8082.conf [root@localhost vhost]# ls 100.conf 200.conf 8081.conf 8082.conf [root@localhost vhost]# vi 8081.conf [root@localhost vhost]# vi 8082.conf [root@localhost vhost]# cat 8081.conf <VirtualHost 192.168.80.129:8081> DocumentRoot "/var/www/8081" DirectoryIndex index.html <Directory "/var/www/8081"> Options Indexes FollowSymLinks AllowOverride None Require all granted </Directory> </VirtualHost> [root@localhost vhost]# cat 8082.conf <VirtualHost 192.168.80.129:8082> DocumentRoot "/var/www/8082" DirectoryIndex index.html <Directory "/var/www/8082"> Options Indexes FollowSymLinks AllowOverride None Require all granted </Directory> </VirtualHost>
配置/etc/httpd/conf/httpd.conf主配置文件引用vhost目錄里的虛擬主機IP的.conf配置文件,上面已經(jīng)寫了這一步了,然后還要配置端口號
[root@localhost vhost]# vi ../conf/httpd.conf

在監(jiān)聽端口低下添加監(jiān)聽8081與8082端口
配置完成保存退出,防火墻運行端口8081和8082通過,重啟httpd服務(wù),測試虛擬端口是否可用
[root@localhost vhost]# firewall-cmd --permanent --add-port=8081/tcp success [root@localhost vhost]# firewall-cmd --permanent --add-port=8082/tcp success [root@localhost vhost]# firewall-cmd --reload success [root@localhost vhost]# setenforce 0 [root@localhost vhost]# getenforce Permissive [root@localhost vhost]# systemctl restart httpd


3.個人Web站點的發(fā)布
[root@localhost vhost]# cd /etc/httpd/conf.d [root@localhost conf.d]# ls autoindex.conf README userdir.conf welcome.conf [root@localhost conf.d]# cp userdir.conf userdir.conf.bak [root@localhost conf.d]# vi userdir.conf
進入文件目錄中修改一些配置



配置完成,重啟httpd服務(wù)
[root@localhost conf.d]# systemctl restart httpd
使用用戶user1訪問個人網(wǎng)站
新增用戶user1,并設(shè)置密碼
[root@localhost conf.d]# useradd user1 [root@localhost conf.d]# passwd user1 Changing password for user user1. New password: BAD PASSWORD: The password fails the dictionary check - it is too simplistic/systematic Retype new password: passwd: all authentication tokens updated successfully.
創(chuàng)建個人站點網(wǎng)頁文件
[root@localhost conf.d]# su - user1 [user1@localhost ~]$ cd .. [user1@localhost home]$ chmod -Rf 711 user1 [user1@localhost home]$ mkdir -p user1/public_html/ [user1@localhost home]$ echo user1 test website > user1/public_html/index.html
測試:

到此這篇關(guān)于如何使用Linux搭建web服務(wù)器的文章就介紹到這了,更多相關(guān)Linux搭建web服務(wù)器內(nèi)容請搜索腳本之家以前的文章或繼續(xù)瀏覽下面的相關(guān)文章希望大家以后多多支持腳本之家!
相關(guān)文章
Win2003 Server DHCP服務(wù)器安裝圖解教程
為了節(jié)省IP地址資源,IP地址采用了DHCP自動分配方式2012-10-10
k8s監(jiān)控數(shù)據(jù)組件Pod自動化進行擴縮容HPA
這篇文章主要為大家介紹了監(jiān)控數(shù)據(jù)組件Pod自動化進行擴縮容-HPA的全面講解,有需要的朋友可以借鑒參考下,希望能夠有所幫助,祝大家多多進步2022-03-03
云服務(wù)器Centos中安裝Docker的方法小結(jié)
Docker是一個開源的應(yīng)用容器引擎,利用操作系統(tǒng)本身已有的機制和特性,可以實現(xiàn)遠超傳統(tǒng)虛擬機的輕量級虛擬化,CentOS是Linux發(fā)行版之一,本文給大家介紹云服務(wù)器Centos中安裝Docker的方法,感興趣的朋友一起看看吧2023-12-12
github的使用_動力節(jié)點Java學(xué)院整理
這篇文章主要為大家詳細介紹了github使用的相關(guān)資料,具有一定的參考價值,感興趣的小伙伴們可以參考一下2017-08-08
Visual Studio Code 使用Git進行版本控制(圖文教程)
這篇文章主要介紹了Visual Studio Code 使用Git進行版本控制(圖文教程),小編覺得挺不錯的,現(xiàn)在分享給大家,也給大家做個參考。一起跟隨小編過來看看吧2017-11-11
忘記Grafana不要緊2種Grafana重置admin密碼方法詳細步驟
這篇文章主要介紹了忘記Grafana不要緊2種Grafana重置admin密碼方法詳細步驟,需要的朋友可以參考下2022-04-04

