한 서버에 워드프레스 사이트,블로그 두개 설치하기(서문)

14

이번 연재작에서는 하나의 아마존 라이트세일 VPS(서버 인스턴스)에 두 번째 워드프레스 사이트(블로그 또는 쇼핑몰)를 추가설치하는 방법을 기술합니다. 약간 개념적인 이해만 따른다면 이런 서버관리가 그리 어려운 일은 아닐 것입니다. 비단 AWS lightsail에서 뿐만 아니라 블루호스트나 디지털오션같은 다른 곳에서도 기본틀은 같습니다.

지난 연재작 AWS Lightsail에 워드프레스 설치하기를 따라 첫번째 워드프레스를 설치하고 블로그를 하던 중 여러분은 또 다른 블로그나 쇼핑몰, 홈페이지등 또 다른 웹사이트를 만들고 싶어질 때가 있을 것입니다. 그런데 이제 막 시작하는 블로그는 트래픽도 적고 그 만큼 수익성도 낮고 방문자와 소통도 거의 없다 싶이 하는데 서버를 추가로 마련한다는 것은 비용문제가 있을 것입니다. 그 것이 미미한 금액일지라도요. 

그렇게 한 서버에 두개이상의 여러개 워드프레스 블로그를 설치해서 사용할 때 눈에 띄는 첫 번째 이점이라면 서버비용을 조금이라도 아낄 수 있다는 것입니다. 이미 운영중인 블로그의 트래픽이 기본용량에 한참 미치지 않는다면 같은 서버에 워드프레스 추가 설치의 여유가 있을 테니까요. 

 

솔직히 말해서, 제경우 한 서버에 두개의 별도 도메인, 별도 워드프레스, 별도의 데이터베이스를 추가함으로써 얻는 이득은 그 뿐입니다. 주제, 성격이 전혀 다른 두 사이트이기때문에 더욱 그렇습니다. 

저는 하나의 라이트세일 서버 인스턴스에 두개 블로그를 올려놓고도 기본 플랜의 1테라 바이트 트래픽은 커녕 한달 100기가도 못 쓰고 있는데다가 용량도 15기가나 남았습니다. 현재 이 블로그가 더부살이 중인 블로그인데 첫번째 블로그의 수익이 서버운영비 $5 정도는 충분히 뽑고 남기에 이 블로그를 추가로 운영하는데 부담이 전혀 없습니다. 다른 서버에 단독으로 돌려도 문제없었겠지만 이 블로그는 향 후 1년간 수익성을 장담할 수 없기에 별도 서버에 올리는 건 비용낭비일 뿐만아니라 한달 $5여도 1년이면 약 7만원 돈인데 그돈이면 일년에 치킨 두 세마리를 더 사다 먹을 수 있습니다. 3~4년뒤면 아낀 돈만으로도 해피해킹 키보드를 구매할 수 있을 겁니다.

훗날 블로그가 커지고 데이터가 많아지면 별도 서버로 분리해내기도 어렵지 않습니다.

워드프레스 관련 포트폴리오용 사이트를 구축하시는 개인, 프리랜서라면 서로 다른 테마와 플러그인을 사용한 여러 워드프레스 사이트를 클라이언트에게 보여줘야할 필요성이 있을 텐데 이 경우에도 도움이 되지 않을 까 생각합니다.

WordPress Multisite Network (워드프레스 멀티사이트)와 직접설치에 관하여…

하나의 서버에 둘이상의 사이트를 호스팅하기위해  Wordpress는 ‘멀티사이트(네트워크)‘라는 기능을 제공합니다. 하지만 먼저 밝히건데, 제가 이번 연재작에서 기술하게 될 ‘한 서버에 두 개 블로그 직접설치 및 세팅하기‘는 그 멀티사이트와는 다릅니다. 제 경우 말그대로 두 개의 워드프레스를 한 서버에 설치하는 것 뿐입니다. 처음으로 두개이상의 블로그,쇼핑몰을 구축하려고 한다면 멀티사이트를 먼저 알아보시는게 좋을 수 있습니다.

