Linux-搭建http服務器及配置文件詳解,認證用戶

一:編譯安裝http2.4

1.下載httpd,apr,apr-util

wget http://apache.fayea.com//httpd/httpd-2.4.27.tar.gz
wget http://mirror.bit.edu.cn/apache//apr/apr-1.6.2.tar.gz
wget http://mirror.bit.edu.cn/apache//apr/apr-util-1.6.0.tar.gz

2.安裝

a.先安裝apr
    [root@www ]# cd apr-1.6.2
    [root@www apr-1.6.2]# ./configure --prefix=/usr/local/apr
    [root@www apr-1.6.2]# make && make install
b.在安裝apr-util
    [root@www ]# cd apr-util-1.6.0
    [root@www apr-util-1.6.0]#./configure --prefix=/usr/local/apr-util --with-apr=/usr/local/apr
    [root@www apr-util-1.6.0]#make && make install
c.最後安裝htpd2.4   
    [root@www ]# cd httpd-2.4.27
    [root@www httpd-2.4.27]# ./configure --prefix=/usr/local/httpd --sysconfdir=/etc/httpd --enable-so --enable--ssl --enable-cgi --enable-rewrite --with-zlib --with-pcre --with-apr=/usr/local/apr --with-apr-util=/usr/local/apr-util --enable-modeles=most --enable-mpms-shared=all --with-mpm=event
    [root@www httpd-2.4.27]# make && make install

3.額外配置

1 導出頭文件
    [root@www httpd]#ln -sv /usr/local/appache/include /usr/include/httpd
2 導出幫助文件
    修改vim /etc/man.config
3 修改環境變量
    編輯/etc/profile.d/httpd
    export PATH=/usr/local/apache/bin:$PATH
4 編輯/etc/rc.d/init.d.httpd腳本,或者複製。
    apachectl=/usr/local/httpd/bin/apachectl
    httpd=/usr/local/httpd/bin/httpd
    prog=httpd
    pidfile=${PIDFILE-/var/run/httpd24.pid}
    lockfile=${LOCKFILE-/var/lock/subsys/httpd24}

4.測試

這裏寫圖片描述

