HTTPSを有効にして複数のWebサイトをローカルでホストしようとしていますが、これを行うには、ローカルホストに複数のIPアドレスを使用するようにローカルマシンを構成する必要があります(私はそう思います)。複数のIPアドレスを同時にローカルで解決する方法はありますか?
OS X 10.6(サーバーではなく標準版)とMAMPサーバーのセットアップを使用しています。
ありがとう!
HTTPSを有効にして複数のWebサイトをローカルでホストしようとしていますが、これを行うには、ローカルホストに複数のIPアドレスを使用するようにローカルマシンを構成する必要があります(私はそう思います)。複数のIPアドレスを同時にローカルで解決する方法はありますか?
OS X 10.6(サーバーではなく標準版)とMAMPサーバーのセットアップを使用しています。
ありがとう!
回答:
1つのWebサーバーで複数のWebサイトをホストするために複数のIPは必要ありません。「仮想ホスト」を使用する必要があります(httpsも必要な場合)。ここにMAMP http://sawmac.com/mamp/virtual/の仮想ホストのガイドがあります
NameVirtualHost *:443
です。
NameVirtualHost
あなたと一致しませんでした<VirtualHost>
あなたは127.0.0.1に特異的に結合された場合、ブロックを。この場合でも、有効なソリューションが見つかったので問題はありませんが、NoNoNoが適切です。追加のIPは必要ありません。
NameVirtualHost *:80 NameVirtualHost *:443
:とのようなバーチャルホストを使って試してみました<VirtualHost _default_:443>
し、<VirtualHost 127.0.0.1:443>
最初に記載されているバーチャルホストの後にHTTPS接続を提供しますが、どちらも。興味があれば、ssl.confファイルとvhost.confファイル全体を提供できます。
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 -e
andのようなものを置くこと@reboot ifconfig lo0 alias 127.0.0.2
です。確かにもっとエレガントな解決策がありますが、プレーンテキストのパスワードを含むものは受け入れられません。
ssh -L 127.0.0.2:443 foo:443 -L 127.0.0.3:443 beta.foo:443 user@host
。次に/etc/hosts
、必要に応じて、ファイル内のこれらのローカルIPアドレスにホスト名を定義できます。特にアプリケーションでカスタムポートを使用できない場合は、Web開発およびテスト/リモート処理に非常に役立つことがわかります。
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で実行されています。