apache功能详解

1、配置文件
    RerverRoot                    主目录
    Listen                        监听端口
    LoadModule                    动态模块
    <IFModule 模块名>
    </IFModule>                    对模块进行配置
    ServerAdmin                    管理员邮箱
    ServerName                    服务器域名
    <Directory 目录路径>
    
    </Directory>                对目录进行配置
        Options                    目录选项
            Indexes                当没有主页面时,是否列出目录内容
            FollowSymLinks        是否允许首页文件为软连接文件
        allowoverride            是否启用.htaccess权限文件(只对directory声明的目录生效)
            all     启用
            none    不启用
            vim .htaccess        .htaccess权限文件必须放在directory声明的目录下
                authname        提示信息
                authtype        认证类型
                authuserfile    用户名密码文件
                require valid-user    授权
    htpasswd -[c|m] [authuserfile声明的用户名密码文件] [用户名]   创建用户(密文)-c是创建,-m是添加
        require    all granted        允许所有人访问
        require    all denied        拒绝所有人访问
        允许个别,拒绝所有
        <requireall>
            require all granted
            require not ip地址
        </requireall>
        拒绝个别,允许所有
        <requireall>
            require all granted
            require ip ip地址
        </requireall>
    DocumentRoot                指定网站首页文件及应用位置
    DirectoryIndex                默认打开的首页文件
    </Files>                    文件配置区域
    ErrorLog                    错误日志
    LogLevel                    要记录的日志级别
    LogFormat                    日志记录格式
    CustomLog                    访问日志
    ScriptAlias                    别名文件
    TypesConfig                    后缀名解析文件。如果后面跟的文件里没有要解析的后缀名,需要手动添加AddType application/x-[文件类型] [扩展名]
    Include                        额外的配置文件,如果想启用某个配置文件,就去掉注释。
    Include etc/extra/proxy-html.conf     启用代理的模板配置文件
    SSLRandomSeed                加密模块要用到的配置
2、目录别名
    Alisa  "/别名目录"  "/实际目录"
    对实际目录给权限
        <directory "/usr/local/apache2/htdocs/a/b/c">
            options indexes followsymlinks
            allowoverride none
            require all granted
        </directory>
3、虚拟主机
    a、基于IP地址
        <VirtualHost *:80>   将*改成要监听的地址
    b、基于端口
        Listen 声明监听的端口
        <VirtualHost *:80>        将80改成要监听的端口
    c、基于域名
        Include etc//extra/httpd-vhosts.conf   主配置文件打开虚拟主机加载文件选项
        创建首页网站目录及首页文件
        mkdir /var/web/www /var/web/jd
        创建首页文件
        配置虚机主机
        <VirtualHost *:80>                                *表示监听服务器上的所有IP
                DocumentRoot "/var/web/baidu"            网站根目录
                ServerName www.baidu.com                域名
                <directory "/var/web/baidu">            给网站目录赋权限
                        options indexes followsymlinks
                        allowoverride none
                        require all granted
                </directory>
        </VirtualHost>
        <VirtualHost *:80>
                DocumentRoot "/var/web/jd"
                ServerName www.jd.com
                <directory "/var/web/jd">
                        options indexes followsymlinks
                        allowoverride none
                        require all granted
                </directory>
        </VirtualHost>
    注:RPM安装的网站服务器,配置虚拟主机时,必须要开启NameVirtualHost *:80选项

4、个人主页
    Include etc/extra/httpd-userdir.conf        主配置文件启用个人主页配置文件
    编辑个人主页配置文件(默认不用修改,主要是确认主页名)
    UserDir public_html        主页目录名
    <Directory "/home/*/public_html">             权限设置
        AllowOverride FileInfo AuthConfig Limit Indexes
        Options MultiViews Indexes SymLinksIfOwnerMatch IncludesNoExec
        Require method GET POST OPTIONS
    </Directory>
    创建主页存放目录及个人主页
    mkdir /home/zhangsan/public_html  /home/lisi/public_html    需要跟配置文件的主页目录名一致
    chmod o+x /home/zhangsan/  /home/lisi/    对家目录给执行权限,确保daemon用户能进去。
    LoadModule userdir_module modules/mod_userdir.so  主配置文件打开userdir动态模块
    
    动态库:
    --enable-so
    启用DSO(动态共享目标,就是动态模块)支持的核心模块
    apache运行时加载模块扩展功能。
    静态:
        启动时就已经加载,可随时使用<IFmodule>
    动态:
        启动时不加载,而是提供.so文件。使用loadmodule选项加载并配置

