问题
spring boot 打的jar包,用java命令启动。netstat -ntupl 查看端口监听,只有tcp6 没有tcp4。而阿里云通常的入栈规则是ipv4.
诱因
怀疑是此处的原因,导致可以通过ip访问服务,但不能通过域名访问。(此怀疑是错误的,实际原因是ssl证书在windows系统解压,再rz到服务器,导致证书不可用。直接rz zip文件,不要在windows解压,有时会有问题【不确定原因】)
解答
添加java 启动参数-Djava.net.preferIPv4Stack=true
curr_date=`date +%d-%m-%Y`
curr_time=`date +"%Y-%m-%d %H:%M:%S"`
nohup java -Xms256m -Xmx26440m -Djava.net.preferIPv4Stack=true -jar /root/supersign_ms/$app_name --spring.config.location=/root/supersign_ms/application-pro.yml >/root/supersign_ms/log/${curr_date}.console.log 2>&1 &
echo "$app_name started pid:$! at $curr_time "

本文解决了一个SpringBoot应用在启动时遇到的问题,即应用只能通过IP访问而无法通过域名访问的情况。详细解释了如何通过添加java启动参数-Djava.net.preferIPv4Stack=true来使应用优先使用IPv4地址栈,从而解决域名访问问题。
1万+

被折叠的 条评论
为什么被折叠?



