localhost OS X 10.6에 여러 IP 주소 할당


9

HTTPS를 사용하여 여러 웹 사이트를 로컬로 호스팅하려고하지만 로컬 호스트에 여러 IP 주소를 사용하도록 로컬 컴퓨터를 구성해야합니다 (믿습니다). 여러 개의 IP 주소를 동시에 로컬에서 확인할 수있는 방법이 있습니까?

OS X 10.6 (표준 버전-서버 아님) 및 MAMP 서버 설정을 사용하고 있습니다.

감사!

답변:


3

하나의 웹 서버에서 여러 웹 사이트를 호스팅하기 위해 여러 IP가 필요하지 않습니다. "가상 호스트"를 사용해야합니다 (필요한 경우 https 포함). MAMP http://sawmac.com/mamp/virtual/ 에 가상 호스트를위한 가이드가 있습니다 .


HTTPS를 사용하여 여러 사이트를 호스팅하려면 각각 별도의 IP 주소가 필요하다고 생각합니다. 참조 : stackoverflow.com/questions/11217538/…
— user1086746 16:27의

@ user1086746 Apache는 모든 주요 클라이언트 브라우저와 마찬가지로 TLS 서버 이름 표시를 지원합니다. Windows XP가 아닌 거의 모든 OS. 연결된 질문에 대한 답변은를 설정하는 것 NameVirtualHost *:443입니다.
— Shane Madden

동일한 IP 주소를 통해 HTTPS를 사용하여 여러 사이트를 처리 할 때 여전히 작동하지 않는 @Shane. 나는 나를 위해 일한 것을 게시했습니다.
— user1086746

@ 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

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>

원하는 경우 루트 크론을 통해 시작시 이러한 호스트를 초기화 할 수도 있습니다.

sudo crontab -e
@reboot ifconfig lo0 alias 127.0.0.2

바라건대 이것은 내가했던 것과 같은 문제에 빠진 사람을 도와줍니다!


사용하는 echo PASSWORD것은 끔찍한 생각입니다. 원유 대체 루트의 같은 크론에 뭔가 넣어하는 것 sudo crontab -e등을 @reboot ifconfig lo0 alias 127.0.0.2. 분명히 더 우아한 해결책이 있지만 일반 텍스트로 된 암호와 관련된 것은 용납 할 수 없습니다.
— chmac

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 주소에 호스트 이름을 정의 할 수 있습니다 . 특히 응용 프로그램에 사용자 정의 포트를 사용할 수없는 경우 웹 개발 및 테스트 / 원격에 매우 유용합니다.
— 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에서 수신 대기하도록 설정하면 좋을 것입니다.

예:

하나의 콘솔 :

$ 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에서 실행 중입니다.
— djule5

1
Mac에서는 127.0.0.1 만 lo0 (루프백) 장치에 매핑됩니다. 루프백 장치에 별명을 수동으로 추가해야 작동합니다. 그러나 Linux에서는 모든 127.0.0. *가 루프백 장치에 매핑됩니다.
— 스리 람

1
Mac의 경우 sudo ifconfig lo0 alias 127.0.0.2 이상 (각 주소마다 개별적으로 수행해야 함)
— lilalinux
당사 사이트를 사용함과 동시에 당사의 쿠키 정책과 개인정보 보호정책을 읽고 이해하였음을 인정하는 것으로 간주합니다.
Licensed under cc by-sa 3.0 with attribution required.