我最近迁移到Azure平台的Java应用程序出现问题。该应用程序在Tomcat上运行,并通过Ansible自动部署。应用程序需要通过代理对API进行一些HTTP调用,因此我们在setenv.sh中传递了代理参数,这是代码的一部分:
vars:
tomcat_java_options:
- 'https.proxyHost=xx.xx.xx.xx'
- 'https.proxyPort=8080'
setenv:
{% if tomcat_java_options is defined %}
JAVA_OPTS="$JAVA_OPTS {{ '-D'~tomcat_java_options|join(' -D') }}"
{% endif %}
问题是:每天早上,应通过代理传递的请求超时。我们可以通过netstat看到请求直接进入API,而没有通过代理。在服务器上,我们可以通过curl(使用代理)加入API。 重新启动tomcat可以解决问题,直到第二天早上。
有人解释吗?非常感谢
答案 0 :(得分:0)
只要代理可用且正常工作(通过它的连接不会失败),Tomcat
就会使用它。无效的代理连接后,将不再使用它(当然,直到重启)。您确定夜间代理没有任何问题吗?