2012-05-07 2 views
1

이 질문은 여러 가지 형태로 제기되었으며, 6 시간 이상 인터넷 검색으로 내 문제를 해결했습니다. 지금까지 나는 실패했다. 저는 MAMP를 사용하여 PHP 응용 프로그램을 개발했습니다. 그리고 저는 Snow Leopard에서 Lion으로 어제 업그레이드했는데 즉시 로컬 응용 프로그램이 훨씬 느리게 실행되고있었습니다. 라이온이 IPv6를 어떻게 다루는 지 DNS 검색 문제가 있다고 생각합니다.최대 OS 라이온 10.7.3 MAMP에서 DNS 검색이 매우 느림

  1. 가 더 이상 별도의 라인
  2. 을에
  3. 내 호스트 파일에있는 모든 항목을 넣어 .local의 TLD를 사용하지 내 호스트 파일에있는 모든 항목을 변경 : 나는이 문제를 해결하려면 다음 단계를 시도
  4. 내 호스트 파일이 이
  5. 설치하는 dnsmasq
  6. 는 FE80 전에 나의 호스트 파일 항목을 모두 넣어 (이 올바르게 수행하지 않은 수)
  7. 내 호스트 파일의 모든 지역 항목에
  8. 추가 IPv6의 항목을 올바른 인코딩을 한 것으로 보장 :: 1 % lo 0 localhost line

이 문제는 해결되었지만 아직 파악하지 못한 문제가 하나 있습니다. 우리의 PHP 애플리케이션에서, 우리는과 같이 우리의 SOAP 엔드 포인트를 정의

API : 8080/계약/서비스/SomeService 각 서버에서 WSDL

는 호스트의 "API"항목이 SOAP API의 IP 주소를 가리키는 파일. 나는 우리 dev에 서버를 가리 키도록 할 때, 나는 다음과 같이 내 호스트 파일을 변경합니다

132.93.1.4 API를

(아닌 실제 IP)

하는 DNS 호스트 파일에서 api 항목을 조회 할 때마다 매 5 초가 걸립니다. ping api를 실행하면 결과가 즉시 반환됩니다. 그러나 내가 ssh API를 사용하면 서버에 연결하기까지 약 5 초가 걸린다. 즉, PHP 응용 프로그램을로드 할 때 SOAP 쿼리가 5 초가 소요되지만 실제 쿼리가 오래 걸리므로 로컬 개발이 완전히 불가능합니다. 우리가 엔드 포인트를 정의하는 방식이 최상의 설계 결정이 아닐지도 모르지만 그것이 내가해야 할 일입니다.

내가 읽은 다른 질문에서, IPv6에서 먼저 "api"를 찾아보고, 실패하고,/etc/hosts를 살펴 보려고합니다. 나는 dnsmasq를 사용하여이 순서를 바꾸려고했지만 운이 없었다. 누구나/etc/hosts를 먼저 읽거나 IPv6을 모두 건너 뛰는 방법을 알고 있습니까?

업데이트 : hostfile의 항목을 api.com, api.foo로 변경했습니다. "." 그것에, 그리고 그것은 즉시 응답했다. 그러나 여전히 "api"라는 이름을 변경하지 않아도되는 솔루션을 찾고 싶습니다.

+0

유일한 해결책은 "."이있는 API 포인터를 사용하는 것입니다. 그 안에. 따라서 API 파일의 IP 주소로 내 호스트 파일의 "api"를 가리키는 대신 "api.dev"를 사용합니다. –

+0

질문 해 주셔서 감사합니다. 기본적으로 os x 10.8.2 및 MAMP 2.1.1에서 동일한 문제가 발생합니다.일반적인 IPv6 트릭 (탭 포함)이 작동하지 않습니다. 지금까지 내 유일한 수정 : 와이파이의 차례. –

답변

1

IPv6을 지원하는 모뎀을 업그레이드 한 이후로 동일한 문제가 발생했습니다. 호스트 이름 형식 (IPv4 및 IPv6)을 모두 추가하면 다음과 같은 문제가 해결되었습니다.

::1 domain.dev # <== localhost on crack 
127.0.0.1 domain.dev