linux學習 lesson22 http服務
一、Apache服務
什麼是Apache
阿帕奇 (Apache HTTP Server)也就是apache伺服器。它是Apache軟體基金會管理下的一個開放原始碼的伺服器軟體,可以理解為電腦上的一個應用程式。簡單地說它的作用就是將你的電腦變成一臺伺服器,讓你的電腦開放特定的網路埠,用以接收來自網路上傳送到這臺機器的HTTP請求,對請求的內容進行處理並作出相應的響應。
安裝
yum install http -y ##安裝appche在此之前先配好yum源 systemctl start httpd ##開啟阿帕奇服務 systemctl enable httpd ##開機自啟動 firewall-cmd --permanent --add-service=http ##火牆允許阿帕奇工作 firewall-cmd --reload ##重啟火牆 firewall-cmd --list-all ##檢視是否新增成功,若servere行成功顯示http字樣表示成功
測試
在真機上開啟瀏覽器輸入安裝過阿帕奇的虛擬機器ip。
安裝成功!
apache的基礎設定和資訊
檢視html內容
檔案所在位置/var/www/html/index
vim /var/www/html/index.html ##網頁顯示內容編寫
http選單顯示
yum install httpd-manual -y ##安裝apache選單外掛
重啟apache,在網頁上測試。
基礎資訊
主配置目錄: /etc/httpd/conf
主配置檔案: /etc/httpd/conf/httpd.conf
子配置目錄: /etc/httpd/conf.d
子配置檔案: /etc/httpd/conf.d/*.conf
預設釋出目錄: /var/www/html
預設釋出檔案: index.html
預設埠: 80
預設安全上下文:httpd_sys_content_t
程式開啟預設使用者:apache
apache日誌: /etc/httpd/logs/
二、預設釋出檔案修改
cd /etc/httpd/conf/
vim httpd.conf ##更改配置檔案
DirectoryIndex test.html index.html
cd /var/www/html/
vim test.html ##編寫test釋出檔案
systemctl restart httpd.service
測試
預設釋出檔案換為了test.html的內容,試驗成功!
三、預設釋出目錄修改
mkdir -p /kris/html
vim /etc/httpd/conf/httpd.conf
####編寫內容
119 #DocumentRoot "/var/www/html" ##註釋原本發目錄地址
120 DocumentRoot "/kris/html" ##填寫新的發目錄
121 <Directory "/kris">
122 Require all granted
123 </Directory>
cd /kris/html/
vim index.html ##編寫釋出檔案
ls -Zd /var/www/html ##原本目錄的安全上下文
ls -Zd /kris ##新建目錄的安全上下文
semanage fcontext -a -t httpd_sys_content_t '/kris(/.*)?' ##更改安全上下文詩其與原目錄一致
restorecon -FvvR /kris
systemctl restart httpd
##注意:如果安全上下文顯示為? 說明selinux處於disable模式,則不用修改。
測試
四、預設埠修改
vim /etc/httpd/conf/httpd.conf
編寫內容:
41 #Listen 12.34.56.78:80
42 Listen 8080 ##修改埠為8080
firewall-cmd --permanent --add-port=8080/tcp ##火牆允許8080埠使用
firewall-cmd --reload
systemctl restart httpd.service
####測試
瀏覽器輸入:172.25.254.108:8080
五、apache虛擬機器
瀏覽器所在主機做地址解析
su -
vim /etc/hosts
還原apache配置檔案
vim /etc/httpd/conf/httpd.conf
重啟apache
瀏覽器輸入網址www.kris.com成功!
這樣的話所有的地址都會指向172.25.254.108.那麼如何讓他們訪問不同的頁面呢?我們需要用到apache虛擬機器。
apache虛擬機器搭建
mkdir -p /var/www/virtual/kris.com/music
mkdir -p /var/www/virtual/kris.com/sport
vim /var/www/virtual/kris.com/music/index.html
vim /var/www/virtual/kris.com/sport/index.html
vim /etc/httpd/conf.d/music.conf
cd /etc/httpd/conf.d/
cp music.conf sport.conf
vim sport.conf
systemctl restart httpd.service
測試
六、apache內部的訪問控制
1、針對主機的訪問控制
訪問黑名單設定
mkdir /var/www/html/westos
vim /var/www/html/westos/index.html
vim /etc/httpd/conf/httpd.conf
<Directory "/var/www/html/westos">
Order Allow,Deny #列表讀取順序,後讀的會覆蓋前重複的內容
Allow from ALL
Deny from 172.25.254.65
</Directory> #不允許ip為172.25.254.65的使用者訪問
測試
systemctl restart httpd
68主機上測試
##主機ip因為在黑名單內所以被拒絕。
208虛擬機器上測試
##虛擬機器沒有在黑名單中可以訪問。
訪問白名單設定
vim /etc/httpd/conf/httpd.conf
<Directory "/var/www/html/westos">
Order Deny,Allow
Allow from 172.25.254.65
Deny from All
</Directory> #只允許ip為172.25.254.65的使用者訪問
systemctl restart httpd
68主機上測試
208虛擬機器上測試
2、針對使用者的訪問控制
mkdir -p /var/www/virtual/kris.com/music/html/admin
cd /var/www/virtual/kris.com/music/html/admin
vim index.html
#編寫要顯示的內容
cd /etc/httpd/conf.d
vim music.conf
編寫檔案:
cd /etc/httpd/
htpasswd -cm userpass admin
htpasswd -m userpass admin1
建立兩個使用者。並輸入密碼。
cat userpass ##檢視密碼
systemctl restart httpd。
測試:
在網頁上輸入:music.kris.com/html/admin/
admin使用者登陸成功
admin1 使用者被拒絕
七、apache支援的語言
html
PHP
yum install -y
vim /var/www/html/index.php
systemctl restart httpd
#測試:
http://172.25.254.108/index.php
cgi
mkdir /var/www/html/cgi
semanage fcontext -a -t httpd_sys_script_exec_t ‘/var/www/html/cgi(./*)?’
restorecon -RvvF /var/www/html/cgi/
vim /var/www/html/cgi/index.cgi
!/usr/bin/perl
print “Content-type: text/html\n\n”;
print date
;
chmod +x /var/www/html/cgi/index.cgi
cd /etc/httpd/conf.d/
vim adefault.conf
<Directory “/var/www/html/cgi”>
Options +ExecCGI ##該目錄下的cgi檔案可執行
AddHandler cgi-script .cgi ##以cgi-script和.cgi結尾的檔案都要執行
systemctl restart httpd.service
#測試:
http://172.25.254.108/cgi/index.cgi
八、squid
Squid cache:
(簡稱為Squid)是一個流行的自由軟體(GNU通用公共許可證)的代理伺服器和Web快取伺服器。Squid有廣泛的用途,從作為網頁伺服器的前置cache伺服器快取相關請求來提高Web伺服器的速度,到為一組人共享網路資源而快取全球資訊網,域名系統和其他網路搜尋,到通過過濾流量幫助網路安全,到區域網通過代理上網。Squid主要設計用於在Linux一類系統執行。
Squid是一種在Linux系統下使用的優秀的代理伺服器軟體。squid不僅可用在Linux系統上,還可以用在AIX、Digital Unix、FreeBSD、HP-UX、Irix、NetBSD、Nextstep、SCO和Solaris等系統上。Squid與Linux下其它的代理軟體如Apache、Socks、TIS FWTK和delegate相比,下載安裝簡單,配置簡單靈活,支援快取和多種協議。
正向代理
yum install squid
vim /etc/squid/squid.conf
59 http_port 3128
62 cache_dir ufs /var/spool/squid 100 16 256
在squid上面快取250的http資料
#vim /etc/sysconfig/network-scripts/ifcfg-eth0
DNS1=172.25.254.250
在瀏覽器上設定http介面
perforence advanced-network setting-http_Proxy 172.25.254.108 Port 3128 #為squid快取介面
vim /etc/squid/squid.conf
在squid上面快取64的http資料
在squid主機的瀏覽器設定http服務端和埠,通過3128squid埠快取能上網的64真機上的資料
squid反向代理
設定server為squid主機
yum install squid
vim /etc/squid/squid.conf
59 http_port 80 vhost vport
60 cache_peer 172.25.254.108 parent 80#通過80埠向108訪問apache從而快取資料 0 proxy-only
62 cache_dir ufs /var/spool/squid 100 16 256
systemctl restart squid
systemctl stop firewalld
vim /etc/squid/squid.conf
有時候會因為客戶端的網速太慢從而導致訪問終端瀏覽器時的過程太長,不能達到客戶的標準,此時有一個squid瀏覽器能更快地通過apache訪問到資料,於是將其客戶端想要訪問的資料通過squid從終端伺服器上面快取記憶體下來,並且近距離的傳送到客戶主機上面,從而實現了兩次加速,即反向代理。