使用 Require IP 命令进行访问控制时无法启动 HTTPD 2.4

使用 Require IP 命令进行访问控制时无法启动 HTTPD 2.4

这本来是针对类似问题的评论,但是由于 Stack 对评论的限制非常严格,因此我按照他们的要求重新发布了它:

:这是文档:http://httpd.apache.org/docs/2.4/en/mod/mod_authz_core.html#require

这是配置文件: Options Indexes FollowSymLinks AllowOverride None Require ip $CIDR ~

错误仍然是:5月24日20:54:54 ip-172-16-5-34.us-west-1.compute.internal httpd [23044]:AH00526:/etc/httpd/conf.d/httpd.conf第3行语法错误:5月24日20:54:54 ip-172-16-5-34.us-west-1.compute.internal httpd [23044]:无效命令“Require”,可能是拼写错误或由服务器配置中未包含的模块定义

我错过了什么?

看起来 RequireAny 或 RequireAll 命令可能会有帮助,但事实并非如此。

供您参考,此处提供的信息不够: 我如何需要一个 IP 范围而不是 1 个 IP?

答案1

Require ip $CIDR ~不合适Options指示。文档非常清楚地说明了Options指令中可能包含的内容。

Require是其自身的指令,它可以在容器中,但肯定不能在Options指令内。

当你解决了这个问题后,你的下一个问题可能是Require ip $CIDR ~。你从哪里得到这个$CIDR ~位?你需要遵循正确的规范主机访问控制和规范Require ip指令

如果事实上,您实际上有Require ip $CIDR ~自己的配置行,而不是您在问题中输入的内容,那么请参考此答案的最后一部分(即使用正确的主机/ip 规范Require ip)并参阅以下注释。

注意:您必须已mod_authz_core加载才能使用Require(和相关)指令。

还要注意:您应该apachectl -t在尝试重新启动 Apache 之前运行检查配置更改,而不是通过使 Apache 崩溃来发现这些问题。

相关内容