기존에 원룸에서 살 때에는 이 블로그도 그렇고 개인 gitea도 리버스프록시를 시놀로지 NAS 기능으로 하고 있었는데 NAS가 이런 역할까지 하는 건 좀 아닌 것 같아서 놀고있던 라즈베리파이에 nginx를 올려서 라즈베리파이가 리버스프록시 역할을 하도록 바꾸는 작업을 진행했다.
리버스프록시 역할을 하던 나스가 주에 두 번씩 재부팅을 하도록 해놔서 사실 그때는 블로그에도 접속이 안되고 그렇기 때문에(글도 잘 안쓰긴 하지만) 해야겠다해야겠다 하다가 이사한지 한달이 지나서야 드디어 함
내가 하나하나 알아보면서 진행하면 되는데 그건 귀찮으니 클로드에게 물어보면서 했는데 시발 이렇게 해도 몇시간이 걸림;; 내가 잘 설명을 안한 것도 있는데 이놈이 내가 아는거랑 다르게 말해서 이거 이거이거 아님? 하고 물으니 아 그렇지! 이지랄 하는데 시발 바이브코딩은 어떻게 믿고 맡길 수 있는지 모르겠음
블로그
블로그는 사실 할 게 없다. 웹페이지는 그냥 리버스프록시로 넘기기만 하면 되기 때문에;
gitea
얘는 페이지는 리버스프록시로 넘기는데 ssh를 쓰려면 그 포트는 공유기에서 nginx를 안거치고 바로 연결해야한다. 사실 원래 그렇게 되어 있었기 때문에 별로 수정할 필요가 없다.
keycloak
얘가 문제였다. 인증/인가를 위해서는 public으로 노출해야해서 이건 그냥 리버스프록시 설정을 바꾸면 되는건데, 관리자패널은 외부에 노출하면 안되기 때문에 원래는 호스트네임을 나눠서 admin쪽은 안여는 걸로 했었는데, 사실 이걸 그대로 뒀으면 그 주소로는 접근이 어렵기때문에 /admin 으로 접근하도록 어드민 호스트네임을 설정하지 않고, nginx 내에서 로컬 IP 이외에는 접근이 안되도록 했다. 근데 이렇게 하면 DNS 서버를 경유해서 들어오기때문에 로컬에서도 도메인으로 접근이 안된다. 그래서 이런 경우에는 로컬 컴퓨터의 호스트 설정에(/etc/hosts 같은) keycloak이 올라와있는 장비로 설정해주면 잘 된다.
NAS가 리버스 프록시 역할을 하게 한 이유 중 하나는 DDNS고 다른 하나는 인증서 관리인데, 이 부분은 확실히 클로드의 도움을 많이 받았다.
그런데 내가 바로 직전에 porkbun DNS 쓰다가 클라우드플레어로 옮긴걸 까먹어서 certbot이 acme challenge에서 자꾸 실패해서 좀 시간을 허비했다.
확실히 좋아진건 시놀로지에서 인증서 자동 업데이트는 자기네 도메인만 해주기 때문에 내가 산 도메인은 인증서 만료된 다음에 내가 확인하다 어? 업데이트 해야겠는데? 해서 업데이트 했었는데, certbot을 이용해서 이걸 12시간마다 갱신하도록 해서 이제 내가 신경 안 써도 된다는 것이다. (사실 하려면 나스에 스크립트 올려놓고 주기적으로 실행하게 하면 되긴 한데 귀찮아서 안한것도 있다)
원래는 라즈베리파이4에 하려고 했는데 얘는 전원버튼도 없고, 연결하려고 켜봤더니 공유기랑 연결이 안되어서 라즈베리파이5를 써서 진행했다.
라즈베리파이5 램이 16기가에 512기가 SSD도 박힌 놈이라서 여기에 뭔가 하나 더 올려놔도 될 듯 .
끗.
답글 남기기