좀 더 이해가 쉽도록 초기 질문을 다시 작성해 보겠습니다.
제가 직면한 문제는 회사 웹사이트가 Site Ground에 호스팅되어 있지만 안타깝게도 사이트 빌더의 사용으로 인해 해당 도메인 Document Root의 다른 애드온 도메인 아래에 전송할 수 없다는 것입니다. 이전하고 싶었던 이유는 드디어 회사 이름과 일치하는 도메인 이름을 등록했기 때문입니다. 현재 해당 웹사이트는 회사의 도메인 이름으로 유지할 계획이 전혀 없는 임시 도메인 이름에서 액세스되고 있습니다.
혼동을 피하기 위해 회사 이름은 Systopian Solutions입니다. 내 공개 회사 브랜드 홈 페이지는 도메인 이름 "systopian.com"의 문서 루트에서 일시적으로(또는 그렇게 생각했습니다) 실행되고 있었습니다. 나는 적절한 회사 도메인 이름 "systopiansolutions.com"을 얻은 후에 해당 도메인을 Site Ground의 다른 애드온 도메인으로 추가한 다음 사이트의 실제 콘텐츠를 하나의 애드온 도메인에서 다른 애드온 도메인으로 전송할 수 있도록 완전히 계획했습니다. 사이트 기반 호스팅.
하지만 처음에는 사이트가 이전될 수도 있겠다는 생각에 여기 있던 원래 질문을 열기 전에는, 그것이 옮겨지더라도 약간의 문제가 남았습니다.
Vultr에서 호스팅하는 VPS 서버도 있습니다. 이 서버는 회사의 모든 공개 송장 발행, 청구 및 지불 처리 웹 앱 사이트(송장 닌자)뿐만 아니라 내 고객에게 다양한 서비스를 제공할 수 있는 두 개의 내부 웹 앱 사이트를 실행합니다.
참고 사항:(그리고 내가 알고 있는 동안 저장 서버에서 공개 사이트와 내부 사이트를 절대 실행해서는 안 됩니다. 누구도 염탐할 수 없도록 여러 단계를 구현했습니다. 1. I 모든 내부 사이트 URL에 대한 별칭을 설정하여 그 중 어느 사이트도 일반적으로 알려진 URL을 사용하지 않도록 했습니다. 2, Invoice Ninja는 매우 강력한 보안 구현을 갖추고 있어 누구도 선택할 수 없습니다. 해당 제품의 기능에 대해 Invoice Ninja가 허용하지 않는 한 모든 fqdn/dir은 /etc/apache2/sites-available/ 방식과 완전히 다른 형식의 /etc/phpmyadmin/apache2.conf를 사용합니다. site-name.conf 파일이 구성되었습니다. 구문은 완전히 다르지만 설명할 수 없는 이유로 새 사이트를 설치해야 하는 경우 site-name.conf를 사용하면 Invoice Ninja가 액세스를 거부하게 됩니다. DocumentRoot 경로 중 하나를 사용하려면 /etc/phpmyadmin/apache2.conf를 사용하고 phpMyAdmins 구성 아래 맨 아래로 이동하여 마커를 사용하여 새 태그 섹션을 만들고 적절한 경로, 모드, 경로 및 기타 모든 구성을 배치합니다. 새 사이트에 필요한 내용을 저장한 다음 apache2를 다시 시작하세요. 그러나 나는 .htpasswd의 사용을 추가하고 누가 내부 사이트에 액세스하려고 시도하는지 강제하여 동일한 서버에서 공개 사이트와 내부 사이트를 혼합하므로 보안을 한 단계 더 강화합니다. .htpasswd에 구성된 사용자 2명 중 1명의 자격 증명이 필요합니다. 이러한 자격 증명을 어느 정도 충족하는 경우 Web Apps 사이트 자체에는 해당 사이트에 액세스하는 데 필요한 자체 사용자 관리/로그인 자격 증명이 있습니다. 내가 한 일이 침투할 수 없다는 환상은 없지만 내부 사이트를 해킹하려면 수년간의 경험을 가진 매우 결단력 있는 해커 한 명이 필요하다고 확신할 수 있습니다. 레이어가 충분하고 선택한 비밀번호는 최소 문자 길이와 #', 특수 문자, 상위/하위 문자의 올바른 조합으로 매우 강력합니다.
제가 겪었던 사소한 문제는 Invoice Ninja와 같은 회사의 공개 사이트 중 일부를 호스팅하는 VPS 서버가 systopiansoltions.com의 새로운 회사 도메인을 사용하기를 원했다는 것입니다. 내 회사의 홈 페이지 이전이 내 사이트 지상 호스트의 새 애드온 도메인으로 이전된 경우 다른 서버로 이동해야 하며 어떻게든 systopiansoltions.com 도메인을 사용해야 합니다. 그리고 이것이 제가 묻고 있던 것입니다. 내 사이트를 Site Ground에서 호스팅할 수 있는 방법이 있습니까? DNS A 레코드는 systopiansoltions.com 도메인을 Site Ground IP로 가리키기 위해 A 레코드에 대해 다른 IP 주소를 갖게 됩니다. 37.60.253.172의 동시에 내 VPS 서버 사이트에 대한 동일한 DNS 서버 A 레코드를 내 VPS 사이트의 IP 주소인 207.246.87.29로 지정합니다.
초기 질문은 어떤 종류의 로드 밸런서나 라우터 설정 없이도 어떤 방식으로든 2개의 다른 IP 주소를 가리키는 동일한 FQDN을 가질 수 있느냐는 것이었습니다.
가능한 가장 깔끔한 방법으로 이 작업을 수행하는 데 도움이 될 수 있는 몇 가지 생각은 리디렉션을 설정하는 것이었지만 그것이 어떻게 작동할지는 잘 모르겠습니다.
이것이 내 문제와 질문에 대한 자세한 설명이었습니다.
이번 질문에 2번째 부분이 있었는데 제가 실수로 잘못된 정보로 질문을 드린 것 같아 그것도 질문드립니다...
VPS 호스트에는 내부 사이트와 공개 고객 사이트가 모두 포함되어 있으므로 해당 사이트의 기능에 따라 사이트에 각각 2개의 서로 다른 도메인 이름을 구성하는 방법이 있는지 궁금합니다.
예: VPS 서버에서 /etc/hosts에는 다음 항목이 있습니다("localhost" 항목은 포함하지 않습니다). 그리고 이것이 오늘날까지 구성되었던 방식입니다. 문제는 이제 적절한 회사 도메인 이름을 등록했으므로 모든 내부 사이트에 systopian-web1.com 도메인 이름을 사용하는 동시에 공개 고객 송장 Ninja 사이트를 구성하여 사용할 수 있기를 원한다는 것입니다. 하지만 systopiansoltions.com 도메인에는 사용할 세 번째 IP가 없고 솔직히 한동안 운영 예산이 부족해서 세 번째 IP를 추가할 여유가 없어 이 문제가 발생합니다. 다 같이 사라집니다.
207.246.87.29 systopian-web1.com <--기본 IP
45.76.165.28 unms.systopian-web1.com <-- 보조 IP 전용 IP 주소가 필요하므로 이 앱 설치를 위해 특별히 추가되었습니다.
그래서 제 질문은, 어쨌든 1개의 IP를 2개의 다른 도메인 이름과 함께 사용할 수 있습니까?입니다. 이 작업을 수행하는 다른 방법을 아는 사람이 있습니까?
나는 apache2/sites-available/invoice-ninja.conf에서 다음 항목을 변경할 수 있다는 것을 알고 있습니다. ServerName systopiansolutions.com ServerAlias www.systopiansolutions.com 그러나 처음에는 이 두 가지 중 하나를 지정하려면 도메인 이름은 /etc/hosts에 정의되어야 합니다. 그렇지 않습니까? 2개의 도메인 이름이 동일한 IP 주소를 가리키는 두 개의 A 레코드를 가질 수 없다는 것을 알고 있기 때문에 이러한 도메인이 어떻게 해결되는지 잘 모르겠습니다. 즉, stopiansolutions.com이 207.246.87.29로 확인된 다음 다른 도메인을 갖게 됩니다. 동일한 VPS 서버 systopian-web1.com의 이름은 /etc/hosts를 업데이트할 수 없는 한 동일한 IP 207.246.87.29를 가리킵니다.
207.246.87.29 systopian-web1.com <-- 이 도메인은 고객에게 기능과 서비스를 제공하기 위해 내가 사용하는 내부 웹사이트에 대해 설정되지만 일반 대중은 이러한 사이트에 액세스할 수 없습니다.
207.246.87.29 stopiansolutions.com <-- 이 도메인은 공개 고객 대면 사이트이므로 Invoice Ninja용으로 설정됩니다. 따라서 모든 공개 고객 대면 사이트에서 이 도메인을 사용하기를 바랍니다.
45.76.165.28 unms.systopian-web1.com
그리고 앞서 제가 질문한 내용은 여전히 공개 질문입니다. 즉, 제 공개 회사의 홈 페이지가 현재 Site Ground에 호스팅되어 있기 때문에 완전히 다른 두 도메인에서 동일한 도메인 이름을 사용할 수 있는 방법이 있을까요? 각각 매우 다른 IP를 가진 서버가 있습니까?** 이 문제를 다른 방법으로 해결했을 수도 있지만 문제는 여전히 남아 있습니다.
그 외에 다른 옵션은 하나밖에 없지만, 내 답장을 다시 작성하면서 수정할 수 있으면 설명하고, 그렇지 않다면 다른 답글을 추가하겠습니다.
한 가지 우호적인 요청이 있습니다. 특히 이 사이트를 사용하는 것이 매우 친환경적인지 확실히 알 수 있는 사람에게 답장을 보내면 더욱 그렇습니다. 오히려 여러분 중 일부가 했던 방식에 응답하십시오. 솔직히 말해서 제가 사이트를 떠나려고 하는 지점까지 나를 밀어붙였습니다. 그 응답은 새로운 사람들에 대한 관용이 완전히 부족하고 아직 전부가 아닌 것으로 나타났기 때문입니다. 상황이 어떻게 돌아가는지 잘 알고 있고 질문 게시 방법 등에 대해 여러분 중 일부가 갖고 있는 것으로 보이는 기대에 대해 상당히 무지했습니다. 대신 환영하려고 노력하고 개인 메시지를 보내거나 그들의 게시물에 답글을 달고 나중에 나와 공유된 링크를 공유하세요. Green 회원과 그들의 잘 작성되지 않은 질문은 결코 용납되지 않는다는 것이 분명해졌습니다. 이것은 나에게 지금 질문을 다시 작성하는 데 시간을 할애할 상당한 동기를 부여했을 것입니다. 때때로 사람들은 자기 자신에만 너무 빠져 있어서 작은 친절의 몸짓이 얼마나 멀리까지 가는지 잊어버립니다.
다른 회원 중 한 명이 시간을 내어 내 질문을 이해하려고 노력하고 내 문제를 고려할 수 있는 다른 방법을 제공하기 위해 최선을 다하지 않았다면 내가 다시 돌아올 수 없었을 것입니다. 많은 분들처럼 저도 기술 지원, 애플리케이션 지원 엔지니어링, 시스템 관리, 웹 서비스, 해외 시스템 통합 및 마이그레이션 엔지니어링 설계 분야에서 20년간 경력을 쌓았기 때문에 부끄러운 일이었을 것입니다. 나는 어느 시점에서 내가 많은 분야에서 하는 기술 수준이 없는 다른 사람들을 돕기 위해 나의 수년간의 경험 중 일부를 공유할 수 있었을 것이라고 확신하며 나는 사람들을 돕는 것을 좋아합니다. 따라서 저는 죽은 말을 이겨내려는 것이 아니라 약간의 용서와 수용의 마음으로 새로운 회원에게 접근하고 오히려 그들이 작성한 첫 번째 게시물의 평판을 떨어뜨리고 올바른 점을 지적하도록 노력할 것을 요청하고 싶습니다. 환영받지 못하고 회원으로부터 소외감을 느끼게 만드는 대신 가장 효과적인 게시물을 작성하는 방법을 배울 수 있도록 방향을 정합니다(사후에 다시 한 번 수행됨). 제 질문과 제가 방금 설명한 내용이 모두 변화를 가져오길 바라며, 다음 사람이 저만큼 거부감을 느끼지 않기를 바랍니다.
제가 다시 작성한 질문에 대해 궁금한 점이 있으시면 언제든지 질문해 주시기 바랍니다.
건배,
남자
답변1
아마도 두 가지 개념을 혼동하고 있을 것입니다.
- 그만큼표준적인에서 반환한 정규화된 도메인 이름입니다
hostname --fqdn
. 이는 서버가 자신을 호출하는 방법(예: 의HELO
명령) 을 알기 위해 사용됩니다SMTP
. - 웹사이트의 정규화된 도메인 이름.
온프레미스에서 호스팅하기 위해 systopiansolutions.com
서버의 정식 호스트 이름을 변경할 필요가 없습니다. A
서버를 가리키는 DNS 레코드를 추가하고 Apache를 구성하기만 하면 됩니다 <VirtualHost>
. /etc/hosts
Apache2 서버는 수신 인터페이스의 IP 주소가 아닌 클라이언트 헤더를 기반으로 서비스할 사이트를 선택하므로 둘 중 아무것도 변경할 필요가 없습니다 Host
(실제로 파일로 무엇을 하려는지 추측해야 합니다 /etc/hosts
. 질문 제목에만 언급했기 때문에).
MySQL은 연결하는 사용자를 식별하기 위해 호스트 이름을 사용하지만 아마도로컬호스트그래도.
편집하다: 귀하의 설명을 마친 후 이 질문에 대한 답변은 다음과 같습니다.
초기 질문은 어떤 종류의 로드 밸런서나 라우터 설정 없이도 어떤 방식으로든 2개의 다른 IP 주소를 가리키는 동일한 FQDN을 가질 수 있느냐는 것이었습니다.
A
매우 간단합니다. 모든 서버의 콘텐츠가 동일하다면 동일한 도메인에 대해 원하는 만큼 많은 DNS 레코드를 가질 수 있습니다 . 그렇지 않으면 사용자는 무작위로 하나의 웹페이지 또는 다른 웹페이지를 받게 됩니다.
파일 에 관해서는 /etc/hosts
25년 전에는 이 파일에 동일한 정보가 포함되어 있었으며 DNS
NIC에서 모든 인터넷 호스트의 IP 주소와 도메인 이름을 다운로드할 수 있었습니다. 분명히 오늘날에는 이렇게 작동하지 않습니다. 오늘날에는 이를 재정의하는 데에만 사용합니다 DNS
(UNIX-es에서는 DNS를 쿼리하기 전에 참조합니다). 예를 들어 일반적으로(또는 역사적으로) 모든 호스트에는 in /etc/hosts
과 같은 짧은 이름 과 다음 줄이 있습니다.webserver1
/etc/hostname
127.0.1.1 webserver1.example.com webserver1
A
이는 에 대한 기록을 무시 webserver1.example.com
하므로 호스트 자체의 내부 통신은 루프백 장치를 사용합니다.
답변2
현재 적절한 답을 찾을 수 없었고, Site Ground가 내 회사의 공개 홈 페이지를 systopiansolutions.com으로 추가된 애드온 도메인으로 전송할 수 없는 것으로 나타났지만 실제로는 그렇지 않습니다. 1개의 도메인 이름이 2개의 다른 IP 주소로 확인되는 것과 관련된 질문이 있습니다. 그래서 나는 여전히 그것이 어떻게 이루어질 수 있는지, 또는 그 수준의 전문 지식을 가진 사람이 동일한 문제를 가지고 있다면 어떻게 처리할 것인지 궁금합니다.
그러나 이제 실제 사이트를 이전할 수 있는 방법이 있으므로 VPS 서버에 또 다른 사이트를 생성하기로 결정했습니다. 해당 서버에는 이미 Invoice Ninja(공개 고객 대면 사이트)가 있으므로 여러 IP를 사용하여 여러 장소에서 도메인 이름을 사용하는 것을 잊어버리고 VPS 서버의 전체 구성을 변경하고 /etc/hosts에서 systopian-web1.com에 대한 참조를 제거하고 해당 도메인의 모든 항목을 바꾸십시오. 이름은 systopiansolutions.com의 이름입니다. 이렇게 하면 공개 여부에 관계없이 모든 사이트가 모두 내 회사의 적절한 도메인 이름을 가리킵니다.
그래서 저는 실제로 그 계획을 실행에 옮겼고 Site Ground에서 제공하는 DNS만 업데이트한 것이 아닙니다.
또한 /etc/hosts를 수정하고 systopian-web1.com 항목을 주석 처리하고 systopiansolutions.com 항목을 추가했습니다.
저는 각 웹사이트 site-name.conf와 apache2.conf를 살펴보고 systopiansolutions.com을 사용하도록 ServerName과 ServerAlias를 모두 변경했습니다.
그런 다음 모든 변경 사항이 각 영역에 적절하게 적용되었는지 확인하기 위해 호스트를 재부팅했습니다.
이 작업을 통해 모든 사이트에 대한 SSL 인증서를 프로비저닝하고 systopiansolutions.com을 사용하는 모든 사이트에 설치할 수 있었습니다. 이것은 VPS 서버이기 때문에 certbot-auto를 사용하여 수동으로 인증서를 생성해야 했습니다. cli 프로그램이 어떻게 작동하는지 이해하면 DNS가 아닌 /etc/hosts의 항목을 기반으로 도메인 이름을 검증합니다.
SSL이 설치되면 모든 사이트, 공개 및 내부가 새 도메인 및 https에서 제대로 작동합니다.
그러나 나는 그것이 나에게 전혀 해를 끼치 지 않지만 모든 것이 완벽하게 작동하는 동안 아무것도 방해하는 것을 싫어하기 때문에 누군가가 나를 도울 수 있기를 바라는 몇 가지 문제를 발견했습니다. 그러나 내가 이해하는 바에 따르면 /etc/hostname에는 FQDN이 하나만 있을 수 있지만 내 경우에는 두 개가 있습니다. 다시 말하지만, 아무것도 작동하지 않으며 불평하는 것도 없습니다. 그리고 여기에 하나 이상의 FQDN 항목을 나열할 수 있다는 내용을 읽었지만 Linux Man 페이지를 읽었습니다. 여기에는 아니요, 하나만 허용됩니다. 어떤 하위 시스템이 실제로 이 파일을 해당 엔터티로 사용하는지 모르기 때문에 여기에서 어떤 도메인 이름을 구성해야 하는지 정확히 모르겠습니다.
root@systopian-web1:/etc# cat /etc/hostname systopian-web1 <==== 이것은 로컬호스트 이름입니다. systopian-web1.com <==== 이것은 서버의 이전 FQDN이었습니다. 그리고 가능하다면 이 이름을 내부 사이트인 모든 웹 앱 사이트의 도메인 이름으로 계속 사용하고 싶습니다.
이제 내 /etc/hosts에는 약간 다른 이야기가 있습니다. 서버의 도메인 이름을 바꿨습니다. 그러나 이 동일한 호스트에서 두 도메인 이름을 모두 사용하도록 구성하는 방법을 누군가가 알지 않는 한 다른 무엇을 해야 할지 잘 모르겠습니다. 서버는 어쨌든 내 로컬 네트워크에 연결되어 있지 않기 때문에 systopian-web1.com에서 LocalHost를 사용하도록 내부 사이트를 구성하기 위해 localhost 항목을 사용할 수 없습니다. 그래서 그것도 작동하지 않을 것입니다.
root@systopian-web1:/etc# cat /etc/hosts
127.0.0.1 localhost
127.0.1.1 systopian-web1
//207.246.87.29 systopian-web1.com
207.246.87.29 systopiansolutions.com
45.76.165.28 unms.systopian-web1.com
//The following lines are desirable for IPv6 capable hosts
::1 localhost ip6-localhost ip6-loopback
ff02::1 ip6-allnodes
ff02::2 ip6-allrouters
다른 문제는 Operations Center 서버 명명 규칙을 유지하기 위해 127.0.1.1 호스트 이름을 systopian-web1로 유지하고 싶다는 것입니다. 따라서
/etc/hosts shows:
127.0.0.1 localhost
127.0.1.1 systopian-web1
따라서 새로 작성된 질문 게시물에서 제기된 이러한 문제를 처리하는 방법에 대한 첫 번째 생각 중 하나가 2개의 IP 주소가 단일 도메인 이름을 가리키는 것에 대한 걱정을 해결하기 위해 내가 수행한 작업을 더 잘 설명했기를 바랍니다. 더 이상 문제가 되지 않으며 이제 systopiansolutions.com 도메인 이름으로 구성된 VPS 서버에서 회사 홈 페이지를 만드는 작업을 할 것이므로 더 이상 필요하지 않습니다(사이트 설정의 단순성 외에는) Site Grounds 무료 드래그 앤 드롭 Site Builder를 사용하여 내 회사의 홈페이지를 Site Ground에 호스팅합니다.