apache的基本使用
一、認識apache
apache企業中常用的web服務,也是世界上使用排名第一的web伺服器,用來提供http://(超文字傳輸協議)。
二、apache的安裝部署
1、yum install httpd -y :下載並安裝apache伺服器(在linux系統的映象中有安裝包)
2、systemctl start httpd :開啟http服務
3、為了方便使用,需要將其設定為開機自動啟動:systemctl enable httpd
4、如果其他主機通過apache訪問時,需要關掉防火牆:systemctl stop firewalld
5、安裝部署好後即可使用:在瀏覽器中輸入http://主機id進行訪問
6、apache有手冊可以使用,需要自行下載:yum install httpd-manual
7、手冊也可以通過apache訪問,但如果該手冊的檔案不在/var/www/html下就不能被訪問,此時需要將其放置該目錄下
訪問:http://主機ip/manual
三、apache基本資訊
1、主配置目錄:/etc/httpd/conf
2、主配置檔案:/etc/httpd/conf/httpd.conf
3、子配置目錄:/etc/httpd/conf.d
4、子配置目錄:/etc/httpd/conf.d/*.conf ##*表示所有##
5、預設釋出目錄:/var/www/html
如:先建立一個index.html檔案 :vim /var/www/html/index.html
然後再通過http訪問該主機時就會讀取該檔案的內容
7、預設埠:80
8、預設安全上下文:httpd_sys_content_t
9、程式開啟預設使用者:apache
10、apache日誌:/etc/httpd/logs/*
1、修改預設埠:在主配置檔案/etc/httpd/conf/httpd.conf中更改
預設為80,可以直接修改為隨意正常埠,如8080。修改後需要重啟服務才能生效
更改後在訪問時必須在地址後加上“:8080”,否則無法訪問
加上8080以後便可以訪問!!!
注意:更改實驗後建議重新更改回去,便於使用!!!
2、修改預設釋出檔案
apache的預設檔案可以有多個,需要在主配置檔案中增加!!
注意:預設檔案的訪問順序為從前到後,如果前面的檔案沒有,則訪問後面的檔案
測試:先建立一個test.html檔案並輸入內容
然後刪除原有的index.html檔案再訪問該主機
如上圖,沒有index.html檔案時訪問test.html檔案!!!!
3、修改預設釋出目錄
在主配置檔案中可修改預設釋出目錄
將預設釋出目錄修改為/www/html,其中Directory模組是賦予新的釋出目錄的許可權!!
注意:修改的釋出目錄必須系統存在,如果不存在需要手動建立,否則訪問不到!!
測試:在釋出目錄下建立一個釋出檔案並輸入內容,然後用瀏覽器訪問測試
注意:在測試完成後,為了在以後的使用中不出錯,需要將設定恢復!!!
注意:在修改後如果無法訪問時,需要將目錄的安全上下文進行修改
semanage fcontext -a -t httpd_sys_content_t'/www(/.*)?'
restorecon -RevvF /www/
如果selinux中設定為disabled,則無需進行安全上下文的設定
注意:所有對配置檔案的更改操作後,需要重新啟動服務才能生效!!!!!
四、apache站點的建立
1、先建立各站點的預設釋出目錄
2、然後在子配置目錄中建立各站點的配置檔案:檔案必須以.conf結尾!!!
未指定訪問站點時的配置檔案:vim adfault.conf
內容解釋:
<VirtualHost _default_:80> ##名稱及訪問介面
DocumentRoot"/var/www/html" ##預設釋出目錄
CustomLog "logs/www.westos.com.log"combined##報錯檔案,combined表示四種報錯級別
</VirtualHost>
指定站點linux.westos.com的配置檔案:vim linux.conf
ServerName表示站點名稱,Directory模組為設定許可權!!
指定站點c.westos.com的配置檔案:vim c.conf
注:內容和linux的配置檔案內容幾乎相同,在建立時可以先複製再更改名稱即可!!
3、在各站點的釋出目錄下建立釋出檔案
4、測試:
測試前需要在測試主機上設定站點的本地解析:vim /etc/hosts
訪問www.westos.com時應該訪問/var/www/html下的釋出檔案
訪問linux.westos.com時應該訪問/var/www/virtual/linux.westos.com/html下的釋出檔案
訪問c.westos.com時應該訪問/var/www/virtual/c.westos.com/html下的釋出檔案
五、apache的訪問控制
1、針對於主機的訪問:在配置檔案中寫入控制模組,允許訪問和不允許訪問的主機均可以設定!!
模組解釋:
<Directory "/var/www/html/test"> ##被控制的目錄
Order allow,deny #讀取的順序#
Allow from 172.25.20.250 #允許誰訪問
Deny from all #不允許誰訪問
</Directory>
注意:系統在讀取檔案時,Order後的順序決定了讀取順序,先讀取的內容會被後讀取的內容中相同的內容覆蓋掉!!
按上圖設定,後讀取的Deny內容為全部主機,則會將先讀取的allow中的172.25.20.250主機覆蓋掉,則該主機不能訪問,如下:
如果改變了讀取順序,先讀Deny,後讀Allow則可以訪問:
2、以使用者的方式訪問的控制
先建立使用者的目錄
建立使用者的密碼檔案:htpasswd -cm /etc/httpd/userpass admin
新增新的使用者密碼檔案:htpasswd -m /etc/httpd/userpass admin1
注意:在新新增時,命令的引數中不能有“c”,否則會將之前建立的內容全部覆蓋
在配置檔案中寫入模組進行設定,與apache聯絡起來
模組內容解釋:
<Directory "/var/www/html/admin"> #管理的檔案目錄
AuthUserFile /etc/httpd/userpass #密碼檔案
AuthName "Please input your nameand passwd" #訪問時的提示語
AuthType basic #最基本的驗證方式
#Require user admin #只允許admin使用者通過驗證進行訪問
Require valid-user #允許所有有效使用者通過驗證後進行訪問
</Directory>
測試:只允許admin2使用者進行訪問:
允許所有使用者進行訪問:
六、apache支援的語言
1、html語言,之前apache的預設釋出檔案就是html語言的指令碼,所有在此不進行驗證!!
2、php語言
在使用php語言的指令碼作為釋出檔案時,需要先下載php服務:yum install php -y
編輯php語言指令碼放在/var/www/html目錄下:
此內容為php語言;用http可以訪問該檔案並顯示語句的輸出
3、cgi語言
先建立一個cgi語言指令碼的目錄:mkdir /var/www/html/cgi
用cgi語言編輯一個指令碼檔案
內容表示動態顯示系統當前的時間,此指令碼應該放在/var/www/html/cgi目錄下
需要給指令碼加上執行許可權才能執行:chmod +x /var/www/html/cgi/index.cgi
然後再執行一下檢測指令碼是否正確:
然後在配置檔案中寫入該模組:
確保該檔案可以被訪問到,該模組的內容可以在apache手冊中檢視
此時可用http訪問cgi指令碼:
七、https
https是使用者在通過http訪問時資料不會被破解,簡單來說就是http的安全版。
httos的預設訪問埠為443
部署https:
yum install mod_ssl -y :生成443埠以及https服務
yum install crypto-utils -y :生成產生加密證書的命令
安裝完成後即可執行產生證書的命令:genkey 網站名稱
執行後會產生如下介面進行生成:
畫圈部分分別為加密的key和加密證書的檔案及其位置,用tab鍵選擇Next進行下一步
此步為選擇key檔案的大小,建議選擇1024適中,太大速度較慢!!然後選擇Next下一步
此步為收集資料,速度較慢,此時需要開啟一個新的shell並在shell命令列隨機輸入內容,速度會迅速加快!!
該步驟為是否向CA機構傳送,選擇NO,不傳送!!!!
建議不寫入內容,直接選擇Next進行下一步,否則會很慢!!!
填寫網站的基本資訊,依次為國家、省份、所在城市、公司名稱!!
Next即可建立成功!!!
建立成功後,系統會顯示https的基本資訊
https的配置檔案會自動在/var/httpd/conf.d/下生成,為ssl.conf檔案
vim /etc/httpd/conf.d/ssl.conf
此為https的服務埠
此為https的密碼證書檔案和key檔案!!
證書和key生成後,即可在瀏覽器中通過https訪問該主機
如上,第一次訪問時需要下載安全證書才能進行訪問,選擇I Understand the Risks
選擇Add Exception進行新增
先點選Get Certificate再點選Confirm即可進入
點選這個小鎖子可以檢視證書
點選View
八、設定https虛擬主機
1、建立虛擬主機發布目錄及檔案
2、建立虛擬主機的配置檔案
其中:
這三行內容可以在ssl.conf檔案中找到,可以直接複製過來!!表示服務開啟!!!
設定好配置檔案後需要重啟網路才能生效!!
然後用https訪問該虛擬主機,測試搭建是否成功
該介面表示可以訪問到,下載證書即可檢視到釋出檔案的內容
為了使使用者用http訪問時自動轉換成https訪問,需要在配置檔案中寫入轉換模組,即將80埠訪問該主機轉化為443埠訪問!!
第12至16行為轉化模組。
第15行語句含義:
重啟服務才能生效
測試:用http訪問該站點,自動轉換為https訪問: