linux安装好httpd后,测试总是访问到系统默认页面的问题及解决
作者:L_学无止境
linux安装好httpd后,测试总是访问到系统默认页面问题
测试lvs的相关模式的时候,安装好httpd并启动后,用curl访问后端测试页面却总是会访问到Apache的欢迎页面。
查找了半天也没看出配置有什么问题。包括查看配置文件中默认的欢迎页面配置,并修改欢迎页面的配置(/etc/httpd/conf.d/welcome.conf);重启httpd服务等都无法解决问题。
最后查看了httpd的日志才找出问题原因。
日志路径为
/var/log/httpd
其中有两个日志,一个错误日志,一个服务执行的日志。
错误日志显示:请求被拒绝了。
[Tue Aug 24 10:02:02.348678 2021] [core:error] [pid 2025] (13)Permission denied: [client 192.168.42.42:52332] AH00035: access to /index.html denied (filesystem path '/var/www/html/index.html') because search permissions are missing on a component of the path
执行日志里返回码为403,也就是被服务器拒绝了。
查看了相关目录都是有可执行权限的,权限这块是没问题的。
防火墙目前也是关闭的。
firewall-cmd --state
注意
如果防火墙未关闭,
会报另一个错误:
最后发现是被SELinux安全模块限制了,查看SELinux配置可以看到安全策略为强制模式。
先将安全策略临时改为permissive(宽容模式)
这个模式会将违反策略的行为记录到日志中,而不是直接阻止该行为。
setenforce 0
改完后进行测试,发现已经可以访问自己的测试页面了。
在 /var/log/audit/audit.log 中可以看到违反策略的相关记录,可以进行分析,这里只为解决问题,就先不分析了。
可以修改配置文件/etc/selinux/config中SELINUX=permissive使其长期生效。
总结
以上为个人经验,希望能给大家一个参考,也希望大家多多支持脚本之家。