구축과 관리의 통합적인 난이도는 서로 비슷하거나 멀티사이트가 좀 더 어려울 수 있다고 개인적으로 생각합니다. 멀티사이트처럼 통합관리는 관리의 복잡성이라는 비용을 추가로 요구하니까요. 반면 저처럼 직접설치를 통해서 완전히 서로다른 블로그를 한 서버에 올리는 건 여러분이 평소 아시는대로 독립된 두 개 사이트를 관리하는 것일 뿐입니다.

제가 설치하는 방법이 멀티사이트를 압도하는 큰 장점이라고 할만한 건 특별히 없습니다. 그럼에도 불구하고 이글을 쓰는이유는 검색해보면 멀티사이트를 추가하는 방법은 많이 나오지만 저같은 방법을 잘 정리한 글은 찾기 힘들었기에 제 블로그에 남겨두기로 했습니다. 특히나 AWS 라이트세일에서 기본으로 바로 설치할 수 있는 워드프레스는 bitnami 가 만들어둔 설치이미지라서 아파치 설정파일 위치가 일반 워드프레스와는 조금 다르기도 하고요. 

이 과정에서 mySQL 데이터베이스와 워드프레스의 관계에대해서도 간단히 알 수 있는 계기가 될 것이고, 아파치 웹서버의 포트(PORT) 설정을 통해 서버로 들어오는 두 개이상의 도메인(혹은 서브도메인)을 어떻게 각각의 워드프레스에 연결해주는지도 알 수 있게 됩니다. 서버관리라는 ‘호기심 충족’의 측면에서 읽어 볼만 하실 것같습니다. 혹시 또 모르죠. 차 후 한 서버에 두 개의 서로다른 멀티사이트 네트워크를 한 서버에 구축할 때 유용하게 될런지도요.

워드프레스의 멀티사이트기능에는 몇가지 장점과 단점이 있습니다. 구글에서 검색되는 많은 블로거들이 이에대해 기술하고 있으니 검색해보시고 자신의 쓰임새가 멀티사이트를 더욱 필요로 한다면 그에 따르시고 별상관없다면 제 방법을 따라 설치하셔도 되겠습니다. 만일 여러분이 첫번째 워드프레스 사이트를 멀티사이트로 운영 중에 단지 또 다른 사이트를 같은 서버에 추가 설치하고 싶은 경우에도 제 방법이 도움이 될 겁니다. 

이제 첫번째 단계로 DB준비와 워드프레스를 다운받고 설정을 위한 연재작 다음글을 참고하시기 바랍니다.

