實驗要求:
練習利用Apache服務建立普通Web站點、基于主機和用戶認證的訪問控制:
(1)使用本地yum源安裝Apache軟體,
(2)Apache服務器IP地址為192.168.232.132,使用域名www.rj.com進行訪問,
(3)網站根目錄為/data/web_data,
(4)網站首頁為index.html,內容是“Welcome to 2019 Computer Network Application contest!”,
(5)使用三種方式搭建虛擬主機,
=======================
【一】準備作業:Apache服務器的啟用
(1)檢測Apache
rpm -qa | grep httpd #查看是否安裝上了httpd服務
安裝Apache:
way1:yum命令,直接從網上軟體倉庫安裝
yum list httpd
yum install httpd.x86_64
way2:安裝rpm包
rpm -ivh [包名]
安裝多個rpm包時要注意順序,因為包之間有依賴關系,
mailcap-xxx.rpm
htttp2.4.6
……
【一共6個rpm包,這里po主不記得那6個包名分別是什么了,下次知道了補上,】
(2)查看Apache服務狀態、啟動
#所有服務器的狀態查看、重啟命令都是一樣的
systemctl status httpd #查看狀態
systemctl start httpd #啟動

(要顯示為Active)
開啟服務后,首先要檢驗物理機和虛擬機之間是否能ping通:
ping 192.168.232.132 #物理機去ping虛擬機
ping -c 3 192.168.232.1 #虛擬機ping物理機
要互相能ping通才行,
如果ping不通,物理機可以用ifconfig查看當前物理VMnet8地址,看看和虛擬機用ip addr查到的地址是否在同一網段,如果不在同一網段是ping不同的,最簡單粗暴的方法是直接改物理機VMnet8的地址,
開啟防火墻埠:
firewall-cmd --add-port=80/tcp
(顯示success)
(在沒開防火墻之前,瀏覽器是看不到東西的)
【補充】(↓以下命令為重啟防火墻策略,但是不要更新策略了,有可能防火墻退回原來的狀態,導致前面配置開啟防火墻埠失效,)
#firewall-cmd --reload
【檢測Apache服務器狀態——用瀏覽器訪問】
法1:打開瀏覽器,在地址欄輸入:
http://192.168.232.132
192.168.232.132 #兩種寫法都可以
這里可能會出現的幾種情況:
①如果配置好了,頁面應該會這樣顯示:

②如果一直在轉圈加載,很久之后顯示無法訪問,則很大可能是防火墻的問題,請重新配置一次防火墻:


法2:安裝lynx,用lynx查看
lynx是Linux下一個終端字符界面下的瀏覽器,該界面下只能顯示字符
yum list | grep lynx
yum -y install lynx.x86_64 #這里的lynx.x86_64上一條命令查到的包名(雖然我安裝lynx的時候是直接寫成了lynx成功了,但是不是所有的包都可以直接寫其名,一定要查了再裝)
lynx http://192.168.232.132 #用lynx訪問Apache發布的網址
用lynx時正常查看的情況如下圖:

=======================
【二】修改主組態檔
【在修改總組態檔httpd.conf之前,可以將組態檔做一個備份】
tar -cvf httpd.conf.tar httpd.conf
打開主組態檔httpd.conf:
[root@localhost ~]# vi /etc/httpd/conf/httpd.conf
修改內容:
①httpd服務的網站目錄訪問權限:

【備注】
如果不修改此處,在后續的虛擬主機配置中,瀏覽器可能會回傳Forbidden(比如我就在基于埠號的虛擬主機配置時碰到了)
②Web站點主目錄:
這里需要改成我們需要建立Web站點的路徑/data/web_data

③Web站點檢索主頁串列
在這里列出的站點,找不到第一個就找下一個打開
(在本實驗中也不用改,因為一直用的就是index.html)

===================
【三】虛擬主機配置
法1:基于IP的虛擬主機配置
原理:此方法旨在通過修改ifcfg-ens33檔案,以添加ip地址(這種方法添加ip地址是永久性的)
步驟:
打開ifcfg-ens33檔案(這個檔案和網卡有關)
vi /etc/sysconfig/network-scripts/ifcfg-ens33
*記不住具體路徑的話,可以用find命令查:
[root@localhost ~]# find / -name ifcfg-ens33
修改ifcfg-ens33,改成下圖形式:

