如何使用Linux搭建web服務(wù)器
搭建web服務(wù)器
www 簡介
網(wǎng)址及 HTTP 簡介
web 服務(wù)器提供的這些數(shù)據(jù)大部分都是文件,那么我們需要在服務(wù)器端先將數(shù)據(jù)文件寫好,并且放置在某個特殊的目錄下面,這個目錄就是我們整個網(wǎng)站的首頁,在 redhat 中,這個目錄默認(rèn)在/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é)議>://<主機(jī)或主機(jī)名>[:port]/<目錄資源,路徑>
- 瀏覽器常支持的協(xié)議有:http、https、ftp 等
- 主機(jī)地址或者主機(jī)名:主機(jī)地址就是服務(wù)器在因特網(wǎng)所在的 IP 地址。如果是主機(jī)名的話,那么就需要域名解析了
- 端口號(port):http 為 80,https 為 443 (IANA:互聯(lián)網(wǎng)數(shù)字分配機(jī)構(gòu))
- 0-1023:眾所周知,永久地分配給固定的應(yīng)用程序使用,特權(quán)端口(只有管理員有權(quán)限啟用并讓進(jìn)程監(jiān)聽)
- 1024-41951:亦為注冊端口,但要求不是特別嚴(yán)格,分配給程序注冊為某應(yīng)用使用:3306/TCP
- 41952-60000:客戶端程序隨機(jī)使用的端口,動態(tài)端口,或私有端口
- http 請求方法:在 http 通信中,每個 http 請求報(bào)文都包含一個方法,用以告訴 web 服務(wù)器端需要執(zhí)行哪些具體的動作,這些動作包括:獲取指定 web 頁面、提交內(nèi)容到服務(wù)器、刪除服務(wù)器上資源文件等。
- 狀態(tài)代碼:由三位數(shù)字組成,第一個數(shù)字定義了響應(yīng)的類別,且有五種可能取值。
- 1xx:指示信息 —— 表示請求已接收,繼續(xù)處理
- 2xx:成功 —— 表示請求已被成功接收、理解、接受
- 3xx:重定向 —— 要完成請求必須進(jìn)行更進(jìn)一步的操作
- 4xx:客戶端錯誤 —— 請求有語法錯誤或請求無法實(shí)現(xiàn)
- 5xx:服務(wù)器端錯誤 —— 服務(wù)器未能實(shí)現(xiàn)合法的請求
- 常見狀態(tài)代碼、狀態(tài)描述的說明如下:
- 200 OK:客戶端請求成功
- 400 Bad Request:客戶端請求有語法錯誤,不能被服務(wù)器所理解
- 401 Unauthorized:請求未經(jīng)授權(quán),這個狀態(tài)代碼必須和WWW-Authenticate 報(bào)頭域一起使用
- 403 Forbidden:服務(wù)器收到請求,但是拒絕提供服務(wù)
- 404 Not Found:請求資源不存在,舉個例子:輸入了錯誤的URL
- 500 Internal Server Error:服務(wù)器發(fā)生不可預(yù)期的錯誤
- 503 Server Unavailable:服務(wù)器當(dāng)前不能處理客戶端的請求,一段時(shí)間后可能恢復(fù)正常
- HTTP 報(bào)文:http 報(bào)文中有很多行內(nèi)容,這些行的字段內(nèi)容都是由一些 ASCII碼串組成,但各個字段的長度是不同的。http 報(bào)文可分為兩種,一種是從web 客戶端發(fā)往 web 服務(wù)器的 http 報(bào)文,稱為請求報(bào)文。另外一種是從 web服務(wù)器發(fā)往 web 客戶端的報(bào)文,稱為響應(yīng)報(bào)文
HTTP 協(xié)議請求的工作流程
(1)終端客戶在 web 瀏覽器地址欄輸入訪問地址http://www.ceshi.com:80/index.html
(2)web 瀏覽器請求 DNS 服務(wù)器把域名 www.ceshi.com 解析成 web 服務(wù)器的 IP地址
(3)web 瀏覽器將端口號(默認(rèn)是 80)從訪問地址(URL)中解析出來
(4)web 瀏覽器通過解析后的 ip 地址及端口號與 web 服務(wù)器之間建立一條 TCP連接
(5)建立 TCP 連接后,web 瀏覽器向 web 服務(wù)器發(fā)送一條 HTTP 請求報(bào)文
(6)web 服務(wù)器響應(yīng)并讀取瀏覽器的請求信息,然后返回一條 HTTP 響應(yīng)報(bào)文。
(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
在我們的物理機(jī)上做訪問WEB網(wǎng)頁的實(shí)驗(yàn) 首先要保證物理機(jī)與虛擬機(jī)在同一個網(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]#
此時(shí)已經(jīng)可以在物理機(jī)的瀏覽器輸入虛擬機(jī)IP地址查看到HTTP的首頁
如果發(fā)現(xiàn)超時(shí)那就是因?yàn)榉阑饓Φ膯栴},檢查一下自己的虛擬機(jī)防火墻端口和服務(wù)都開放了么
如果都開放了還提示:HTTP/1.1 Forbidden
被拒絕,意思是權(quán)限不夠,可以關(guān)閉物理機(jī)的防火墻試試
下面就可以開始編輯配置文件來搭建個人網(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
補(bǔ)充:命令模式下: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è)置瀏覽器默認(rèn)訪問的網(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
實(shí)驗(yàn)
實(shí)驗(yàn)一
搭建一個 web 服務(wù)器,訪問該服務(wù)器時(shí)顯示“hello world”歡迎界面。
[root@x2 ~]# echo hello world > /var/www/html/index.html [root@x2 ~]# curl 192.168.80.130 hello world
實(shí)驗(yàn)二、基于多個虛擬主機(jī)IP、基于多個虛擬端口、基于個人Web站點(diǎn)的Web網(wǎng)站
1.搭建基于IP地址的虛擬主機(jī)
[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ù),查看虛擬機(jī)的IP地址,發(fā)現(xiàn)確實(shí)多了兩個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
嘗試用物理機(jī)ping虛擬機(jī)新加的地址
配置虛擬主機(jī)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
配置虛擬主機(jī)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
配置虛擬主機(jī)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
目錄里的虛擬主機(jī)IP的.conf
配置文件
補(bǔ)充:快捷鍵Shift+g
可以直接到達(dá)文件最后一行
在主配置文件的末尾加上
重啟httpd服務(wù),在物理機(jī)瀏覽器查看虛擬主機(jī)IP的網(wǎng)頁配置
[root@localhost vhost]# systemctl restart httpd
2.搭建基于端口號的虛擬主機(jī)
首先創(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目錄里的虛擬主機(jī)IP的.conf
配置文件,上面已經(jīng)寫了這一步了,然后還要配置端口號
[root@localhost vhost]# vi ../conf/httpd.conf
在監(jiān)聽端口低下添加監(jiān)聽8081與8082端口
配置完成保存退出,防火墻運(yùn)行端口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站點(diǎn)的發(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
進(jìn)入文件目錄中修改一些配置
配置完成,重啟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)建個人站點(diǎn)網(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)文章
華為昇騰920b服務(wù)器部署DeepSeek翻車現(xiàn)場演示
文章描述了在華為Kunpeng9205250服務(wù)器上部署DeepSeek模型的全過程,包括配置調(diào)整、使用ollama和nohupollama運(yùn)行模型、嘗試容器部署以及最終成功部署的步驟,過程中遇到了硬件兼容性、驅(qū)動下載、鏡像獲取權(quán)限等問題,并總結(jié)了解決方案,感興趣的朋友一起看看吧2025-02-02服務(wù)器維護(hù)小常識(硬盤內(nèi)容增加、數(shù)據(jù)庫優(yōu)化等)
為了能更好的使用和延長服務(wù)器的使用壽命,定期的對服務(wù)器進(jìn)行維護(hù)是非常必要的。但是,在維護(hù)服務(wù)器的時(shí)候一定要小心的處理好維護(hù)的工作,否則出現(xiàn)錯誤的話就會影響很大2012-07-07Ubuntu Server Rsync服務(wù)端與Windows cwRsync客戶端數(shù)據(jù)同步配置方法
這篇文章主要介紹了Ubuntu Server Rsync服務(wù)端與Windows cwRsync客戶端數(shù)據(jù)同步配置方法,需要的朋友可以參考下2015-07-07華為服務(wù)器RAID陣列卡配置教程 SR430 LSISAS3108(EFI/UEFI模式)
最近采購了華為服務(wù)器的服務(wù)器第一次做陣列,沒想到使用了以后發(fā)現(xiàn)與dell的陣列卡配置差不多,這里就為大家分享一下SR430 LSISAS3108EFI/UEFI模式下陣列卡的配置方法2025-02-02kubernetes使用kubeadm創(chuàng)建集群實(shí)操教程(全)
安裝kubernetes的方式,分別是kubeadm引導(dǎo)集群、kOps、Kubespray,本文采用kubeadm引導(dǎo)集群的方式,主要運(yùn)用了安裝kubeadm、對kubeadm進(jìn)行故障排查、使用kubeadm創(chuàng)建集群,目標(biāo)是要安裝單個控制平面的Kubernetes集群,在集群上安裝Pod網(wǎng)絡(luò),以便Pod可以相互連通2024-06-06Windows10 1903錯誤0xc0000135解決方案【推薦】
windows10 1903是2019年Mircosoft推出的最新版windows操作系統(tǒng),但是有很多機(jī)器裝上之后會存在不支持.net framework的現(xiàn)象,因此在這里,筆者為大家?guī)砹私鉀Q該問題簡單好用的方案,需要的朋友可以參考下2019-10-10