サーバーで`node.js`のアプリを動かすと度々このような自体に見舞われます。  
フレームワークは`nuxt.js`です。

そもそも`127.0.0.1`というのはマシン内部のプライベートなipであり、グローバルipとは違うはずだと思うのですが

例えばローカルマシンの`127.0.0.1:4000`でAPIサーバーを起動させている間  
サーバーにデプロイしているアプリ`127.0.0.1:3000`から`127.0.0.1:4000`へリクエストすると  
ローカルマシン上で稼働させている`127.0.0.1:4000`のアプリにリクエストが飛んできます。

正直、どういう理屈なのか全くわかりません。  
そもそも、サーバー内では`127.0.0.1:3000`はnginxで公開しています。  
`127.0.0.1:4000`は公開していません。  
リバースプロキシをやって公開しているのは`127.0.0.1:3000`だけです。

何がやりたいというと`127.0.0.1:4000`のAPIは誰彼構わず叩かれたくないので公開したくないのです。  
ただし`127.0.0.1:3000`のアプリからだけは利用したい

サーバー内のlocalhostを  
同サーバーから公開されているアプリのみ利用可能とする方法は無いのでしょうか？

元々フロントエンドエンジニアなのでサーバーのその辺の事情が分かっていません。

安全性から言ったら当然、公開するサーバー、非公開でlocalhostとしてだけ動かすサーバーという  
構成でアプリは運用できるものと思っていたのですが  
違うのでしょうか？

`127.0.0.1:3000`のアプリで  
`127.0.0.1:4000`のAPIを叩かせようと思ったら  
やはり`127.0.0.1:4000`のAPIも公開した上で、nginxの設定やらで同サーバーからのみ利用可能な設定にしてやらなければならないのでしょうか？

もはやlocalhostがなぜこのような仕組みになっているのかわけが分からないです。

詳しい方ご教示頂けないでしょうか？  
よろしくお願いします。
CC BY-SA 4.0
2019-09-23T08:09:32.910
59217
2020-02-20T13:14:26.693
2020-02-20T13:14:26.693
19110
35943
question
network nginx サーバー管理
サーバーのプライベートip127.0.0.1がローカルマシンの127.0.0.1を指すことがある件