1. 程式人生 > >linux初學者-Apache篇

linux初學者-Apache篇

簡單 自動跳轉 重啟 src mkdir 發布 passwd root require

linux初學者-Apache篇 Apache提供了超文本傳輸協議http,httpd是Apache超文本傳輸協議的主服務器。下文將對httpd的安裝和配置進行簡單的敘述。
1、安裝

"yum install httpd -y"。安裝httpd服務。

技術分享圖片

"systemctl start httpd"、"systemctl enable httpd"、"systemctl stop firewalld"。對httpd服務進行配置。
2、默認發布頁

httpd服務的默認發布頁為"/var/www/html/index.html",在剛開始這個文件是不存在的。例如在目錄"/var/www/html/"下的"index.html"寫入下圖所示內容。在瀏覽器中輸入IP就可以看見。

技術分享圖片技術分享圖片

在文件"/etc/httpd/conf/httpd.conf"中的第164行,可以更改默認發布頁,如下圖所示,將默認發布頁改為"we.html",下圖中表示如果"we.html"不存在,就訪問"index.html"。完成後重啟服務。

技術分享圖片技術分享圖片

"vim /var/www/html/we.html"。在文件中編輯下圖所示內容,在瀏覽器中輸入IP。

技術分享圖片技術分享圖片

3、默認發布目錄
httpd服務的默認發布目錄是"/var/www/html"。如果要更改這個默認發布目錄,則需要做如下配置:

a、"mkdir /xue/html -p"。建立一個目錄作為默認發布目錄。

技術分享圖片

b、"vim /etc/httpd/conf/httpd.conf"。在配置文件中編輯如下內容,如下圖第120行至第123行所示:
DocumentRoot "/xue/html"
<Directory "/xue/html">
Require all granted

</Directory>

技術分享圖片

c、"semanage fcontext -a -t httpd_sys_content_t ‘/xue(/.*)?‘"。修改"/xue"目錄的安全上下文,並通過"restorecon -RvvF /xue"刷新。

技術分享圖片

d、"vim /xue/html/we.html"。在文件"we.html"中寫入下圖所示內容。

技術分享圖片

配置完成後重啟服務,在瀏覽器當中輸入IP,就可以看見d中編輯的文件內容。

技術分享圖片

4、通過密碼訪問
httpd服務也可以設置通過輸入密碼才能看到頁面的內容。其配置如下所示:
a、"cd /etc/httpd/conf/"。進入這個目錄。

b、"htpasswd -cm username admin"。添加一個用戶admin,輸入兩次密碼。添加完成後會自動生成一個文件"username"。如果繼續添加用戶,需要把參數"-cm"改為"-m"。如果加了參數"-c"會覆蓋原有用戶。

技術分享圖片

c、"vim /etc/httpd/conf/httpd.conf"。在配置文件中輸入以下內容,如下圖第121行至第127行所示:
<Directory "/xue/html">
# Require all granted
AuthUserFile /etc/httpd/conf/username
AuthName "please input your username and password"
AuthType basic
Require valid-user

</Directory>

技術分享圖片

完成後重啟服務,重新從瀏覽器中訪問,則需要輸入密碼,驗證後才可以看到裏面的頁面。

技術分享圖片技術分享圖片

上述設置中,也可以將c中的"Require valid-user"改為"Require user 用戶"。來使得只有指定的這個用戶才可以登陸成功。
5、訪問管理

通過編輯配置文件"etc/httpd/conf/httpd.conf",可以設置禁止或允許一些用戶訪問。配置方法如下圖第128行至第130行所示。重啟服務後生效。"Order Allow,Deny"表示開啟允許或者禁止訪問功能,且哪個在前哪個先生效,此處"Allow"先生效。"Allow from All"表示允許所有用戶訪問。"Deny from 172.25.254.102"表示禁止IP為"172.25.254.102"的用戶訪問。根據上述前後順序,則IP為"172.25.254.102"的用戶不可以訪問。

技術分享圖片技術分享圖片

6、虛擬發布目錄
httpd也可以從多個目錄中發布,默認的發布目錄為主發布目錄,其他的目錄為虛擬發布目錄。例如網頁上不同頁面之間的轉變就是使用的虛擬發布目錄,而不是使用多臺服務器。
虛擬發布目錄的配置如下所示:

a、"mkdir /etc/www/126/game.126.com /etc/www/126/music.126.com -p"。建立兩個虛擬的發布目錄"game.126.com"和"music.126.com"。

b、"vim /etc/www/126/game.126.com/index.com"。編輯"game.126.com"的發布頁,內容如下圖所示。

技術分享圖片

c、"vim /etc/www/126/music.126.com/index.com"。編輯"music.126.com"的發布頁,內容如下圖所示。

技術分享圖片

d、"cd /etc/httpd/conf.d"。進入這個目錄。
c、"vim default.conf"。編輯默認發布頁,編輯以下內容,如下圖所示:
<Virtualhost _default_:80>
DocumentRoot "/var/www/html"
CustomLog "logs/deault.log" combined

