Apache配置与应用

                                                                                 apache优化

1、更改apache的默认用户

通过更改apache的默认用户,可以提升apache的安全性。这样,即使apache服务被攻破,黑客拿到apache普通用户也不会对系统和其他应用造成破坏。这里创建的apache用户,将用于对子进程和线程的控制。

 useradd -M -s /sbin/nologin apache 创建apache用户

编辑apache配置文件,修改默认的用户。

vim /usr/local/apache/conf/httpd.conf

User apache #更改默认的daemon用户为apache用户

Group apache #更改默认的daemon用户为apache用户

2、Apache连接保持(keepalive)

在Apache的httpd.conf中,KeepAlive指的是保持连接活跃,类似于Mysql的永久连接。换一句话说,如果将KeepAlive设置为On,那么来自同一客户端的请求就不需要再一次连接,避免每次请求都要新建一个连接而加重服务器的负担。

 KeepAlive的连接活跃时间当然是受KeepAliveTimeOut限制的。如果第二次请求和第一次请求之间超过KeepAliveTimeOut的时间的话,第一次连接就会中断,再新建第二个连接。  

所以,一般情况下,图片较多的网站应该把KeepAlive设为On。但是KeepAliveTimeOut应该设置为多少秒就是一个值得讨论的问题了。  

如果KeepAliveTimeOut设置的时间过短,例如设置为1秒,那么APACHE就会频繁的建立新连接,当然会耗费不少的资源;反过来,如果KeepAliveTimeOut设置的时间过长,例如设置为300秒,那么APACHE中肯定有很多无用的连接会占用服务器的资源,也不是一件好事。  

所以,到底要把KeepAliveTimeOut设置为多少,要看网站的流量、服务器的配置而定。

如何去设置开启关闭连接保持?操作如下:

vi /usr/local/httpd/conf/extra/httpd-default.conf

KeepAlive On    //打开连接保持功能

MaxKeepAliveRequests 100  //一次连接最多请求100个文件

KeepAliveTimeout 5   //单位是秒

3、配置访问控制

vi /usr/local/httpd/conf/httpd.conf    //对htdocs目录设置控制,直接新增两行。

找到/usr/local/httpd/htdocs

Order deny,allow    //黑名单,先拒绝后允许

Deny from 192.168.80.0/24

拒绝192.168.80.1,允许其它所有

Require  all  granted    允许所有来源访问

Require  all  deny         拒绝所有来源访问

Require   local    仅本机访问

基于IP地址的访问控制

Require ip 10 172.20 192.168.2    

允许特定IP或IP段,多个IP或IP段间使用空格分隔

基于主机名的访问控制

Require host example.org

Require host .net example.edu

4、配置认证访问:

 vi conf.d/vdir.conf

AuthName "kgc.cn"

AuthType Basic

AuthUserFile /usr/local/httpd/user

require valid-user

________________________________________________

注:

 AuthName:定义提示信息,用户访问时提示信息会出现在认证的对话框中

AuthType:定义认证类型,basic 基本认证

AuthUserFile:定义包含用户名和密码的文本文件,每行一对

AuthGroupFile:定义包含用户组和组成员的文本文件。组成员之间用空格分开,如:group1:user1 user2

