HTTPS를 사용하여 여러 웹 사이트를 로컬로 호스팅하려고하지만 로컬 호스트에 여러 IP 주소를 사용하도록 로컬 컴퓨터를 구성해야합니다 (믿습니다). 여러 개의 IP 주소를 동시에 로컬에서 확인할 수있는 방법이 있습니까?
OS X 10.6 (표준 버전-서버 아님) 및 MAMP 서버 설정을 사용하고 있습니다.
감사!
HTTPS를 사용하여 여러 웹 사이트를 로컬로 호스팅하려고하지만 로컬 호스트에 여러 IP 주소를 사용하도록 로컬 컴퓨터를 구성해야합니다 (믿습니다). 여러 개의 IP 주소를 동시에 로컬에서 확인할 수있는 방법이 있습니까?
OS X 10.6 (표준 버전-서버 아님) 및 MAMP 서버 설정을 사용하고 있습니다.
감사!
답변:
하나의 웹 서버에서 여러 웹 사이트를 호스팅하기 위해 여러 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>
원하는 경우 루트 크론을 통해 시작시 이러한 호스트를 초기화 할 수도 있습니다.
sudo crontab -e
@reboot ifconfig lo0 alias 127.0.0.2
바라건대 이것은 내가했던 것과 같은 문제에 빠진 사람을 도와줍니다!
echo PASSWORD
것은 끔찍한 생각입니다. 원유 대체 루트의 같은 크론에 뭔가 넣어하는 것 sudo crontab -e
등을 @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 주소에 호스트 이름을 정의 할 수 있습니다 . 특히 응용 프로그램에 사용자 정의 포트를 사용할 수없는 경우 웹 개발 및 테스트 / 원격에 매우 유용합니다.
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에서 수신 대기하도록 설정하면 좋을 것입니다.
예:
하나의 콘솔 :
$ 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!
주석 기가 언급 한 바와 같이, 이다 맥 OS / 다윈에 명시 적으로 로컬 호스트 인터페이스에 IP를 추가 할 필요.
nc -vvl 127.0.34.2 9022
반품 시도 중 nc: Can't assign requested address
입니다. 로 정의 된 별칭으로 ifconfig lo0 alias 127.0.34.2
작동합니다. 왜 그런 아이디어가 있습니까? OSX Yosemite에서 실행 중입니다.