localhost OS X 10.6への複数のIPアドレスの割り当て


9

HTTPSを有効にして複数のWebサイトをローカルでホストしようとしていますが、これを行うには、ローカルホストに複数のIPアドレスを使用するようにローカルマシンを構成する必要があります(私はそう思います)。複数のIPアドレスを同時にローカルで解決する方法はありますか?

OS X 10.6(サーバーではなく標準版)とMAMPサーバーのセットアップを使用しています。

ありがとう!

回答:


3

1つのWebサーバーで複数のWebサイトをホストするために複数のIPは必要ありません。「仮想ホスト」を使用する必要があります(httpsも必要な場合)。ここにMAMP http://sawmac.com/mamp/virtual/の仮想ホストのガイドがあります


HTTPSを有効にして複数のサイトをホストするには、それぞれに個別のIPアドレスが必要だと思います。参照:stackoverflow.com/questions/11217538/...
user1086746

@ user1086746 ApacheはTLSサーバー名表示をサポートします。すべての主要なクライアントブラウザーも同様です。WindowsXP以外のほぼすべてのOS。リンクされた質問で得られるはずの答えは、を設定することNameVirtualHost *:443です。
シェーンマッデン2012年

@Shaneは、同じIPアドレスでHTTPSを使用して複数のサイトを処理するときにまだ機能していないようです。最終的に私のために働いたものを投稿しました。
user1086746 2012年

@ user1086746間違いなく機能します。私はあなたが推測しているNameVirtualHostあなたと一致しませんでした<VirtualHost>あなたは127.0.0.1に特異的に結合された場合、ブロックを。この場合でも、有効なソリューションが見つかったので問題はありませんが、NoNoNoが適切です。追加のIPは必要ありません。
シェーンマッデン

まあ、これらのIPアドレスの設定は追加の手順なので、これを「正しく」機能させたいと思います。私のような2 NameVirtualHostsを持っていません:NameVirtualHost *:80 NameVirtualHost *:443 :とのようなバーチャルホストを使って試してみました<VirtualHost _default_:443>し、<VirtualHost 127.0.0.1:443>最初に記載されているバーチャルホストの後にHTTPS接続を提供しますが、どちらも。興味があれば、ssl.confファイルとvhost.confファイル全体を提供できます。
user1086746 2012年

22

localhostにエイリアスを設定するには、次の端末コマンドを使用して「ループバック」を作成できます。

ifconfig lo0 alias 127.0.0.2

localhostエイリアスを設定すると、次のように複数のHTTPS仮想ホストを作成できます。

<VirtualHost 127.0.0.1:443> ...... </VirtualHost>
<VirtualHost 127.0.0.2:443> ...... </VirtualHost>

必要に応じて、ルートのcronを使用して、起動時にこれらのホストを初期化することもできます。

sudo crontab -e
@reboot ifconfig lo0 alias 127.0.0.2

うまくいけば、これが私が行ったのと同じ問題に遭遇している人を助けるでしょう!


使用echo PASSWORDひどい考えです。大まかな代替案は、ルートのcronにsudo crontab -eandのようなものを置くこと@reboot ifconfig lo0 alias 127.0.0.2です。確かにもっとエレガントな解決策がありますが、プレーンテキストのパスワードを含むものは受け入れられません。
chmac、2014

1
うわー、それはとても楽しいです!私はこれをSSHポート転送に使用します。これにより、異なるローカルIPアドレスをリッスンすることにより、同じポートを複数回転送できます。例えばssh -L 127.0.0.2:443 foo:443 -L 127.0.0.3:443 beta.foo:443 user@host。次に/etc/hosts、必要に応じて、ファイル内のこれらのローカルIPアドレスにホスト名を定義できます。特にアプリケーションでカスタムポートを使用できない場合は、Web開発およびテスト/リモート処理に非常に役立つことがわかります。
djule5

2

LinuxまたはWindowsのローカルホストにIPアドレスを追加する必要はありません。デフォルトでは、追加の構成なしで、127.0.0.0 / 8からのすべてのIPアドレスに応答します。

$ ping 127.254.0.100
PING 127.254.0.100 (127.254.0.100) 56(84) bytes of data.
64 bytes from 127.254.0.100: icmp_seq=1 ttl=64 time=0.026 ms

したがって、アプリケーションに127.0.0.0/8の範囲のIPをリッスンさせるだけで問題ありません。

例:

1つのコンソール:

$ nc -vvl 127.0.34.2 9022
Connection from 127.0.0.1 port 9022 [tcp/*] accepted
Hello

別のコンソール:

$ echo Hello | nc -vv 127.0.34.1 9022
nc: connect to 127.0.34.1 port 9022 (tcp) failed: Connection refused
$ echo Hello | nc -vv 127.0.34.2 9022
Connection to 127.0.34.2 9022 port [tcp/*] succeeded!

コメンターが指摘したように、MacOS / DarwinでlocalhostインターフェースにIPを明示的に追加する必要あります。


ループバックインターフェイスでエイリアスなしではリッスンできないようです。試してみnc -vvl 127.0.34.2 9022てくださいnc: Can't assign requested address。で定義されたエイリアスを使用するとifconfig lo0 alias 127.0.34.2、機能します。それはなぜですか?OSX Yosemiteで実行されています。
djule5

1
Macでは、127.0.0.1のみがlo0(ループバック)デバイスにマップされます。ループバックデバイスを機能させるには、手動でエイリアスをループバックデバイスに追加する必要があります。しかしLinuxでは、127.0.0。*はすべてループバックデバイスにマッピングされます。
スリラム2017年

1
Macの場合:sudo ifconfig lo0 alias 127.0.0.2 up(以降同様、アドレスごとに個別に実行する必要があります)
lilalinux
弊社のサイトを使用することにより、あなたは弊社のクッキーポリシーおよびプライバシーポリシーを読み、理解したものとみなされます。
Licensed under cc by-sa 3.0 with attribution required.