require命令:定义哪些用户或组才能被授权访问

  require user user1 user2 (只有用户user1和user2可以访问)

  requires groups group1 (只有group1中的成员可以访问)  

    require valid-user (在AuthUserFile指定的文件中的所有用户都可以访问

________________________________________________

apachectl -t

htpasswd -c /usr/local/httpd/user test

//新建数据文件/usr/local/httpd/user,其中包含一个名为test的用户信息

第一次添加用户时member.txt文件不在,需要用-c选项创建文件

htpasswd /usr/local/httpd/.user jack

//向/usr/local/httpd/user数据文件中添加一个新用户jack

cat /usr/local/httpd/.user   //确认用户数据文件

service httpd restart

此时,访问需要用户名和密码了,输入我们设置的用户和密码即可进入

5、配置日志分割

 编辑Apache的主配置文件httpd.conf,更改内容如下:

注释掉如下两行

ErrorLog logs/error_log

CustomLog logs/access_log common

然后添加如下两行

ErrorLog "|/usr/local/apache/bin/rotatelogs  -l /usr/local/apache/logs/errorlog.%Y-%m-%d-%H_%M_%S.log 86400"

CustomLog "|/usr/local/httpd/bin/rotatelogs -l logs/accesslog.%Y-%m-%d-%H_%M_%S.log 86400" common

//通过管道把日志交给rotatelogs工具 -l指使用本地时间 86400表示日志分隔的间隔为1天,单位是秒。

或者:

ErrorLog "|/usr/local/apache/bin/rotatelogs /usr/local/apache/logs/errorlog.%Y-%m-%d-%H_%M_%S 2M +480"

CustomLog "|/usr/local/apache/bin/rotatelogs /usr/local/apache/logs/accesslog.%Y-%m-%d-%H:%M:%S 2M +480" common

保存退出

[root@lamp logs]# apachectl -t

注:

errorlog.%Y-%m-%d-%H_%M_%S为生成日志的格式,类似于这样:errorlog.2018-10-11-17_00_00 ,以年月日时分秒为单位的

 2M 为日志的大小,即为日志达到多大后生成新的日志文件,支持的单位为K,M,G,本处为2M。

+480 为时差,文件的时间为英国时间,中国的时差要比英国多8个小时也就是480分钟,所以要加上480分钟。

rotatelogs语法说明:

rotatelogs   [-l]   日志文件名(绝对路径)     日志偏移量(时间)  或者  大小

-l:使用本地时间代替GMT时间作为时间基准

GMT时间就是格林威治时间(世界时),是指格林尼治所在地的标准时间,英国伦敦

例子:

 每天生成一个错误日志文件

ErrorLog "|bin/rotatelogs -l logs/error-%Y-%m-%d.log 86400"

CustomLog "|bin/rotatelogs /var/logs/logfile 86400" common

此配置会建立文件"/var/logs/logfile.nnnn",其中的nnnn是名义上的日志启动时的系统时间(此时间总是滚动时间的倍数,可以用于cron脚本的同步)。在滚动时间到达时(在此例中是24小时以后),会产生一个新的日志。

CustomLog "|bin/rotatelogs /var/logs/logfile 5M" common

此配置会在日志文件大小增长到5兆字节时滚动该日志。

ErrorLog "|bin/rotatelogs /var/logs/errorlog.%Y-%m-%d-%H_%M_%S 5M"

此配置会在错误日志大小增长到5兆字节时滚动该日志,日志文件名后缀会按照如下格式创建:errorlog.YYYY-mm-dd-HH_MM_SS 。

-----以下使用cronolog进行日志分隔--------

tar xzvf cronolog-1.6.2.tar.gz

cd cronolog-1.6.2

./configure && make && make install

which cronolog

LogFormat "%h %l %u %t \"%r\" %>s %b" common //定义日志的格式

-----------只要把工具的路径替换就行了----------------

ErrorLog "|/usr/local/sbin/cronolog -l logs/www.bc.com-error_%Y%m%d.log 86400"

CustomLog "|/usr/local/sbin/cronolog -l logs/www.bc.com_access_%Y%m%d.log 86400" common

apachectl -t

例子:

按天轮询(生产环境常见用法,推荐使用):

CustomLog "|/usr/local/sbin/cronolog /app/logs/access_www_%Y%m%d.log" combined

按小时轮询(生产环境较常见用法):

CustomLog "|/usr/local/sbin/cronolog /app/logs /access_www_ %Y%m%d%H.log" combined

6、AWstats日志分析系统

 apachectl -D DUMP_MODULES | grep cgi   //确认是否加载了cgi模块

ls /usr/local/httpd/modules/ | grep cgi    ////确认是否编译过cgi模块

vi /usr/local/httpd/conf/httpd.conf

LoadModule cgid_module modules/mod_cgid.so

LoadModule cgi_module modules/mod_cgi.so

 tar xzvf awstats-7.6.tar.gz -C /opt/

mv /opt/awstats-7.6 /usr/local/awstats

-------AWstats可以同时分析多个站点的数据---

vi /etc/hosts

192.168.80.100  www.aa.com

vi /etc/httpd.conf

ServerName www.aa.com    //定义主机名

cd /usr/local/awstats/tools/

./awstats_configure.pl

http://localhost/awstats/awstats.pl?config=www.helo.com

----访问日志的网址-----

http://IP/awstats/awstats.pl?config=www.aa.com //先记录下来,可以通过IP访问

service httpd restart //重启让日志格式生效

vi /etc/awstats/awstats.www.aa.com.conf //修改程序的主配置文件

LogFile="/usr/local/httpd/logs/access_log" //修改日志文件位置,第50行

DirData="/var/lib/awstats" //220行 手动建立每次抓取的数据存放位置

mkdir /var/lib/awstats

----如果之前修改过日志格式需要清空一下------

cd /usr/local/httpd/logs/

rm -f *log

service httpd restart //重新生成日志文件

cd /usr/local/awstats/tools/

chmod +x awstats_updateall.pl

./awstats_updateall.pl  now //手动采集一次数据

crontab -e

*/5 * * * *  /usr/local/awstats/tools/awstats_updateall.pl now

crontab -l

service crond status

systemctl enable crond

systemctl list-unit-files | grep crond

------注意---需要检查以下虚拟目录授权----

vi /etc/httpd.conf

<Directory "/usr/local/awstats/wwwroot">

    Options None

    AllowOverride None

    Order allow,deny

    Allow from all

AuthName "kgc.cn"

AuthType Basic

AuthUserFile /usr/local/httpd/user

require valid-user

#Require all granted

</Directory>

service httpd restart

http://192.168.80.100/awstats/awstats.pl?config=www.aa.com  //访问测试日志系统工作情况

通过配置页面自动跳转优化统计页面访问

 cd /usr/local/httpd/htdocs/

 vi index.html

<html>

<head>

<meta http-equiv=refresh content="0;url=http://192.168.80.130/awstats/awstats.pl?co

nfig=www.lq.com">   //跳转,当访问192.168.80.130时,跳转到分析系统中

</head>

<body></body>

</html>

注意:如果服务器没有做DNS服务的话,需在测试客户端上设置hosts文件才可使用域名访问 vi /etc/hosts文件

猜你喜欢

转载自blog.csdn.net/qq_41085900/article/details/86001090
今日推荐