zoukankan      html  css  js  c++  java
  • CentOS6 Apache配置详解(下)

    CentOS6 Apache配置详解(下)



    #################################################################
    建立ssl(https)网站
    #################################################################

    相关的目录及配置:
    /etc/httpd/conf.d/ssl.conf    apache读取的配置文件

    /etc/pki/tls/certs/localhost.crt    SSLCertificateFile     凭证文件
    /etc/pki/tls/private/localhost.key    SSLCertificateKeyFile     Private Key

    /etc/pki/tls/certs/server-chain.crt    SSLCertificateChainFile Server Certificate Chain:
    /etc/pki/tls/certs/ca-bundle.crt    SSLCACertificateFile     Certificate Authority (CA):
    ################################################################
    默认系统已经生成了Private Key和凭证文件 如果用源码安装,可能就需要手动生成

    1.建立private key
    cd /etc/pki/tls/private/
    openssl [操作] -out filename [bits]
    操作:
        genrsa    建立rsa加密的公钥,private key
        req    建立凭证文件
    #详细用法请man openssl

    openssl genrsa -out server.key 1024

    2.建立凭证文件
    cd /etc/pki/tls/certs
    openssl req -new -x509 -key ../private/server.key -out server.crt

    3.修改apache的额外配置文件ssl.conf
    vi /etc/httpd/conf.d/ssl.conf

    /etc/pki/tls/certs/server.crt   
    /etc/pki/tls/private/server.key

    如果想将http与https的网页分开,可以
    默认是所有监听的网页两种协议都可,

    vi /etc/httpd/conf.d/ssl.conf

    DocumentRoot "/var/www/test1"
    ServerName    *.443



    ################################################################
    测试php网业
    ################################################################

    vi /etc/httpd/conf.d/php.conf

    AddType application/x-httpd-php .php .php3

    vi /var/www/html/index.php
    < ?php
    phpinfo();
    ?>



    ################################################################
    配置CGI
    ################################################################

    1.定义别名,并设置权限
    ScriptAlias /cgi-bin/ "/var/www/cgi-bin/"
    < Directory "/var/www/cgi-bin">
        AllowOverride None
        Options Indexes FollowSymLinks ExecCGI
        Order allow,deny
        Allow from all
    < /Directory>

    2.指定CGI程序的文件类型
    AddHandler cgi-script .cgi .pl

    3.编写测试cgi文件
    vi /var/www/cgi-bin/test.cgi

    #!/usr/bin/perl
    print "content-type: text/html ";
    print "This is a CGI test! ";

    增加可执行权限
    chmod a+x /var/www/cgi-bin/test.cgi

    4.开始测试(依照自己的主机而定)
    lynx
    www.jlive.com/cgi-bin/test.cgi




    #################################################################
    日志管理
    #################################################################

    rsyslog与logrotate{:soso_e178:}

    CustomLog   /var/log/httpd/test2.jlive.com_log  combined
    combined    指日志文件的格式,常用的还有common

    LogFormat "%h %l %u %t "%r" %>s %b "%{Referer}i" "%{User-Agent}i"" combined
    LogFormat "%h %l %u %t "%r" %>s %b" common

    %a    远程ip
    %A    本地ip
    %b    所发送的字节数    byte
    %f    文件名         file
    %h    远程主机     host
    %l    远程登陆名    login   
    %m    请求方法    method
    %r    请求的第一行    row
    %s    状态        status
    %t    时间        time
    %u    远程用户    user
    %U    请求的URL
    %{variable}    环境变量

    rotatelogs是apache提供的日志轮换的实用工具
    vi /etc/httpd/conf/httpd.conf

    CustomLog    logs/access_log    combined  修改为
    CustomLog    "|/usr/sbin/rotatelogs logs/access_log 172800"    combined
    172800表示单位秒,即两天
    #################################################################
    系统自带
    vi /etc/logrotate.d/httpd

    /var/log/httpd/*log {
        missingok
        notifempty
        sharedscripts
        delaycompress
        postrotate
            /sbin/service httpd reload > /dev/null 2>/dev/null || true
        endscript
        compress    启用压缩
    }



    #################################################################
    php强化模块 eaccelerator
    #################################################################

    官方网站:
    http://eaccelerator.net

    eAccelerator是一个自由开放源码php加速器,优化和动态内容缓存,提高了php脚本的缓存性能,使得PHP脚本在编译的状态下,对服务器的开销几乎完全消除。它还有对脚本起优化作用,以加快其执行效率。使您的PHP程序代码执效率能提高1-10倍。
    安装前请先安装php-devel包
    解压到某个目录,一般选/usr/local/src,运行以下脚本即可完成安装,当然也可以阅读里面的README,如:配置时可以直接复制eaccelerator.ini到/etc/php.d/

    ###############################################
    #!/bin/bash
    ###############################################
    export PHP_PREFIX="/usr"

    $PHP_PREFIX/bin/phpize

    ./configure
    --enable-eaccelerator=shared
    --with-php-config=$PHP_PREFIX/bin/php-config

    make

    make install
    ###############################################
    #加载php这个模块
    echo /usr/lib64/php/modules >>/etc/ld.so.conf
    ldconfig

    #修改php.ini
    echo "extension="eaccelerator.so"">>/etc/php.ini
    echo "eaccelerator.shm_size="16"">>/etc/php.ini
    echo "eaccelerator.cache_dir="/tmp/eaccelerator"">>/etc/php.ini
    echo "eaccelerator.enable="1"">>/etc/php.ini
    echo "eaccelerator.optimizer="1"">>/etc/php.ini
    echo "eaccelerator.check_mtime="1"">>/etc/php.ini
    echo "eaccelerator.debug="0"">>/etc/php.ini
    echo "eaccelerator.filter=""">>/etc/php.ini
    echo "eaccelerator.shm_max="0"">>/etc/php.ini
    echo "eaccelerator.shm_ttl="0"">>/etc/php.ini
    echo "eaccelerator.shm_prune_period="0"">>/etc/php.ini
    echo "eaccelerator.shm_only="0"">>/etc/php.ini
    echo "eaccelerator.compress="1"">>/etc/php.ini
    echo "eaccelerator.compress_level="9"">>/etc/php.ini

    #建立eaccelerator的暂存数据
    if [ ! -e /tmp/eaccelerator ];then
    mkdir -m 0777 /tmp/eaccelerator
    fi

    安装完成重启httpd服务即可,测试时仍可用phpinfo()函数




    ################################################################
    分析软件webalizer,设置简单适合新手,centos的dvd镜像中有该软件
    ################################################################

    apache为我们提供了一个小程序,用来测试网站的效率ab,可以运行以下命令
    ab -dkS -c100 -n100 http:///[index.php]    主机名和网页名依实际情况而定
    当然,更为简单的测试可以这样,ab http:///[index.php]
    更具体的用法请自行man ab
    ###############
    webalizer
    ###############
    可以将usage目录转换到一个受保护的目录,前提是受保护目录的.htaccess己配置完成
    vi /etc/webalizer.conf

    OutputDir    /var/www/protect/webalizer

    cp -a /var/www/usage/* /var/www/protect/webalizer

    修改额外配置/etc/httpd/conf.d/webalizer.conf,或者可以直接删除
    vi /etc/httpd/conf.d/webalizer.conf

    Alias /webalizer /var/www/protect/webalizer

    < Location /webalizer>
        Order deny,allow
        Deny from all
        Allow from 127.0.0.1
        Allow from ::1
        # Allow from .example.com
    < /Location>

    开始分析
    webalizer
    lynx
    www.jlive.com/webalizer/

    CentOS6 <wbr>Apache配置详解(下)


    ################################################################
    更为强大的分析软件awstats
    官方网站:
    http://awstats.sourceforge.net,官网提供rpm包和源码包
    ################################################################

    这里我选用源码包

    1.下载

    wget  http://jaist.dl.sourceforge.net/project/awstats/AWStats/7.4/awstats-7.4.tar.gz

    2.解压

    tar -zxvf awstats-7.4.tar.gz -C /usr/local/src

    3.配置

    通过/usr/local/awstats/tools/awstats_configure.pl这个perl脚本来自动帮我们配置

    a.重命名

    首先我们把目录重命名一下,因为后续的配置会用得到并给予可执行权限

    CentOS6 <wbr>Apache配置详解(下)


    b.运行perl脚本

    注意:一定要用相对路径

    CentOS6 <wbr>Apache配置详解(下)
    指定apache的全局配置文件

    CentOS6 <wbr>Apache配置详解(下)
    创建新配置请按"y",并定义一个web虚拟主机配置文件名(域名或域名的一部分)及awstats自身配置文件(默认)
    配置文件生成后会自动重启标准的apache(CentOS)

    CentOS6 <wbr>Apache配置详解(下)
    最后几个回车就配置完成
    后期更新可以用以上标红的命令



    CentOS6 <wbr>Apache配置详解(下)

    配完后我们发现,web服务器的默认配置文件/etc/httpd/conf/httpd.conf末尾增加了上面一段

    apache-2.2的配置文件本来就十分的冗长,个人喜欢将一些增强功能或插件单独分开放在/etc/httpd/conf.d下面,我直接将这一段另存到/etc/httpd/conf.d/awstats.conf中,再把这几行删掉



    c.修改awstats的配置文件(/etc/awstats/awstats.livecloud.pub.conf)以适配网站

    注意:日志文件一定要指正确

    CentOS6 <wbr>Apache配置详解(下)

    CentOS6 <wbr>Apache配置详解(下)

    CentOS6 <wbr>Apache配置详解(下)

    d.修改apache子配置文件/etc/httpd/conf.d/awstats.conf

    CentOS6 <wbr>Apache配置详解(下)

    最后重启Web服务并通过crontab自动更新网站的访问统计数据。

    说明:为了安全起见,可以简单的对统计报表设立一个访问权限,如:
    #
    # Directives to allow use of AWStats as a CGI
    #
    Alias /awstatsclasses "/usr/local/awstats/wwwroot/classes/"
    Alias /awstatscss "/usr/local/awstats/wwwroot/css/"
    Alias /awstatsicons "/usr/local/awstats/wwwroot/icon/"
    ScriptAlias /awstats "/usr/local/awstats/wwwroot/cgi-bin/"

    Alias /status    "/var/www/awstats/"
    #
    # This is to permit URL access to scripts/files in AWStats directory.
    #
    < Directory "/usr/local/awstats/wwwroot">
        Options +ExecCGI
        AllowOverride AuthConfig
        Order allow,deny
        Allow from all
    < /Directory>

    < Directory "/var/www/awstats/">
        Options  None
        AllowOverride AuthConfig
        Order allow,deny
        Allow from all
    < /Directory>

    在要保护的目录创建.htaccess文件

    mkdir -p /var/www/awstats

    cat >/var/www/awstats/.htaccess <<HERE

    AuthName "Protect awstats data"
    Authtype Basic
    AuthUserFile /var/www/awstats/.htpasswd
    require valid-user
    HERE

    创建认证用户

    CentOS6 <wbr>Apache配置详解(下)



    开始测试
    perl /usr/local/awstats/wwwroot/cgi-bin/awstats.pl -config=livecloud.pub -update -output >/var/www/awstats/index.html
    #config后面接的是awstats.livecloud.pub.conf的意思,运行后可生成index.html文件

    编写一个简单的脚本来实时更新所生成的index.html文件,来更好地监控自己的网站
    vim /root/awstats.sh

    #########################################################

    #!/bin/bash
    #########################################################

    perl /usr/local/awstats/wwwroot/cgi-bin/awstats.pl -config=livecloud.pub -update -output >/var/www/awstats/index.html

    结合上面的status目录,通过浏览器http://localhost/status 输入认证用户和密码即可查看网站运行的详细情况,默认只允许通过本地回还访问

    若想定时更新可以制定cron计划,比如
    chmod a+x /root/awstats.sh
    crontab -e
    0 3 * * * /root/awstats.sh     #每天凌晨3:00开始更新


    CentOS6 <wbr>Apache配置详解(下)

  • 相关阅读:
    关于ActionScript中那些你不知道的事情
    Flash Player 11 Stage3D学习大杂烩
    Qt 控制台输入输出(支持中文)
    Redis消息发布订阅的稳定性验证结论
    C++11 Lambda表达式(匿名函数)用法详解
    vue中“:”、“.”、“@”意义
    QT中printf输出不同步的解决办法
    QT5中使用SQLite
    QT 调用user32.dll移动鼠标
    10分钟学会Visual Studio将自己创建的类库打包到NuGet进行引用(net,net core,C#)
  • 原文地址:https://www.cnblogs.com/lixuebin/p/10814551.html
Copyright © 2011-2022 走看看