使用CSE开发时,都是通过microservice.yaml文件指定服务监听地址,比如:
rest:
address: 0.0.0.0:18083??sslEnabled=true
但是使用0.0.0.0是监听所有网卡,在多网卡情况下,上报给服务中心地址就可能不正确,也可能有安全风险,所以我们应该在启动脚本中自动获取到ip地址,并设置给他,在这里我们可以通过环境变量的方式来传递。比如在start.sh脚本中使用如下代码:
#!/bin/bash
export REST__HOST=`ifconfig eth0 | awk '/inet /{print $2}' | cut -d: -f2 | awk '{print $1}'`
export SSL_ROOT=`pwd`/certificates
java $CMDVAR -jar ./user-1.0.0.jar
在microservice.yaml里面可以这么配置
rest:
address: ${REST_HOST}:18083??sslEnabled=true