tomcat 在Elastic Beanstalk中设置networkaddress.cache.ttl的推荐方法是什么?

xfyts7mz  于 2022-11-13  发布在  其他
关注(0)|答案(3)|浏览(176)

我需要为在Tomcat 8中运行的Amazon Elastic Beanstalk应用程序设置Java的DNS缓存TTL(networkaddress.cache.ttl)。因为EB可以随时启动和停止服务器示例,所以我不能简单地编辑Tomcat配置文件和服务器并期望更改持续存在。
我试着设置networkaddress.cache.ttl和sun.net.inetaddr.ttl环境变量,但是没有效果。Amazon说调用java.security.Security.setProperty("networkaddress.cache.ttl" , "60");“如果你在Tomcat中运行你的应用程序将不起作用”(http://aws.amazon.com/articles/4035)。设置TTL的好方法是什么?

vsdwdz23

vsdwdz231#

问题是我做错了。设置sun.net.inetaddr.ttl环境变量是有效的。你可以在你的Elastic Beakstalk配置文件中这样做:

option_settings:
    - namespace: aws:elasticbeanstalk:application:environment
      option_name: sun.net.inetaddr.ttl
      value: 60

60秒的值为recommended by Amazon
另一个对我来说更好的选择是创建和使用java.security文件:

option_settings:
    - namespace: aws:elasticbeanstalk:application:environment
      option_name: java.security.properties
      value: /etc/myapp/java.security
container_commands:
    00create_config_dir:
        command: 'mkdir -p /etc/myapp'
        ignoreErrors: true
    01create_java_security_file:
        command: 'echo "networkaddress.cache.ttl=60" > /etc/myapp/java.security'
        ignoreErrors: true
d5vmydt9

d5vmydt92#

如果您使用的是spring framework,下面是我在应用程序初始化时设置networkaddress.cache.ttl的方法。
1.定义新的Java类,如下所示。

package com.example.util;
public class SecurityManager {
  public SecurityManager() {
    java.security.Security.setProperty("networkaddress.cache.ttl", "60");
  }
}

1.在创建spring容器时,要求spring framework将上述类的对象示例化为单例。

<beans xmlns="http://www.springframework.org/schema/beans"
  xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance"
  xsi:schemaLocation="http://www.springframework.org/schema/beans
    http://www.springframework.org/schema/beans/spring-beans-3.0.xsd">

  <bean id="securityManager" 
    class="com.example.util.SecurityManager" scope="singleton" />

</beans>
nbnkbykc

nbnkbykc3#

如果您使用的是Sping Boot ,则可以定义 @Configuration

@Configuration
class SecurityManager {
    
init { 
  Security.setProperty("networkaddress.cache.ttl", "5")
  }
}

相关问题