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\n\n";
print "This is a CGI test!\n";

增加可执行权限
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配置详解(下)

posted @ 2014-04-05 20:39  李庆喜  阅读(352)  评论(0编辑  收藏  举报