2016-11-29 49 views
0

我使用Node/Express後端開發了一個React應用程序。它基於following starter kit.它可以在我的本地機器上正常工作,但是當我在AWS上部署它時,它會以不正確的IP地址開始。ip.address()在aws上不起作用。如何以編程方式獲取AWS EC2的IP地址?

我的配置文件

const ip = require('ip') 
    server_host : ip.address(), 
    server_port : process.env.PORT || 3000, 

運行本地機上NPM開始 - 工作正常,並開始爲

app:bin:server Server is now running at 192.168.1.5:3000. 

但是當我把它放在EC2(52.72.209.201),並開始它doesn沒有工作,我得到的日誌爲

app:bin:server Server is now running at 172.31.31.141:3000. 

如果我硬編碼我的實例的IP地址在配置文件我牛逼工作正常

server_host : '52.72.209.201', 
    server_port : process.env.PORT || 3000, 

現在開始,運行良好

app:bin:server Server is now running at 52.72.209.201:3000. 

我能做些什麼,以除去硬編碼的IP地址?

+0

你附加任何彈性IP?並隱藏您的AWS EC2實例IP。放一些**。 –

+0

是的。彈性IP被附加到實例。我沒有提到確切的IP地址;) –

+0

Did [my answer](http://stackoverflow.com/questions/40861206/ip-address-does-not-work-on-aws-how-to-get-the -ip-address-of-aws-ec2-programm/40864195#40864195)幫助你?任何意見? – rsp

回答

1

你應該能夠從中獲取您的公共IP地址:

或:

您可以在使用curl貝殼 腳本(如啓動腳本)來獲取它,例如存儲在環境變量或文件系統上的某個文件中。或者,您可以在節點中使用request

欲瞭解更多信息,請參閱:

+0

curl http://169.254.169.254/latest/meta-data/public-ipv4返回相同的錯誤IP地址= 172.31.31.141。我在設置EC2實例時是否犯過配置錯誤? –