- 4
- NUBE
- 조회 수 584
라이믹스에서는 모듈이나 애드온으로 서버 로그를 확인하기 쉬웠는데 NodeBB에서는 nginx 로그를 그대로 보여주다보니 하나하나 확인하기가 어렵더라구요.
해결책으로 goaccess라는 nginx 로그를 분석 툴을 설치했습니다.
다른 분석 툴도 많긴 한데 대부분 php를 사용하는 툴들이라... php를 추가로 설치하고 싶지 않아서 goaccess를 사용 중입니다.
분석한 내용을 html 파일로 출력하는 기능이 있어서 crontab으로 10분마다 갱신이 되게 설정했고, 출력된 html 파일에 링크를 지정해서 http://도메인.com/log/report.html 에 접속하면 확인할 수 있게 nginx 서버 블록에서 설정을 해줬습니다.
문제는.. 이럴 경우 http://도메인.com/log/report.html 경로로 접속하면 누구나 이 화면을 볼 수 있습니다.
NodeBB 외부의 파일이기 때문에 NodeBB에서는 이 파일의 접근 권한을 설정할 수가 없쥬..
그래서 이 파일 자체에는 접근 가능한 링크를 지정하지 않고, NodeBB 내에서 관리자만 접근 가능한 빈 페이지를 생성해서 iframe처럼 해당 파일의 내용을 불러오는 방법은 없을까 궁금합니다.
예를 들면 /var/www 폴더에 저장할 경우 report.html로 바로 접속이 가능한 링크가 없는 상태인데, 그런 상태의 파일을 불러오는 거죠.
현재는 이렇게 관리자만 접근 가능한 페이지에 iframe으로 삽입했는데, iframe으로 넣으면 어차피 소스에서 원본 파일 경로(http://도메인.com/log/report.html)가 다 보이기도 하고..
사이트 내에 다른 페이지에는 원본 파일로 연결된 링크가 없지만 요즘 사이트에 이상한 ip로 접속한 기록이 많다보니 어떻게든 찾지 않을까 싶어서 걱정이 되네요.
추천인 2
댓글 4
본문 이미지에서 iframe을 넣은 빈 페이지는 NodeBB 자체 기능이 아니고 플러그인을 통해 추가한 페이지라서, 해당 플러그인에서 report.html 파일을 fs 모듈로 불러오게 하면 코어는 수정하지 않아도 되겠네요.
YGL님께서 알려주신 방법과 OAUTH2님께서 알려주신 방법 둘 다 좋은 방법이라 두 방법 모두 시도를 해봐야겠어요ㅎㅎ
댓글 감사합니다!
nginx http auth request를 관리라 화면으로 설정하면 될듯 합니다.
https://nginx.org/en/docs/http/ngx_http_auth_request_module.html
권한이 없는 상태에서 관리자 메뉴에 접근하면 로그인 페이지로 redirect 되니까 이 방법으로도 가능하겠네요 ^~^
댓글 감사합니다!
제가 제대로 이해한 것이라면 노드의 내장 기능인 fs 파일 시스템을 이용하면 됩니다.