"foo"라는 단어를 도메인 이름 "foobar.com"에 매핑

"foo"라는 단어를 도메인 이름 "foobar.com"에 매핑

단어를 "foo"도메인 이름에 매핑하여 단어를 "foobar.com" 실행하거나 말릴 수 있어야 합니다 ping foo.

별칭 foo='foobar.com'

다음과 같은 질문이 주어집니다.

curl -k foo
curl: (6) Could not resolve host: foo

이는 kubernetes에서 실행되며 도메인 이름과 IP 주소는 동적입니다.

기본적으로 K8s 서비스 이름을 IP 동적 내부 도메인 이름에 매핑하고 싶습니다.

답변1

여기서 원하는 것은 서버 별칭입니다.

옵션 A(더럽고 추악함)

/etc/hosts이를 위해서는 파일을 편집 해야 합니다 .

예를 들어

${IP} foo foo.com

그러면 당신은 할 수 있을 것이다

curl foo -H 'Host: foo.com'

가상 호스트 별칭이 foo.com이므로 호스트 헤더가 필요합니다.

옵션 B (깨끗하고 아름답습니다)

웹 서버에 따라 구성이 다를 수 있는 서버 별칭을 만듭니다.

내 Apache httpd 구성에서는 다음을 사용합니다.

/etc/httpd/sites-available- 각 가상 호스트에 대한 구성을 포함합니다.

/etc/httpd/sites-enabled- 사용 가능한 사이트의 파일을 수정하거나 이름을 바꾸지 않고도 가상 호스트를 활성화/비활성화할 수 있도록 사용 가능한 사이트 구성 파일에 대한 심볼릭 링크가 포함되어 있습니다. 가상 호스트를 종료하려면 링크를 해제하면 됩니다.

conf를 수정했습니다

/etc/httpd/conf/httpd.conf

[...]
IncludeOptional sites-enabled/*.conf`
[...]

그래서 내가 가지고 있다고 가정 해 봅시다

/etc/httpd/sites-available/foo.com.conf그리고 심볼릭 링크 버전/etc/httpd/sites-enabled/foo.com.conf

그럼 해

cp /etc/httpd/sites-available/foo.com.conf /etc/httpd/sites-available/foo.conf

foo.conf이에 맞게 수정되었습니다 .

[...]    
ServerName foo
ServerAlias foo
[...]

그런 다음 ln -s /etc/httpd/sites-available/foo.conf /etc/httpd/sites-enabled/foo.conf

마지막으로 아파치를 다시 시작하십시오.

systemctl restart httpd

노트이러한 모든 작업에는 루트 또는 sudo(고급 사용자)가 필요할 수 있습니다.

시스템에 DNS 서버가 있다고 가정하면 다른 것은 필요하지 않습니다. 그렇지 않으면 /etc/hosts 파일도 수정해야 하지만 컬을 사용하면 vhost 별칭이 foo가 되므로 호스트 헤더를 전달할 필요가 없습니다.

이 경우에는 잘 작동하며 curl http://foo옵션 A에서는 호스트 헤더도 필요합니다.

답변2

간단한 사용 사례의 경우 변수를 사용할 수 있습니다.

$ foo="foobar.com"
$ curl -k "${foo}"

모든 사용 사례가 터미널 명령을 중심으로 이루어집니까?

답변3

정중선 교체를 위해서는 "전역" 별칭(아마도 footgun)이 필요합니다. 이는 ZSH에서 제공됩니다.

$ exec zsh
% alias -g foo=foobar.com
% print foo
foobar.com
% 

하지만 참고하세요어느그냥 사용하면 foowill이 대체되므로 if foo도 매개변수가 될 수 있습니다 .기필코 아니다교체되면 나쁜 일이 발생할 수 있습니다(따라서 footgun 명령이 중단되거나 잘못된 인수로 인해 다른 일이 발생할 수 있거나...)

% print 'foo'
foo

foo따라서 견적이 필요할 때와 그렇지 않을 때를 항상 기억하기 위해 두뇌에 추가 작업을 해야 합니다 foo.

관련 정보