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万+
發表評論
所有評論
還沒有人評論,想成為第一個評論的人麼? 請在上方評論欄輸入並且點擊發布.
相關文章