Apache优化
部署实验
安装httpd和插件
yum install -y httpd
yum install -y curl
systemctl start httpd ##重启
查看Apache版本信息
curl -I 192.168.100.10
把虚拟机添加一块网卡设置桥接模式,连上网可以查到淘宝等之类的版本信息
修改自己的版本信息
tar -zxvf httpd-2.4.38.tar.gz -C /usr/local/src/
cd /usr/local/src/httpd-2.4.38/
vim include/ap_release.h
安装依赖环境
yum -y install gcc gcc-c++ apr apr-devel cyrus-sasl-devel expat-devel libdb-devel openldap-devel apr-util-devel apr-util pcre-devel pcre openssl*
删除之前安装的httpd
yum -y remove httpd
cd /usr/local/src/httpd-2.4.38/
./configure --prefix=/usr/local/httpd --enable-so --enable-rewrite --enable-charset-lite --enable-cgi --enable-ssl --enable-mpms-shared=all
Make && make install ##编译安装
主配置文件
vim /usr/local/httpd/conf/httpd.conf
ServerName localhost:80 #修改这一行,加快重启
修改默认首页的内容
echo “xiaolaji” >> /usr/local/httpd/htdocs/index.html
设置Apache启动脚本
cp /usr/local/httpd/bin/apachectl /etc/init.d/httpd
vim /etc/init.d/httpd #在第一行添加两行
#chkconfig: 2345 11 88
#despriction: Web S
ll !$ 查看脚本权限
设置开机自启
chkconfig --add httpd
systemctl start httpd ##启动服务
ln -s /usr/local/httpd/bin/* /usr/local/bin/ ##添加path环境变量
测试访问网页
测试
curl -I 192.168.100.10 ##现在看不到Apache的版本内容了
隐藏版本号
修改配置文件
vim /usr/local/httpd/conf/httpd.conf
495 Include conf/extra/httpd-default.conf #495行去掉注释
vim /usr/local/httpd/conf/extra/httpd-default.conf
[root@cong11 ~]# vim /usr/local/httpd/conf/extra/httpd-default.conf
改:
55 ServerTokens Full
65 ServerSignature Off
为:
55 ServerTokens Prod
65 ServerSignature On
重启服务 systemctl restart httpd
测试
curl -I 192.168.100.10
发现版本号没有了
查看运行Apache的默认用户
查看运行账号
ps -axu | grep httpd
创建Apache用户
useradd -M -s /sbin/nologin apache
vim /usr/local/httpd/conf/httpd.conf
设置整个httpd目录权限为Apache
chown -R apache:apache /usr/local/httpd
设置apache的网站目录属主和属组为daemon
chown -R daemon:daemon /usr/local/httpd/htdocs/
网页目录文件权限快速恢复
find /usr/local/httpd/htdocs -type f -exec chmod 644 {} ;
find /usr/local/httpd/htdocs -type d -exec chmod 755 {} ;
保护Apache日志 设置好apache日志文件权限
chown -R root:root /usr/local/httpd/logs/
systemctl restart httpd ##重启服务
Apache禁止目录遍历
(如果用户访问的时候要下载或上传的情况下,最好不要禁止)
在网站目录下创建目录
mkdir /usr/local/httpd/htdocs/{shadiao,asd,cxkdalanqiu.html}
移动index.html到opt下
mv /usr/local/httpd/htdocs/index.html /opt/
测试访问网页
发现自己的目录暴露在网页里
禁止目录遍历
修改httpd.conf配置文件
vim /usr/local/httpd/conf/httpd.conf
242 Options Indexes FollowSymLinks #去掉Indexes
242 Options FollowSymLinks
systemctl restart httpd ##重启服务
测试访问网页
这样自己的隐私不会暴露
在吧index.html移动回去
mv /opt/index.html /usr/local/httpd/htdocs/
测试
Apache日志分割
修改httpd.conf配置文件
vim /usr/local/httpd/conf/httpd.conf
修改
ErrorLog “logs/error_log”
为:
ErrorLog “|/usr/local/httpd/bin/rotatelogs -l logs/error_%Y%m%d.log 86400”
修改:
CustomLog logs/access_log common
为:
CustomLog “|/usr/local/httpd/bin/rotatelogs -l logs/access_%Y%m%d.log 86400” combined
Systemctl restart httpd ## 重启
测试
ls /usr/local/httpd/logs/
使用cronolog进行日志切换
tar zxf cronolog-1.6.2.tar.gz -C /usr/local/src/
cd /usr/local/src/cronolog-1.6.2/
./configure && make && make install ##预编译 编译安装
生成命令位置
find / -name cronolog
开启虚拟主机
vim /usr/local/httpd/conf/httpd.conf
Include conf/extra/httpd-vhosts.conf ##开启这一行
配置虚拟主机文件
vim /usr/local/httpd/conf/extra/httpd-vhosts.conf ##粘贴修改红色部分
配置hosts
Vim /etc/hosts
修改Windows主机hosts解析
修改C:\Windows\System32\drivers\etc下hosts在最后添加一行
192.168.100.10 www.mingliang.com
创建目录和文件
mkdir -p /www/{html,logs}
echo “xiaolaji zhencai” >> /www/html/index.html
systemctl restart httpd ##重启
访问虚拟主机
设置错误页面-开启压缩缓存功能
方法1
关闭虚拟主机
vim /usr/local/httpd/conf/httpd.conf
#Include conf/extra/httpd-vhosts.conf ##这行加上注释
修改主配置文件
vim /usr/local/httpd/conf/httpd.conf ##添加254行这部分
228 <Directory “/usr/local/httpd/htdocs”>
…………
254 ErrorDocument 404 /404.html
#将404错误跳转到/usr/local/httpd/htdocs下的404.html页面上
255
创建404页面
echo “404 qwer bangbang” > /usr/local/httpd/htdocs/404.html
重启服务
systemctl restart httpd
测试,打开错误页面
方法2
开启虚拟主机
vim /usr/local/httpd/conf/httpd.conf
Include conf/extra/httpd-vhosts.conf ##去掉注释
vim /usr/local/httpd/conf/extra/httpd-vhosts.conf ##添加ErrorDocument 404 http://www.mingliang.com
创建虚拟主机页面
mkdir -p /www/html
echo "cxk chang tiao rap lanqiu " >> /www/html/index.html
chown -R apache:apache /www/html/
修改hosts解析
修改Windows主机解析
我上面做了,这就不弄了
systemctl restart httpd ##重启
测试 访问错的网页
因为我是在一方案基础上做的,所以1上的也在,单做就没事了
启用压缩模块mod_deflate
模块检查
#apachectl -M | grep mod_deflate
deflate_module (static) #弹出此种结果,则为编译安装时装的
deflate_module (shared) #弹出此种结果,则为DSO方式安装的,没有弹出就没有安装
安装mod_deflate 模块
apxs -c -i -a /usr/local/src/httpd-2.4.38/modules/filters/mod_deflate.c
-c 此选项表明需要执行编译操作。
-i 此选项表示需要执行安装操作,以安装一个或多个动态共享对象到服务器的modules目录。
-a 此选项自动增加一个LoadModule行到httpd.conf文件中,以激活此模块,或者,如果此行已经存在,则启用之。
配置压缩模块
vim /usr/local/httpd/conf/httpd.conf #添加红色部分
106 LoadFile /usr/lib64/libz.so #添加这一行
107 LoadModule deflate_module modules/mod_deflate.so #打开这一行
151
152 #LoadModule cgi_module modules/mod_cgi.so
153 #在这3行后面添加以下内容
154
重启服务
systemctl restart httpd
创建测试文件
cp /etc/passwd /www/html/passwd.html
在360急速浏览器网页上安装yslow插件
打开passwd.html
打开插件
这个插件可能有点问题,我这个看不了
大概是下面图片那样
做的这里就结束了,这是一小部分的Apache优化,做的不好请见谅,如果有什么问题请小伙伴们留言,感谢!!