对我的服务器的访问应限于某些远程主机,我想允许Uptimerobot监视我的服务器。
当前UpTimerobot始终获得403禁止。
我添加了server.xml看起来像这样:
<Server .........>
<Service name="Catalina">
<Engine>
<Value className="org.apache.catalina.valves.RemoteHostValve" allow=".*.uptimerobot.com" />
</Engine>
</Service>
匹配此列表中的所有主机
,但是重新启动服务器后什么都没有改变,仍然403。
我还尝试使用一个没有通配符的域名:
allow="engine19.uptimerobot.com"
allow="engine19.uptimerobot.com"
但仍然403,
我尝试使用添加
启用hostnamelookupsenableLookups="true"
到<Connector
标签,但再次没有效果。
但是,在我的日志中,我看到访问已解决到" Engine19.uptimerobot.com" wich匹配我的远程主机模式。
有什么想法,为什么仍然禁止它?
编辑:
通过
通过IP访问 <Valve className="org.apache.catalina.valves.RemoteAddrValve" allow="63.143.42.244"/>
正在工作。但是我不想在那里添加IP的整个列表。RemoteAddrValve
和RemoteHostValve
是否有可能互相打扰?
我已经尝试过,这对我有用
将USEIPVHOST设置为true在连接器中(Inside server.xml)。
我正在使用HTTP连接器,看起来如下
<Connector port="8080" protocol="HTTP/1.1"
connectionTimeout="20000"
redirectPort="8443"
enableLookups="true"
useIPVHosts="true" />
属性的详细信息可以在此处找到
检查tomcat/logs/local_access_log ...要查看403使用的主机名。
我发现我们的公司DNS在所有大写和所有小写字母中都报告了一些名称。使用(?i)使得不敏感:
allow="(?i)engine19.uptimerobot.com"
如果您同时具有远程Hostvalve和RemoteadDvalve,则必须允许传入的主机。如果两者不允许,则将返回403。