linux初學者-Apache篇

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

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

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

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

        在文件"/etc/httpd/conf/httpd.conf"中的第164行,能夠更改默認發佈頁,以下圖所示,將默認發佈頁改成"we.html",下圖中表示若是"we.html"不存在,就訪問"index.html"。完成後重啓服務。vim

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

        三、默認發佈目錄
        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"刷新。post

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

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

        四、經過密碼訪問
        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 用戶"。來使得只有指定的這個用戶才能夠登錄成功。
       五、訪問管理

        經過編輯配置文件"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"的用戶不能夠訪問。

        六、虛擬發佈目錄
         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"能夠看到不一樣的頁面。

          七、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",獲取認證證書後便可看到頁面內容。

相關文章
相關標籤/搜索