1. 程式人生 > >第十二節課:第10章,Apache網站服務

第十二節課:第10章,Apache網站服務

第十章

10.1、網站服務程式

        (讓使用者能夠通過網站訪問伺服器上的資源)

        目前提供的網站服務有IIS,Nginx,Apache等,IIS是windows中預設的web服務程式。

        Nginx是後起之秀,有多種優勢,但RHEL7中預設的是Apache,市場大部門還是Apache,所以我們學習Apache。

        Apache是老牌服務,具有龐大的市場,Nginx則是新興的服務

                

        1、掛載系統映象    

        mount  /dev/cdrom    /media/cdrom

        2、配置yum倉庫

        [rhel]                            //識別碼   

        name=rhel                  //名字

        baseurl=file:///media/cdrom        //路徑

        enabled=1                                  //開啟

        gpgcheck=0                               //不校驗

        3、安裝Apache,yum  install  httpd

        //Apache的軟體包名稱為httpd

        4、啟用httpd服務,並加入到開機啟動項中

        systemctl  restart httpd

        systemctl enable  httpd

        然後我們開啟瀏覽器輸入本機的地址,會顯示下面介面,證明網站服務成功執行:

            

        當看到上述頁面後,有兩個原因:

        1、網站內沒有目錄

        2、許可權不足

10.2、配置服務檔案引數

        httpd的服務檔案的位置:

        服務目錄:                  /etc/httpd

        主配置檔案:              /etc/httpd/conf/httpd.conf       //最重要的配置引數

        網站資料目錄:          /var/www/html

        訪問日誌:                 /var/log/httpd/access_log

        錯誤日誌:                /var/log/httpd/error_log

            

        以下是配置檔案中各欄位的解釋:    

        ServerRoot                          //服務目錄

        ServerAdmin                       //管理員郵箱

        User                                    //執行服務的使用者

        Group                                 //執行服務的使用者組

        ServerName                       //網站伺服器的域名

        DocumentRoot                   // 網站資料目錄

        Listen                                 //監聽的IP地址與埠號

        DirectoryIndex                    //預設的索引頁頁面

        ErrorLog                            //錯誤日誌檔案

        CustomLog                        //訪問日誌檔案

        Timeout                             //網頁超時時間,預設為300秒

        當上述欄位更改時,我們可能會觸及到安全的限制,就是selinux

10.3、SElinux安全子系統

        selinux安全子系統,是保障服務都只進行自己的本質工作,而杜絕做其他的不屬於自己的工作。

        selinux:對服務程式的功能進行限制(域限制),對檔案資源的訪問限制(安全上下文)

        域:管理服務的功能

        安全上下文:讓服務只能訪問該訪問的檔案

        selinux有三種配置模式:

        enforcing:強制啟用安全策略模式,攔截服務不合法請求。

        permissive:遇到服務越權訪問時,只發警告不攔截。

        disabled:對越權行為不警告不攔截。

        以下是selinux相關的命令:

        getenforce和setenforce相當於selinux的總開關,0為關,1為開

        getenfoece       //查詢selinux的狀態

        setenforce       //修改selinux的狀態,例如:setenforce  0

            

        針對selinux的安全上下文:

        可使用  ls  -Z  來查詢檔案的安全上下文

        semanage    修改和查詢selinux的安全上下文。semanage  【選項】【檔案】

        -l    //引數用於查詢                                        -a   //用於新增

        -m   //用於修改                                              -d   //用於刪除

        -t   //型別                                                       fcontext    表示修改安全上下文

        例:  semanage  -a  -t  httpd_sys_content_t    /home/wwwroot

            

        restorecon    用於修改的上下文立即生效

        -R   //遞迴操作,針對目錄                            -i   //忽略不存在的目錄

        -e   //排除目錄                                              -v  //顯示詳細過程

        -F  //強制恢復

        針對selinux的域:

        getsebool   查詢selinux的布林值

        -a    //所有的服務

        setsebool   修改布林值

        -P   引數用於永久且立即生效

            

10.4、個人主頁功能

        需要在配置檔案中啟用功能:vim  /etc/httpd/conf.d/userdir.conf

        1、把userdir  disable  和  userdir   public_html  給註釋起來(前面加#號)

        2、把網站的目錄設定為755許可權

        3、修改selinux的域:setsebool  -P httpd_enable_homedirs=on

        4、重啟服務

        個人主頁的密碼功能:

        1、生成密碼資料庫:htpasswd -c /etc/httpd/passwd linuxprobe    //-c代表第一次生成

        2、編輯配置檔案:vim /etc/httpd/conf.d/userdir.conf

            <Directory "/home/*/public_html">

            AllowOverride all

            authuserfile "/etc/httpd/passwd"          //密碼檔案的儲存路徑

            authname "My privately website"        //網站的提示資訊

            authtype basic

            require user linuxprobe                      //密碼登入時需要驗證的賬戶名稱

            </Directory>

        3、重啟服務

10.5、虛擬主機功能

        基於ip地址

        1、分別配置三個IP地址

            

        2、在配置檔案中寫入:vim /etc/httpd/conf/httpd.conf       

            <VirtualHost 192.168.10.10>                 //地址變化,其他相同的配置,再寫入其他地址配置資訊,這裡就寫入一個

            DocumentRoot /home/wwwroot/10

            ServerName www.linuxprobe.com

            <Directory /home/wwwroot/10 >

            AllowOverride None

            Require all granted

            </Directory>

            </VirtualHost>

        3、設定安全上下文:例:semanage fcontext -a -t httpd_sys_content_t /home/wwwroot

        4、重啟服務並開啟瀏覽器輸入不同的ip地址觀察

        基於主機名

        1、在vim  /etc/hosts  中定義域名解析:192.168.10.10 www.linuxprobe.com bbs.linuxprobe.com tech.linuxprobe.com

        2、設定網站首頁檔案

        例:echo "hahaha" > /home/wwwroot/www

        3、寫入配置檔案  vim /etc/httpd/conf/httpd.conf

            <VirtualHost 192.168.10.10>

            DocumentRoot "/home/wwwroot/www"

            ServerName "www.linuxprobe.com"            //就域名改變,其他的資訊不變,再寫入另外兩個域名的資訊,這裡之寫入了一個

            <Directory "/home/wwwroot/www">

            AllowOverride None

            Require all granted

            </directory>

            </VirtualHost>

        4、設定安全上下文

        5、重啟服務並開啟瀏覽器,輸入不同的域名測試

        基本埠號

        1、寫入網站的首頁目錄:echo "port:6111" > /home/wwwroot/6111/index.html

        2、在  vim /etc/httpd/conf/httpd.conf 中寫入  監聽的埠號: 

            listen  6111

            listen  6222

        3、寫入配置檔案:vim /etc/httpd/conf/httpd.conf

            <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>

        4、設定安全上下文

        5、設定selinux,使其允許埠號:semanage port -a -t http_port_t -p tcp 6111

        6、重啟服務並瀏覽器訪問實驗

10.6、Apache的訪問控制

        Apache通過指令Allow  允許某主機訪問伺服器上的網站資源

                    通過指令 deny 禁止某主機訪問伺服器上的網站資源

         order指令用於定義allow和deny指令起作用的順序,例如:order  allow  deny     :先匹配允許,若允許則成功訪問,反之則拒絕。

 

 

複習:基於埠號虛擬機器

12.7:第十一章,第十二章

12.8:第十三章

12.9:第十四章,第十五章