Iptablesを使用した開発環境の構築

Iptablesを使用した開発環境の構築

すべてのアプリケーションが2つの部分に分割される開発環境を設定しようとしています。 ReactJSフロントエンドのアクセスアドレスはhttp://127.0.0.1:3000、Rubyバックエンドのアクセスアドレスはですhttp://127.0.0.1:3001

私のエントリに次の2行を追加しました/etc/hosts

127.0.0.2     myapp.dev
127.0.0.3     api.myapp.dev

これにより、同様のブラウザ要求を行ったときにそれにhttp://myapp.devリダイレクトする必要がありますhttp://127.0.0.1:3000。私のフロントエンドがAJAXを使用してAPIを呼び出すときは、http://api.myapp.devこの要求をにリダイレクトする必要がありますhttp://127.0.0.1:3001

127.0.0.2からすべての要求をルーティングする必要があります127.0.0.1:3000127.0.0.3127.0.0.2:3001

リバースプロキシを設定すると、これを行うことができることがわかります。しかし、いくつかの理由でIPTABLESを使用してこれを行うことができるかどうかを知りたいです。それでは、何をすべきですか?

よろしくお願いします!

ベストアンサー1

127.0.0.2:80からにアクセスをリダイレクトするには127.0.0.1:3000

# iptables -t nat -A PREROUTING -p tcp -d 127.0.0.2 \
  --dport 80 -j REDIRECT --to-port 3000
# iptables -t nat -A OUTPUT -p tcp -d 127.0.0.2 \
  --dport 80 -j REDIRECT --to-port 3000

チェーンの最初のルールは、PREROUTINGlocalhost以外の場所からの着信トラフィックと一致します。チェーンの2番目のルールはOUTPUTlocalhostのトラフィックと一致します。

iptables チェーンのルールが処理されます。~のためしたがって、これらのルールの前に一致する既存のルールがファイアウォールにある場合、結果は予想と異なる場合があります。

詳細についてはREDIRECTTargetを読んでください。iptables 拡張マンページ。

おすすめ記事