1. 程式人生 > >linux學習 lesson22 http服務

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從終端伺服器上面快取記憶體下來,並且近距離的傳送到客戶主機上面,從而實現了兩次加速,即反向代理。