↑修改的地方:
①ONBOOT:改為yes(開機啟動)
②添加ip地址(像圖上以IPADDR的形式寫出,可以同時添加多個地址,但是必須以不同的名字列出,不能全部命名為IPADDR)
③添加GATEWAY(寫物理機ifconfig查到的VMnet8的ip地址)
④添加NETMASK(ip地址的子網掩碼)
重啟網卡:(只有重啟網卡了,剛才添加的ip地址才能生效)
[root@localhost ~]# systemctl restart network
(此命令在SSH遠程操作有可能會卡住,所以這條命令最好在VMware里面完成,否則可能要重新連一次遠程,)
重啟之后,用ip addr命令查看ip地址,可以看到新添加的ip地址了,
創建新的根目錄路徑/data/web_data,然后在新路徑中創建index.html:
[root@localhost ~]# mkdir -p /data/web_data #引數-p:支持一次創建多級路徑(不記得的話就一層一層地建吧)
[root@localhost ~]# echo "Welcome to 2019 Computer Network Application contest! " > index.html #雙引號中如果最后有感嘆號!,則需要轉義,否則不能正常顯示,但是這里我懶,干脆直接在最后加了個空格(逃
???創建ip地址對應的目錄、組態檔:
[root@localhost httpd]# mkdir vhost
[root@localhost httpd]# cd vhost
[root@localhost vhost]# vi 132.conf
增加132.conf內容:

打開主組態檔httpd.conf,并在結尾處添加如下資訊:

重啟服務使配置生效:
[root@localhost httpd]# systemctl restart httpd
再次訪問192.168.232.132,就可以顯示出index.html的內容了:

法2:基于埠號的虛擬主機配置
在主組態檔httpd.conf中添加:

解釋一下:最后的10021和10022是待配置的兩個埠號
(用win10的話)為了后續不報錯,這里需要安裝semanage:
[root@localhost ~]# yum provides semanage #先查包名
[root@localhost ~]# yum -y install [root@localhost ~]# yum -y install policycoreutils-python-2.5-34.e17.x86_64 #再安裝
用semanage查看已有埠:
[root@localhost ~]# semanage port -l | grep http

添加后續我們要用的埠號:
[root@localhost ~]# semanage port -a -t http_port_t -p tcp 10021
[root@localhost ~]# semanage port -a -t http_port_t -p tcp 10022
**【備注】**本來是想添加8081和8082的,結果添加之后就不能正常重啟httpd服務了,再用systemctl status httpd查狀態,發現變成failed了,后來才發現是埠8081和8082都已經被占用了,所以后面改用成10021和10022
(這個問題很磨人……有空再補充寫寫)
建立基于埠號方式的虛擬主機存放站點的根目錄,并創建首頁index.html檔案:
[root@localhost web_data]# mkdir 10021
[root@localhost web_data]# mkdir 10022
[root@localhost web_data]# echo "port 10021 Web Site." > 10021/index.html
[root@localhost web_data]# echo "port 10022 Web Site." > 10022/index.html
編輯每個埠號的不同組態檔:
(在httpd/vhost下)


這里的大致內容和基于ip方式的虛擬主機配置一樣,只是多加了埠號,
設定防火墻,并重啟防火墻和httpd服務:
[root@localhost web_data]# firewall-cmd --permanent --add-port=10021/tcp
success
[root@localhost web_data]# firewall-cmd --permanent --add-port=10022/tcp
success
[root@localhost web_data]#systemctl restart firewalld
[root@localhost web_data]# systemctl restart httpd.service
最后,可以顯示了:


法3:基于域名方式的虛擬主機配置
在網卡上設定新的虛擬網卡地址(此處新建192.168.232.136,注意:這個只是臨時ip,再次重啟虛擬機之后就沒有了,想要添加永久的ip/修改當前虛擬機的ip地址,請參考上文中修改ifcfg-ens33檔案的方式)
[root@localhost ~]# ifconfig ens33:5 192.168.232.136/24
[root@localhost ~]# ip addr #此時就可以查看到我們新建的臨時ip了
用vi編輯/etc/hosts檔案,在檔案的最后添加資訊:
192.168.232.136 www.rj.com #前面是ip地址,后面是對應的域名
在根目錄/data/web_data下,建立基于域名方式的虛擬主機存放站點,并創建首頁index.html檔案:
[root@localhost ~]# cd /data/web_data
[root@localhost ~]# echo "Here rjrj" > rj/index.html
編輯域名的組態檔:

測驗虛擬主機主頁,可以看到結果:

**【備注】**此處只能在虛擬機里查看,而不能在外部瀏覽器中查看(除非買了域名)
(curl需要安裝才能用,相當于SSH中的瀏覽器)
轉載請註明出處,本文鏈接:https://www.uj5u.com/qita/243947.html
標籤:其他
下一篇:2021-01-02
