Apache服務(基於IP地址,主機名,端口號)

安裝Apache服務程序html

 

須要注意apache服務程序的軟件包名稱叫作httpd,所以直接執行yum install apache則是錯誤的。linux

[root@liuxuanke-hbza ~]# yum install httpd*apache

使用Vim編輯器建立Yum倉庫的配置文件:vim

[root@liuxuanke-hbza ~]# vim /etc/yum.repos.d/rhel7.repocentos

[rhel7]安全

name=rhel7服務器

baseurl=file:///media/cdromtcp

enabled=1編輯器

gpgcheck=0ide

運行Apache服務程序並設置爲開機啓動

啓動Apache服務程序:

[root@liuxuanke-hbza ~]# systemctl start httpd

設置爲開機自啓動:

[root@liuxuanke-hbza ~]# systemctl enable httpd

基於IP地址

一臺服務器擁有多個IP地址,當用戶訪問不一樣IP地址時顯示不一樣的網站頁面。

一、使用nmtui命令爲網卡添加多個IP地址(192.168.10.100/110/120):

從新啓動網卡設備後使用ping命令檢查是否配置正確(這項很重要,必定要測試好再進行下一步!

二、分別建立網站數據目錄

/home/wwwroot目錄下分別建立三個網站數據目錄:

[root@liuxuanke-hbza ~]# mkdir -p /home/wwwroot/100

[root@liuxuanke-hbza ~]# mkdir -p /home/wwwroot/110

[root@liuxuanke-hbza ~]# mkdir -p /home/wwwroot/120

分別在這三個網站數據目錄中寫入主頁文件,內容爲該網站的IP地址:

[root@liuxuanke-hbza ~]# echo "IP:192.168.10.100" > /home/wwwroot/100/index.html

[root@liuxuanke-hbza ~]# echo "IP:192.168.10.110" > /home/wwwroot/110/index.html

[root@liuxuanke-hbza ~]# echo "IP:192.168.10.120" > /home/wwwroot/120/index.html

三、在配置文件(/etc/httpd/conf/httpd.conf)中描述基於主機名稱的虛擬主機

 

 四、修改網站數據目錄的SELinux安全上下文

 

 當即恢復SELinux安全上下文:

[root@liuxuanke-hbza ~]# restorecon -Rv /home/wwwroot

重啓服務

[root@liuxuanke-hbza ~]# systemctl restart httpd

分別訪問一下,驗證結果

 

 

完成本次實驗以後請還原虛擬機在進行如下實驗

 

基於主機名

 當服務器沒法爲每一個網站都分配到獨立IP地址時,能夠試試讓Apache服務程序自動識別來源主機名或域名而後跳轉到指定的網站。

一、配置網卡IP地址與hosts文件

hosts文件做用是定義IP地址與主機名的映射關係,即強制將某個主機名地址解析到指定的IP地址

[root@liuxuanke-hbza ~]# vim /etc/hosts

//每行只能寫一條,格式爲IP地址+空格+主機名(域名)。

192.168.10.100 www.centos.com

192.168.10.100 bbs.centos.com

192.168.10.100 tech.centos.com

二、分別建立網站數據目錄

[root@liuxuanke-hbza ~]# mkdir -p /home/wwwroot/www

[root@liuxuanke-hbza ~]# mkdir -p /home/wwwroot/bbs

[root@liuxuanke-hbza ~]# mkdir -p /home/wwwroot/tech

分別在網站目錄中寫入不一樣的首頁文件:

[root@liuxuanke-hbza ~]# echo "www.centos.com" > /home/wwwroot/www/index.html

[root@liuxuanke-hbza ~]# echo "bbs.centos.com" > /home/wwwroot/bbs/index.html

[root@liuxuanke-hbza ~]# echo "tech.centos.com" > /home/wwwroot/tech/index.html

三、在配置文件中描述基於主機名稱的虛擬主機

<VirtualHost 192.168.10.100>

DocumentRoot "/home/wwwroot/www"

ServerName "www.centos.com"

<Directory "/home/wwwroot/www">

AllowOverride None

Require all granted

</directory>

</VirtualHost>

 

<VirtualHost 192.168.10.100>

DocumentRoot "/home/wwwroot/bbs"

ServerName "bbs.centos.com"

<Directory "/home/wwwroot/bbs">

AllowOverride None

Require all granted

</Directory>

</VirtualHost>

 

<VirtualHost 192.168.10.100>

DocumentRoot "/home/wwwroot/tech"

ServerName "tech.centos.com"

<Directory "/home/wwwroot/tech">

AllowOverride None

Require all granted

</directory>

</VirtualHost>

 

 

重啓服務

[root@liuxuanke-hbza ~]# systemctl restart httpd

設置爲開機自啓動:

[root@liuxuanke-hbza ~]# systemctl enable httpd

五、分別訪問網站驗證結果

 

請注意還原虛擬機快照再進行下一個實驗,不然可能致使配置文件衝突而報錯。

 

基於端口號

咱們可讓服務器開啓多個服務端口後,而後讓用戶可以經過訪問服務器的指定端口來找到想要的網站。

一、配置服務器的IP地址

二、分別建立網站數據目錄

分別建立端口爲6111,6222的網站數據目錄:

[root@liuxuanke-hbza ~]# mkdir -p /home/wwwroot/6111

[root@liuxuanke-hbza ~]# mkdir -p /home/wwwroot/6222

分別在網站數據目錄中寫入不一樣內容的主頁文件:

[root@liuxuanke-hbza ~]# echo "port:6111" > /home/wwwroot/6111/index.html

[root@liuxuanke-hbza ~]# echo "port:6222" > /home/wwwroot/6222/index.html

 

 

 

 

 三、在配置文件中描述基於端口號的虛擬主機

編輯主配置文件(/etc/httpd/conf/httpd.conf),找到約在42行的Listen 80,並在下面追加:

Listen 6111
Listen 6222

而後在主配置文件的末尾按下面格式定義虛擬主機信息:

<VirtualHost 192.168.10.10:6111>
DocumentRoot ''/home/wwwroot/6111"
ServerName www.linuxprobe.com
<Directory "/home/wwwroot/6111''>
AllowOverride None
Require all granted
</Directory>
</VirtualHost>

<VirtualHost 192.168.10.10:6222>
DocumentRoot "/home/wwwroot/6222"
ServerName bbs.linuxprobe.com
<Directory "/home/wwwroot/6222">
AllowOverride None
Require all granted
</Directory>
</VirtualHost>

修改完後,記得重啓服務

出現了錯誤這是由於SELinux服務檢測到6111與6222端口本來並不屬於Apache服務端口,但如今卻被以Apache的名義監聽了

四、修改網站數據目錄的SELinux安全上下文並容許端口監聽

讓新的SElinux安全上下文當即生效:

[root@liuxuanke-hbza ~]# restorecon -Rv /home/wwwroot/

使用semanage命令搜索在SELinux系統中有關http服務的端口號:

[root@liuxuanke-hbza ~]# semanage port -l| grep http

默認的端口號中沒有6111 、6222,因此須要添加

[root@liuxuanke-hbza ~]# semanage port -a -t http_port_t -p tcp 6111

[root@liuxuanke-hbza ~]# semanage port -a -t http_port_t -p tcp 6222

再來看下SELinux的端口規則(已經添加成功了):

 再嘗試啓動服務程序就沒有問題了 systemctl restart httpd

五、分別訪問網站查看驗證結果

相關文章
相關標籤/搜索