zoukankan      html  css  js  c++  java
  • 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证书上的填写的一致
            



        

     

  • 相关阅读:
    详解log4j2(下)
    linux编译相关知识
    vi/vim正则表达式
    红黑树学习
    转行做程序员之前必须考虑的三件事
    工作十年,你为什么依然没有成为专家
    __sync_fetch_and_add
    STL容器的本质
    学习hash_map从而了解如何写stl里面的hash函数和equal或者compare函数
    c++ union学习
  • 原文地址:https://www.cnblogs.com/lingshu/p/10369723.html
Copyright © 2011-2022 走看看