5.配置文件詳解

    a.監聽套接子
        Listen [IP:]port
    b.配置使用keep alive
        KeepAlive {On|Off}    是否使用持久換保持
        KeepAliveTimeout 2
        MaxKeepAliveRequests 50
    c.MPM配置
        系統默認啓動的模塊可以通過#httpd -l來查看
        系統默認啓動的I/O結構爲prefork結構
        如果想啓動worker:
            (1).使用service httpd.worker start來啓動
            (2).或者配置腳本配置文件/etc/sysconfig/httpd 去掉註釋
        如果向啓動event:方法一樣
        <IfModule prefork.c>         如果mod_userdir.c文件存在,則是用以下的配置文件
            StartServers       默認啓動工作進程數
            MinSpareServers    最小空閒進程數
            MaxSpareServers    最大空閒進程數
            ServerLimit        最大活動狀態進程數
            MaxClients         最大併發連接數
            MaxRequestsPerChild     每個子進程在生命週期內所能服務的最大請求個數
        </IfModule>
        <IfModule worker.c>
            StartServers         
            MaxClients         
            MinSpareThreads         最小空閒線程數
            MaxSpareThreads     
            ThreadsPerChild         每個子進程可以生成的線程數
            MaxRequestsPerChild     每個子進程所響應的最多個數,0表示不做限定
        </IfModule> 
    d.DSO模塊的加載方式
        LoadModule  auth_basic_module  /path
        #httpd -M:列出已經裝載的DSO模塊
        #httpd -l:列出非DSO模塊
    e.配置站點根目錄
        DocumentRoot /path
        <Directory /path>      頁面訪問屬性
            Options:
                Indexs:缺少指定的默認頁面時,將站點的文件目錄展現給用戶。
                FollowSymLinks:允許跟隨符號鏈接所指向的原文件
                None:所有都啓用
                All:所有否不啓用
                ExecCGI:允許使用mod_cgi模塊執行CGI腳本
                Includes:允許使用mod_incliude模塊實現服務器端包含(SSI)
                MiltiViews:允許使用mod_negotiation實現內容協商
                SymLinkIfOwnerMatch:在鏈接文件的屬主組和原始文件相同時,允許跟隨符號鏈接所指向的原文件
                 AllowOverride None
        </Directory>
    f.基於主機的訪問控制
        <Directory />
            Options 
            AllowOverride      表示一下內容是否被禁用,None表示不禁用
            Order  Allow,Deny       表示次序
            Allow   from    ip/all
            Deny
        </Directory>
    g.基於用戶的訪問控制
        虛擬用戶:是在訪問某一文件而存在用戶,不具有系統的任何權限
            認證類型:
                basic:基本認證,帳號密碼進行明文發送
                digest:摘要認證
            配置方式:
                <Directory "/path">
                    Options None
                    AllowOverride AuthConfig
                    AuthType Basic           認證類型,表示使用那一種認證機制
                    AuthName “”           認證機制的名稱
                    AuthUserFile /path      基於用戶認證時需要的文件
                    Require valid—user
                </Directory>
            使用此機制的用戶添加
                #htpasswd  -c -m   文件名   用戶
                -c:創建文件     -m:添加用戶
            基於用戶組的認證
                將原有的配置中的AuthUserFile 替換成AuthGroupFile
                在將原有配置中的Require valid-user 替換成Require group group_name
                也可以將兩個放在一起,進行兩種訪問控制
    h.定義默認頁面
        DirectoryIndex    index.php index.html
    i.用戶目錄
        如果期望讓每個用戶都可以創建個人站點:訪問格式
        userdir disablied:表示禁止
        userdir public_html:表示用戶家目錄名稱,注:用戶的家目錄的賦予運行httpd進程的用戶擁有執行權
    j.配置日誌功能
        定義訪問日誌的功能
        Customlog ‘"/path"  日誌name
        LogFormat "宏定義" 日誌名稱
        宏定義:
            %h:客戶端地址
            %l:遠程登錄名,通常爲-
            %u:認證時的遠程用戶名,沒有認證時通常僞-
            %t:收到請求時的時間
            %r:請求報文的起始行
            %>s:響應狀態碼
            %b:響應報文的長度,以字節僞單位
            %{Header_name}i:記錄指定請求報文首部的內容
        錯誤日誌ErroeLog  "/path"
    k.路徑別名
        Alias  別名 "真路徑"
    l.指定默認字符集
        AddDefaultCharset utf-8
    httpd配置(2)
    m.腳本路徑別名
        URL->>filesystem directory  
        CGI:通用網管接口  
        ScriptAliase  /URL/  "/path/"      path路僅下的文件全部執行完了之後將結果返還給用戶   
        詳細在/var/www/cgi-bin下
    n.虛擬主機 (使用虛擬主機,要關閉主機)   
        一個物理服務器提供多個站點
        基於不同的ip實現不同的虛擬
            變化IP
        基於不同的port實現不同虛擬主機
            變化端口
        基於不同的FQDN實現不同的虛擬主機
            變化ServiceName   其中僞*.80
        <VirtualHost *:80>
            ServerName
            DocumentRoot “”
            <Directory "">
            ServiceAliase
            ServiceAdmin
        </VirtualHost *:80>
    o.頁面壓縮
        在配置文件中使用#mod_deflate configuration模塊
        SetOutputFilter DEFLATE          //啓用DEFLATE
        <IfModule mod_deflate.c>
            AddOutputFilterByType   DEFLATE   文件類型(如text/html)
            BrowserMatch ...           #進行瀏覽器匹配,解決瀏覽器不支持壓縮頁面的解壓 
        </IfModule>

6.基於用戶認證訪問httpd服務器

配置方式:
    <Directory "/var/www/html/base">
        Options None
        AllowOverride AuthConfig
        AuthType Basic           
        AuthName “”           
        AuthUserFile /home/htpasswd    
        Require valid—user
    </Directory>
創建/home/htpasswd文件
    mkdir /home/htpasswd
使用htpasswd命令創建用戶和密碼
    htpasswd -c -m /home/htpasswd user
    New password:
    Re-type new password:
測試結果:
![這裏寫圖片描述](https://img-blog.csdn.net/20170714182519280?watermark/2/text/aHR0cDovL2Jsb2cuY3Nkbi5uZXQva2FpcnVpMTIz/font/5a6L5L2T/fontsize/400/fill/I0JBQkFCMA==/dissolve/70/gravity/SouthEast)
發佈了45 篇原創文章 · 獲贊 4 · 訪問量 1萬+
發表評論
所有評論
還沒有人評論,想成為第一個評論的人麼? 請在上方評論欄輸入並且點擊發布.
相關文章