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.