</Virtualhost>

技術分享圖片

d、"vim game.conf"。編輯"game.126.com"的文件。編輯以下內容,如下圖所示:
<Virtualhost *:80>
Servername game.126.com
DocumentRoot /var/www/126/game.126.com
CustomLog "logs/game.log" combined
</Virtualhost>
<Directory "/var/www/126/game.126.com">
Require all granted

</Directory>

技術分享圖片

e、"vim music.conf"。編輯"music.126.com"的文件。內容與"game.conf"相同,將其中的"game"替換為"music"。

技術分享圖片

重啟服務後虛擬發布頁就配置完成了。測試時,在另一臺主機上輸入"vim /etc/hosts"配置本地解析,編輯"172.25.254.202 www.126.com game.126.com music.126.com"。

技術分享圖片

在測試主機上的瀏覽器中輸入"www.126.com"、"game.126.com"和"music.126.com"可以看到不同的頁面。

技術分享圖片技術分享圖片技術分享圖片

7、https
https是http的安全版,常用於密碼登陸等頁面,實現客戶端和服務端之間的數據的加密傳輸。https的配置步驟如下所示:
a、"yum install mod_ssl.x86_64 -y"。下載加密模塊ssl。

b、"netstat -antlpe | grep http"。查看443端口是否開啟,443端口為https的端口。

技術分享圖片

c、"yum install crypto-utils.x86_64 -y"。安裝認證證書和key的生成軟件。
d、"genkey www.126.com"。為"www.126.com"生成證書和key。其生成為圖形界面,步驟如下圖所示。

進入界面,提示證書和key的存放位置,點擊next。

技術分享圖片

進入選擇加密長度界面。選定後點擊next。

技術分享圖片

進入文件檢查界面。

技術分享圖片

完成後進入key生成界面,需要在服務器上隨便輸入一些東西,或者晃動數標。

技術分享圖片

完成後進入如下界面,點擊no,因為yes是需要錢的,是官方認證,如果是企業需要,則點擊yes。

技術分享圖片

完成後進入如下界面,直接點擊next。

技術分享圖片

完成後進入如下界面,輸入認證證書的信息。完成後點擊next。

技術分享圖片技術分享圖片

e、"vim /etc/httpd/conf.d/ssl.conf"。編輯配置文件,配置內容如下,輸入生成的證書和key所在的文件位置。如圖第100行和第107行所示:
SSLCertificateFile /etc/pki/tls/certs/www.126.com.crt

SSLCertificateKeyFile /etc/pki/tls/private/www.126.com.key

技術分享圖片

加密頁的配置已經完成,重啟服務後生效。在瀏覽器中輸入"https://172.25.254.202"需要通過認證才可以看見。

技術分享圖片技術分享圖片技術分享圖片

查看該認證證書,和之前設置證書時輸入的一樣。

技術分享圖片

上述配置完成後在訪問網頁時需要輸入"https",顯然這是不合理的,需要在訪問域名時直接跳轉至https頁面。還需要做如下配置:
a、"mkdir /var/www/126/login.126.com"。建立一個虛擬發布目錄。

b、"vim /var/www/126/login.126.com/index.html"。配置虛擬發布頁,內容如下圖所示。

技術分享圖片

c、"vim /etc/httpd/conf.d/login.conf"。配置虛擬發布頁的文件。內容如下,如圖所示:
<VirtualHost *:443>
Servername login.126.com
DocumentRoot /var/www/126/login.126.com
CustomLog "logs/music.log" combined
SSLEngine on
SSLCertificateFile /etc/pki/tls/certs/www.126.com.crt
SSLCertificateKeyFile /etc/pki/tls/private/www.126.com.key
</VirtualHost>
<Directory "/var/www/126/login.126.com">
Require all granted
</Directory>
<VirtualHost *:80>
ServerName login.126.com
RewriteEngine on
RewriteRule ^(/.*)$ https://%{HTTP_HOST}$1 [redirect=301]

</VirtualHost>

技術分享圖片

其中"*:443"表示將端口改為443。"SSLEngine on"表示加密開啟,在後面輸入證書和key的位置。"RewriteEngine on"表示,重寫功能開啟。"RewriteRule ^(/.*)$ https://%{HTTP_HOST}$1 [redirect=301]"表示重寫規則,"^(/.*)$"是客戶端上輸入的字符,"%{HTTP_HOST}"表示客戶請求主機,"$1"表示在這裏代表"^(/.*)$","redirect=301",表示重定向等級是臨時重定向,如果是302表示永久重定向。

測試時,在客戶主機的"/etc/hosts"本地解析文件中加入"login.126.com",輸入"login.126.com"測試。

技術分享圖片

根據下圖可以看出,網頁自動跳轉至"https://login.126.com",獲取認證證書後即可看到頁面內容。

技術分享圖片技術分享圖片技術分享圖片

linux初學者-Apache篇