欢迎您访问程序员文章站本站旨在为大家提供分享程序员计算机编程知识!
您现在的位置是: 首页

Linux-搭建http服务器及配置文件详解,认证用户

程序员文章站 2024-03-20 16:26:40
...

一:编译安装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 导出头文件
    [[email protected] 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.测试

Linux-搭建http服务器及配置文件详解,认证用户

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)
相关标签: http服务器