14 댓글

  1. 스위프트님 안녕하세요. 많은 도움을 받고 있습니다. 감사합니다.
    궁금한 점이 있습니다. 저는 메인사이트를 (pc 버전) 서브도메인을 (mobile 버전) 으로 만들어서 두 사이트가 사용자 정보라던지 내용을 공유하도록 하고 싶습니다. 기본적으로 k보드를 사용하여 커뮤니티 형식의 사이트를 제작하려고 하는데요.
    이 경우에 스위프트님이 알려주신 방법대로 했을 경우 제가 원하는대로 정보가 서로 공유되는지 궁금합니다.
    어떤게 더 깔끔하게 될 지 가닥이 잡히면 그 쪽으로 가려고요^^

    • 첨언)
      게시판의 내용은 k보드에서 숏코드를 통해 공유되도록 지원합니다.
      워드프레스 간에(사이트 간에) 정보 공유가 궁금합니다.

    • 어떤 정보인지는 모르겠으나, 두 사이트(두개의 DB)가 정보를 공유하는 것은 어려움이 있습니다. PHP 개발자가 필요한 부분이죠.


      PC버전과 Mobile 버전을 나누기위한 것에대한 첨언.
      어떻게 구현할지는 차치하고, 단순히 어떤 사이트에 대한 PC버전과 Mobile 버전을 따로 하기위해서 DB 자체를 나누거나 워드프레스를 두개 설치하는 등은 매우 비효율 적이고 그렇게 접근하는 경우는 없을 겁니다. 완전히 서로 다른 성격의 사이트 사이에서 정보공유라면 몰라도 말이죠.

      PC버전과 Mobile 버전의 차이점은 고작해야 겉모습정도일 뿐일텐데요. 이것은 CSS를 나누는 문제이지 HTML이나 DB 분리해야할 경우는 거의 없을 겁니다.

      워드프레스의 대부분의 무료, 유료 테마는 PC버전과 Mobile 버전이 통합되어있는 ‘반응형 웹디자인’을 사용합니다. 그래서 대부분의 경우엔 별도로 PC버전과 Mobile 버전을 따로 나눌 필요가 없습니다(도메인도 하나로 사용).


      그리고 두 사이트간의 정보공유라는 것이 패밀리 사이트 개념을 원한다면 워드프레스의 멀티사이트 기능을 사용하는 것을 고려해보세요.

      • 스위프트님 답변 감사합니다.

        저는 게시판 기반의 한국형 커뮤니티 홈페이지를 만들고 있습니다.
        말씀해주신대로 요즘 테마들이 반응형 모바일 레이아웃을 제공하지만 마음에 들지가 않아서요 ㅠㅠ
        (CSS를 나눠서 적용하면 되는지도 지금 알았네요.. 알아도 문제인 것이 그걸 짜서 적용할 실력이 없고요 ㅠㅠ)

        그래서 제가 생각한 게 요즘 많은 사이트에서 서브도메인으로 m.xxx.xx 이렇게 모바일로 접속했을 시에 보여주는 페이지가 따로 있는 것에 착안해서 워드프레스 멀티사이트를 이용하여 본 도메인 사이트를 PC버전으로 주고 서브도메인에 모바일용 사이트를 내용은 같고 레이아웃만 알맞게 만들어서 모바일 접속시즈 서브도메인으로 들어가도록 하려고 했습니다.. (말씀해주신 대로 이게 너무 비효율적일까요??ㅠㅠ)

        게시판 자체 기능상 워드프레스 멀티사이트 내에서 호환이 된다는 점(한 개의 게시판으로 다수의 사이트에서 이용 가능 / 가장 처음에 게시판이 설치된 사이트 DB에 정보가 저장되고 그걸 멀티사이트에서 사용할 수 있게 해주는 구조 같아요. )
        위의 1번을 가능하게 하려면 “싱글사인온(SSO)” 혹은 쿠키를 공유하진 못해도 회원정보 싱크를 자동으로 맞춰주는 것이 되어야 합니다. (회원 정보 DB 공유 / 이것은 멀티사이트에서 되는 것으로 압니다..)
        그래서 1,2번을 고려한다면 워드프레스 멀티사이트 기능을 이용하는 게 좋을지 스위프트님이 말씀하신 한 서버에 여러개의 워드프레스를 돌린다는 개념이 유리할지가 궁금했습니다.

        마지막 코멘트 “그리고 두 사이트간의 정보공유라는 것이 패밀리 사이트 개념을 원한다면 워드프레스의 멀티사이트 기능을 사용하는 것을 고려해보세요.” << 이게 답이라는 생각이 들었습니다만.. 한 번 더 여줘봅니다!!

        친절한 블로그 설명들과 이 댓글도 너무 감사합니다

        • 결론부터 얘기하자면, 같은 사이트의 모바일버전을 보여주기위해서 서브도메인을 사용한다고해도 별도의 워드프레스를 설치하는 건 매우 비효율적인 방법입니다. 그리고 대부분의 워드프레스 테마는 그렇게 별도의 서브도메인으로 모바일 버전을 보여주는 상황을 상정하고 디자인되지 않습니다. 왜냐하면 말했듯 테마가 반응형 CSS를 사용하므로 별도의 모바일버전 사이트가 불필요하기 때문이죠. 이는 매우 효율적인 것입니다.

          사실 m.~.com 같은 모바일 사이트는 스마트폰이 출현하면서 화두가 된 모바일 화면에 대응하기위해 자구책으로 사용된 방법에 지나지 않습니다. 적응형이나 반응형 웹디자인이라는 해결책이 나오고 표준화되기까지 말이죠. (웹표준을 결정하는 협회가 대체로 수년은 더딥니다).

          문제는 반응형이 만능일지라도 모두를 만족시키진 않는 다는 거죠. 저 역시도 반응형 일색인 워드프레스 무료,유료테마가 100% 마음에 들진 않습니다. 시간과 열정만 따라준다면 제마음대로 바꾸고 싶은 마음이 크죠. 하지만 그러기엔 제가 직접 테마를 개발하지 하지 않는 이상 테마 업데이트때마다 호환성도 문제고, 직접하기엔 고려해야할 것들도 많고 그냥 주어진 테마를 쓸 뿐이죠.

          어쨌든 이런 반응형이 대세인 워드프레스에서 CSS가 동작하는 방식을 바꾸기위해서는 테마개발을 직접하거나 의뢰하는 수밖에 없습니다.


          웹 디자인에대해서:
          실질적인 도움은 안되겠지만 웹디자인에대해서 말해보자면,
          CSS 디자인은 시간이 흐르며 정적 웹디자인(2000년 초)에서부터 적응형과 반응형(현재) 웹디자인까지 변화해왔습니다.
          -정적 웹디자인 :인터넷 초창기에 사용된 고정방식
          -유동형 웹디자인 : 레이아웃은 바뀌지 않지만 폭이 바뀜에따라 텍스트가 줄바뀜하며 흐르는 디자인
          -적응형 웹디자인 : 웹브라우저 종류에따라서 CSS(디자인) 뿐만아니라 HTML(콘텐트)도 나누는 개념)
          -반응형 웹디자인 : 하나의 CSS로 모든 폭에 대응해 레이아웃과 디자인이 변경됨

          정적과 유동형은 과거유물이고 적응형과 반응형이 현재상황입니다.

          또한 모바일 디자인 대응을 위한 CSS 적용 방식으로 다음 3가지로 나누어 생각해볼 수 있습니다.

          -반응형 웹디자인 (구글 권장)
          -동적 게제
          -별도 URL

          여기서 ‘동적 게제’는 CSS(또는 HTML도 함께) 파일을 로딩하기전에 접속해오는 웹브라우저의 User Agent에따라서 정해진 CSS파일을 서로 다르게 로딩시키는 방식입니다. (User Agent란, 웹브라우저가 서버에 제공하는 웹브라우저 이름과 같은 것인데 크롬, 사파리등 모바일,데스크탑 웹브라우저의 종류와 버전번호로 구분됩니다.)
          적응형 웹디자인의 경우 동적 게제를 사용하는 방식이죠.
          개인적으로는 사자공님께서는 동적 게제방식으로 PC와 모바일 버전 디자인을 달리하는게 가장좋고 그나마 쉬운 방법이라고 생각합니다.

          별도 URL방식이 m.~.com처럼 서브도메인으로 나누어 별도 사이트로 모바일 화면을 만드는 방식인데 이것은 CSS 로딩방식이 다르다기보다는 앞서 말했듯 스마트폰 출현 초창기 과도기의 산물입니다.
          별도 URL방식이 어쩌면 구분상쉬워보일 것인게 당연하지만 사실은 더 어렵고 복작합니다. 단순히 사이트 2개(www.~.comm.~.com)를 만드는 것으로 끝낼 수 없기때문입니다. 도메인관리부터 콘텐츠관리까지 유지보수가 배로 늘어나기도 하죠.
          그리고 고려해야하는 사항중에 중복URL이라는 게 있습니다.


          중복URL 통합에 대해서:
          도메인구분상 메인도메인이 같더라도 http://https://가 서로 다른 사이트이고, www.~.comm.~.com 또한 서로다른 사이트로 간주됩니다.
          같은 내용의 글이 두개의 서로다른 사이트에 존재하면 이것은 중복 콘텐츠가 됩니다. 중복 콘텐츠가되면 콘텐츠 복제사이트 블랙리스트에 들어가거나 검색결과에 반영되지 않는등 불이익이 생깁니다. 그렇기 때문에 HTTPS 적용사이트나 별도의 모바일을위한 URL을 가진 사이트는 이 중복URL을 통합해줘야하는데요.

          ‘이 웹페이지의 원본주소는 ~이다’
          ‘~이 웹페이지의 모바일버전 주소는 ~이다’
          와 같은 구분을 넣어서 검색봇에게 알려야하는 거죠. 모든 웹페이지에서 그렇습니다.
          이런 중복URL통합은 캐노니컬 태그( canonical url, 표준URL)라고 불리는 HTML 태그로 작성해줍니다.
          제 웹페이지도 소스를 살펴보면 헤더에 아래와같은 태그가 있습니다.
          <link rel="canonical" href="https://swiftcoding.org/installing-2wp">

          말했듯 http와 https가 서로다른 사이트로 간주되기때문에 캐노니컬 태그를 넣어준 것인데요. 단순히 https 지원은 일반적이기때문에 워드프레스 테마 개발자들이 이런 태그들이 자동으로 들어가도록 만들어뒀습니다. 그렇다면 별도 URL의 모바일 사이트를 만든다면 이런 캐노니컬 태그를 넣어주는 걸 직접 만들어줘야합니다.
          http://~.com
          https://~.com
          http://m.~.com
          https://m.~.com
          이 4개의 경우 모두 말이죠. 결국 테마를 재개발해야하죠.

          추가로 접속해오는 웹브라우저 User Agent에 따라서 모바일일때와 데스크탑일때를 분래해서 도메인 리다이렉팅도 해줘야겠죠.

    • 결론적으로 단지 PC버전과 모바일버전 디자인을 달리하기위해서 워드프레스를 두개 설치하거나 도메인을 두개로 나누는 것은 좋은 방법이 아닙니다.CSS만 수정하면 될일이죠.

      -테마의 기본 반응형 디자인이 마음에 안들면 반응형 CSS를 수정하거나
      -적응형웹디자인으로 CSS로딩을 별도로 하거나

      두가지 중 하나인데 결국 CSS를 직접 작성해야하는 건 매한가지입니다.

      • 스위프트님 상세하고 정성이 담긴 답변 정말 감사드립니다.

        댓글을 읽어보니 제가 지금 뭘 하려는 건지 알겠고..
        제 경우에 가장 효율적인 방법이 무엇인지도 알겠네요^^

        다만 말씀해주신 것처럼 제가 테마를 수정하거나 만들거나 CSS를 직접 작성하거나 등등을 할만한 실력이 없으니
        그런 상태에서 가능한 방법을 생각하다가 나온게 저 별도의 URL을 사용하는 것이었어요

        두번째 댓글에서 가르쳐 주신 두 방법을 좀 더 파보겠습니다.
        CSS를 직접 짤 실력은 안 되는데 이미 짜여있는 것 수정은 어느정도 하거든요 ㅎㅎㅎ

        다시 한 번 감사드립니다.

  2. 스위프트님 좋은 글 감사합니다.
    한 가지 질문이 있어 댓글 남깁니다.

    질문 1.
    하나의 인스턴스에 워드프레스 사이트를 몇 개까지 만들 수 있을까요?
    갯수에 제한이 있을까요?

    질문 2.
    저는 인스턴스에 도메인을 연결할 때 “라이트세일 홈 > 네트워킹 > DNS 영역 생성”에 들어가서
    [DNS 영역 생성]을 통해 도메인을 연결하고 있습니다.
    스위프트님의 글을 보면 DNS를 최대 3개까지 지원한다고 적혀 있었던거 같은데..
    그럼 도메인을 3개까지만 등록할 수 있다는 말인가요?

    즉, 한 인스턴스에 3개의 도메인만 등록할 수 있다는 의미일까요?

      1. 저도 안해봐서 모르겠어요. 이것은 컴퓨터 성능과 웹서버(아파치, nginx) 설정 문제라서요.

      2.생성할 수 잇는 DNS 영역이 3개라는 거지 인스턴스 제한은 아닙니다. DNS 영역과 인스턴스는 전혀다른 서비스입니다.
      예를 들어 3개의 DNS존 (3개의 도메인) 모두 하나의 인스턴스의 IP로 향할 수 있죠. 인스턴스 안으로 들어오는 도메인을 각각의 루트폴더로 나눠주는건 웹서버가 하는일입니다.

  3. 안녕하세요! 강좌 너무 잘보고 있습니다! 정말 감사드려요.
    한가지 막히는게 있어서 여쭤봅니다.혹시 LEMP로 한 서버에 블로그 2개 개설하는 방법에 대해 알려주실 수 있을까요?
    bitnami 방식대로 LEMP에 적용 시키려고 해봤는데 구조가 달라서 도메인 별로 워드프레스 루트폴더 지정 연결에서부터 막히더라구요 ㅠㅠ 이거때문에 밤을 새고 있네요..
    좋은 강의 만들어주셔서 감사합니다!

    • 저도 비트나미 구조를 별로 좋아하진 않아서 동감하는 문제네요 ㅎㅎ(쉬운 백업의 장점이 있지만 라이트세일에서 나갈꺼 아니면 의미가 없죠…)
      LEMP로 할경우 라이트세일 낮은사양으로는 안될꺼예요.
      하여간 LEMP로 할 경우는 nginx 라우터 설정이 관건이거든요.

      nginx 라우팅 설정글과 연재작 다음글등을 잘 읽어보고 개념을 익히신다음
      https://swiftcoding.org/nginx-routing

      아래 제가 썼던 라우팅설정을 참고해보세요

      ####################################
      #####            1st-site.com    HTTP                ##########
      ####################################
      ###### HTTP www.
      server {
          listen 80;
          listen [::]:80;
          server_name www.1st-site.com;
          ### .well-know/acme-challenge 폴더위치를 알리는 location 블록
          include /etc/nginx/snippets/letsencrypt.conf;
      
          location / {
              ###### HTTPS www로 리다이렉팅
              return 301 https://www.1st-site.com$request_uri;
          }
         }
      
      
      ###### HTTP
      server {
          listen 80;
          listen [::]:80;
          server_name 1st-site.com;
          ### .well-know/acme-challenge 폴더위치를 알리는 location 블록
          include /etc/nginx/snippets/letsencrypt.conf;
      
          location / {
               ###### HTTPS로 리다이렉팅
              return 301 https://1st-site.com$request_uri;
          }
      }
      
      
      ####################################
      #####  1st-site.com HTTPS      ###
      ####################################
      ###### HTTPS www.
      server {
          listen 443 ssl http2;
          listen [::]:443 ssl http2;
          server_name www.1st-site.com;
      
          ssl_certificate /etc/letsencrypt/live/1st-site.com/fullchain.pem;
          ssl_certificate_key /etc/letsencrypt/live/1st-site.com/privkey.pem;
          ssl_trusted_certificate /etc/letsencrypt/live/1st-site.com/fullchain.pem;
          include /etc/nginx/snippets/ssl.conf; ### SSL 보안설정 ssl.conf 파일 위치
      
          location / {
              return 301 https://1st-site.com$request_uri; ###### HTTPS로리다이렉팅
          }
      }
      
      ###### HTTPS 메인도메인(최종목적지)
      server {
          listen 443 ssl http2;
          listen [::]:443 ssl http2;
          server_name 1st-site.com;
      
          ssl_certificate /etc/letsencrypt/live/1st-site.com/fullchain.pem;
          ssl_certificate_key /etc/letsencrypt/live/1st-site.com/privkey.pem;
          ssl_trusted_certificate /etc/letsencrypt/live/1st-site.com/fullchain.pem;
          include /etc/nginx/snippets/ssl.conf; ### SSL 보안설정내용경로
      
          root /var/www/html/1st-site;
          index index.php index.html index.htm;
      
          location / {
              try_files $uri $uri/ =404;
              # 워드프레스 고유주소(permalink)를 기본(plain)에서 글이름(post name)등 다른걸로 바꾸었을 때 기존 글들이 404페이지가 되는 것 우회
             if (!-e $request_filename) {
               rewrite ^.*$ /index.php last;
             }
          }
      
      
          # SECURITY : Deny all attempts to access PHP Files in the uploads directory
          location ~* /(?:uploads|files)/.*\.php$ {
             deny all;
          }
      
          location ~ \.php$ {
              include snippets/fastcgi-php.conf;
              fastcgi_pass unix:/run/php/php7.2-fpm.sock;
              fastcgi_param SCRIPT_FILENAME $document_root$fastcgi_script_name;
              include fastcgi_params;
            #  504 Gateway Tiem-out 방지
              fastcgi_read_timeout 300;
          }
      
          location ~* \.(js|css|png|jpg|jpeg|gif|ico)$ {
           expires 24h;
           log_not_found off;
          }
      
      
          location ~ /\.ht {
              deny all;
         }
      }
      
      
      
      ###### 두 번째 사이트
      
      ####################################
      #####       2nd-site    HTTP   ##########
      ####################################
      
      ###### HTTP www.
      server {
          listen 80;
          listen [::]:80;
          server_name www.2nd-site.com;
          ### .well-know/acme-challenge 폴더위치를 알리는 location 블록
          include /etc/nginx/snippets/letsencrypt.conf;
      
          location / {
              return 301 https://www.2nd-site.com$request_uri;
          }
      }
      
      ###### HTTP
      server {
          listen 80;
          listen [::]:80 default_server;
          server_name 2nd-site.com;
      
          ### .well-know/acme-challenge 폴더위치를 알리는 location 블록
          include /etc/nginx/snippets/letsencrypt.conf;
      
          location / {
              return 301 https://2nd-site.com$request_uri; ###### HTTPS로 리다이렉팅
          }
      
      }
      
      ####################################
      #####     2nd-site      HTTPS   ##########
      ####################################
      
      ###### HTTPS www.
      server {
          listen 443 ssl http2;
          listen [::]:443 ssl http2;
          server_name www.2nd-site.com;
      
          ssl_certificate /etc/letsencrypt/live/2nd-site.com/fullchain.pem;
          ssl_certificate_key /etc/letsencrypt/live/2nd-site.com/privkey.pem;
          ssl_trusted_certificate /etc/letsencrypt/live/2nd-site.com/fullchain.pem;
          ### SSL 보안설정 ssl.conf 파일 위치
          include /etc/nginx/snippets/ssl.conf;
      
          location / {
            ###### HTTPS로리다이렉팅
            return 301 https://2nd-site.com$request_uri;
          }
      }
      
      ###### HTTPS 메인도메인(최종목적지)
      server {
          listen 443 ssl http2 ;
          listen [::]:443 ssl http2;
          server_name 2nd-site.com;
      
          ssl_certificate /etc/letsencrypt/live/2nd-site.com/fullchain.pem;
          ssl_certificate_key /etc/letsencrypt/live/2nd-site.com/privkey.pem;
          ssl_trusted_certificate /etc/letsencrypt/live/2nd-site.com/fullchain.pem;
          ### SSL 보안설정 ssl.conf 파일 위치
          include /etc/nginx/snippets/ssl.conf;
      
          root /var/www/html/2nd-site;
          index index.php index.html index.htm index.nginx-debian.html;
      
          location / {
              try_files $uri $uri/ =404;
             # 워드프레스 고유주소(permalink)를 기본(plain)에서 글이름(post name)등 다른걸로 바꾸었을 때 기존 글들이 404페이지가 되는 것 우회
             if (!-e $request_filename) {
               rewrite ^.*$ /index.php last;
             }
          }
      
      
      
          location ~ \.php$ {
              include snippets/fastcgi-php.conf;
              fastcgi_pass unix:/run/php/php7.2-fpm.sock;
              fastcgi_param SCRIPT_FILENAME $document_root$fastcgi_script_name;
              include fastcgi_params;
              #  504 Gateway Tiem-out 방지
              fastcgi_read_timeout 300;
          }
      
          location ~ /\.ht {
              deny all;
         }
      }
      
      
      
      
  4. 안녕하십니까?
    현재 단일사이트로 서브도메인을 만들어 운영하고 있는데 AWS Lightsail 에서 멀티사이트로 옮기려고 하니 수동 백업해서 이전하는게 너무 힘드네요. 이럴 경우 위 방법으로 진행을 하는게 가장 나을까요?

    • 현 상태와 변경하려는 상태가 이해가 잘안되는데요. 위 글은 독립적인 워드프레스 폴더 두개를 하나의 서버에 설치한것이지, 워드프레스의 ‘멀티 사이트’ 라고 불리우는 기능과는 다른방식입니다. 워드프레스의 ‘멀티사이트’는 DB 테이블 내용이 달라서 처음 설치할때 결정하는게 아니라면 많이 어려울 것같습니다.(일반 워드프레스와 멀티사이트 워드프레스는 데이터가 호환되지 않음)

      변경전이 2개의 사이트(메인도메인, 서브도메인)가 별도로 설치된 채 그냥 별개의 서버로 구성되어있고, 위 사례처럼 하나의 서버에 올리고 싶다면 위방법대로 2개를 설치해서 각각 하나씩 해주면 될 것같습니다. 기존의 데이터를 옮기는 작업의 경우 글을 하나씩 새로 적는 게 힘들다는 뜻이시라면, MySQL을 다룰 줄 아는 사람을 구해서 DB를 옮기는게 시간상으로 빠를 겁니다.

댓글은 익명이나 SNS, wordpress.com 로그인 지원). 마크다운 문법 사용가능(Shift+~ 키로 특정문구 혹은 위아래 ~~~으로감싸서 여러줄을 코드블락으로 작성)