5、地址重定向
    www.360buy.com ---> www.jd.com
    a、添加rewrite模块
        LoadModule rewrite_module modules/mod_rewrite.so   主配置文件打开模块
    b、虚拟主机目录选项开启使用权限文件
        allowoverride  all
    c、在主目录增加权限文件
        vim .htaccess    写在需要重定向的网站下。
            rewriteengine on                              开启重定向引擎
            rewritecond %{HTTP_HOST} www.360buy.com        将老域名赋值到变量
            rewriterule .* http://www.jd.com             定义规则将所有定向到新域名
6、HTTPS
  网站服务端:
    安装加密相关的模块
    yum install -y mod_ssl openssl openssl-devel
    重新编译安装apache,加上--enable-ssl选项
         ./configure --prefix=/usr/local/apache2/ --sysconfdir=/usr/local/apache2/etc/ --with-included-apr --enable-so --enable-deflate=shared --enable-expires=shared --enable-rewrite --enable-ssl
    mkdir /usr/local/apache2/ssl  创建一个证书存放目录
    (umask 077;openssl genrsa 1024 > httpd.key)    在目录下生成密钥文件
    openssl req -new -key httpd.key -out httpd.crq 用密钥文件生成证书申请文件
    将证书申请文件交给CA服务器。
         scp httpd.crq 10.244.16.22:/tmp
    收到CA证书之后的配置
    Include etc/extra/httpd-ssl.conf  启用加密配置文件
    编辑扩展文件vim etc/extra/httpd-ssl
    Listen 443      
    <VirtualHost 10.244.16.21:443>
        DocumentRoot "/usr/local/apache2/htdocs"
        ServerName www.jd.com:443
        SSLCertificateFile "/usr/local/apache2/ssl/httpd.crt"
        SSLCertificateKeyFile "/usr/local/apache2/ssl/httpd.key"
        ...
    </VirtualHost>
    主配置文件打开一个加密模块LoadModule socache_shmcb_module modules/mod_socache_shmcb.so
    主配置文件手动写入一个模块 LoadModule ssl_module modules/mod_ssl.so
    /usr/local/apache2/bin/apachectl -t  检查语法错误
  
  CA服务器端:
    cd /etc/pki/CA/      进入CA目录
        (umask 077;openssl genrsa -out private/cakey.pem 2048)
        设置反掩码077;openssl用genrsa算法在private子目录生成一个cakey.pem文件,大小2048
    vim /etc/pki/tls/openssl.cnf     编辑证书模板配置文件
        countryName_default             = CN                    默认国家名称
        stateOrProvinceName_default    = HN                        默认省份名称
        localityName_default    = ZZ                            默认城市名称
        0.organizationName_default      = FZDZ                    默认公司名称
        organizationalUnitName_default = CLOUD                    默认组织名称
    openssl req -new -x509 -key private/cakey.pem -out cacert.pem -days 3655   加密文件写的时相对路径所以需要在CA目录下执行
        -new生成一个新的文件;-x509格式;-key后跟加密文件; -out后跟生成的证书文件名; -days后跟证书有效期
    准备:
    touch index.txt  在CA目录里创建index.txt,用来记录颁发过的证书(默认不存在需要创建)。
    echo "01" >> serial  表示起始从01开始,以后每颁发一个证书,在后面追加一个
    颁发证书:
    openssl ca -in /tmp/httpd.crq -out /tmp/httpd.crt -days 3655
        -in输入证书请求文件;-out输出一个证书文件; -days后跟证书有效期
    将证书交给网站服务器
    scp /tmp/httpd.crt 10.244.16.21:/usr/local/apache2/ssl
注:CA证书的请求文件一定要和CA证书上的填写的一致
        



    

 

posted @ 2019-02-13 14:37  翎戍  阅读(1020)  评论(0编辑  收藏  举报