콘텐츠로 건너뛰기
  • 커뮤니티 공지사항을 소개합니다.

    1 토픽
    1 게시물
    askfrontA

    아직 준비 중인 포럼입니다. 그럼에도 불구하고 여러분의 참여에 감사드립니다.

    이 포럼은 누구나 자유롭게 질문하고 답변할 수 있는 공간입니다. 다만, 이용약관과 함께 아래 사항을 준수해 주시길 부탁드립니다:

    1. 검색엔진에 검색 답변 금지 많은 분들이 이미 정보가 아닌, 오래된 데이터로 인해 어려움을 겪고 있습니다. 또한, 처음 접하는 분들은 낯선 것은 어렵게 느껴지기도 하고, 어떤 것을 질문해야 할지 모르는 경우가 많습니다.
    따라서 용기를 내어 질문한 분들을 격려하고자 합니다.

    저는 모든 분들이 충분한 지식을 가지고 있다고 믿으며, 충분히 합리적으로 검색을 이미 시도했을 것으로 가정합니다.
    또한 눈치채지 못한 부분도 질문하는 과정에서 알게될 수 있고, 답답한 마음에 생각나지 않는 경우도 많습니다.

    이에 따라 검색을 권장하는 답변은 자제해 주시기 바랍니다.

    2. 적극적으로 외부의 링크 혹은 자료를 사용 본 포럼은 순전히 관리자의 편의를 위해, 마크다운을 지원하는 CMS로 선택했습니다. 아무리 온몸 비틀기를 해봐야, 가장 편한게 마크다운인 것 처럼 느껴졌습니다.
    (또한 유연하게 참조를 설정하고, 사용자를 언급할 수 있으며, 병합할 수 있는 등 Github와 많이 유사합니다.) 관리자도 자기 마음대로 하는데, 사용자도 자기 마음대로 할 수 있어야지요 :) 외부 링크를 걸어도 되는지 물어보지 않으셔도 됩니다.
    본 포럼은 모든 상황에서 유연하게 대처할 수도 없고, 하고 싶지도 않습니다.
    따라서 이용자 분들이, 더 편한 방법이 있다면 물어보지 마시고 바로 사용하세요.

    설명하기 위한 Github, Gist 전부 환영입니다. 외부 이미지 링크 전부 환영입니다.
    다만 너무나 당연하지만, 저작권과 관련된 사항은 반드시 준수해야 합니다.

    고맙습니다.

  • 서버뿐만 아니라 무엇이든 이야기할 수 있는 공간입니다.

    18 토픽
    58 게시물
    navystackN

    @busker 맞습니다.
    미션크리티컬 하게 가용성이 중요한게 아니라면, 정상종료가 중요합니다.

  • 도커에 관한 자유로운 공간입니다.

    8 토픽
    28 게시물
    hojin0716H

    @navystack 조언 감사합니다 ㅎㅎ
    그래도 크게 문제 없었다는게 정말 다행이네요

  • 리눅스에 관한 자유로운 공간입니다.

    4 토픽
    8 게시물
    navystackN
    WSL2 실제 가상하드디스크 위치는 어디일까?

    아래의 명령어를 통해서 WSL2 디스트로 이름을 찾습니다.

    wsl --list --verbose NAME STATE VERSION * Ubuntu Stopped 2 docker-desktop Stopped 2

    이렇게 나오면 Ubuntu를 사용하시면 됩니다.

    아래의 명령어를 통해서 파일 경로를 추출합니다. 디스트로부분을 내가 원하는 (혹은 위에서 찾은) 디스트로로 바꿔주시면 됩니다.

    [PowerShell에서]

    (Get-ChildItem -Path HKCU:\Software\Microsoft\Windows\CurrentVersion\Lxss | Where-Object { $_.GetValue("DistributionName") -eq "디스트로" } | ForEach-Object { $_.GetValue("BasePath") }) + "\ext4.vhdx"

    디스트로의 이름이 Ubuntu라면 아래와 같은 명령어를 사용하시면 됩니다.

    [PowerShell에서]

    (Get-ChildItem -Path HKCU:\Software\Microsoft\Windows\CurrentVersion\Lxss | Where-Object { $_.GetValue("DistributionName") -eq "Ubuntu" } | ForEach-Object { $_.GetValue("BasePath") }) + "\ext4.vhdx" C:\Users\navystack\AppData\Local\Packages\CanonicalGroupLimited.Ubuntu_79rhkp1fndgsc\LocalState\ext4.vhdx 늘어날 때는 자동이지만 반환은 아니란다 (vhdx, Optimize-VHD)

    WSL2에서는 용량은 제한선 안에서 자동으로 늘어나지만, WSL2에서 용량을 비워도, 가상하드디스크 파일은 줄어들지 않습니다.
    따라서 수동으로 줄여주어야 합니다.

    백업 권장: 작업 전 중요한 데이터는 백업하세요. 비정상 종료나 손상 가능성을 대비해야 합니다.

    디스크 축소 조건: WSL2 내에서 가상 디스크를 축소하려면 사용하지 않는 공간이 실제로 존재해야 합니다. 필요 시 WSL2 내에서 다음 명령어로 사용하지 않는 공간을 미리 정리해야합니다.

    [WSL2에서]: 시간이 조금 걸립니다. 인내심을 갖고 기다려주세요.

    sudo dd if=/dev/zero of=/zero bs=1M sudo rm /zero

    그 다음, 아래의 명령어를 통해서 WSL2를 종료합니다.

    [PowerShell에서]

    wsl --shutdown

    PowerShell에서 다음 명령어를 실행하여 가상 디스크 파일 크기를 축소합니다.

    Optimize-VHD -Path "C:\Users\<YourUserName>\AppData\Local\Packages\<배포판 패키지 이름>\LocalState\ext4.vhdx" -Mode Full

    제 환경의 위치는 아래와 같았으므로,

    C:\Users\navystack\AppData\Local\Packages\CanonicalGroupLimited.Ubuntu_79rhkp1fndgsc\LocalState\ext4.vhdx Optimize-VHD -Path "C:\Users\navystack\AppData\Local\Packages\CanonicalGroupLimited.Ubuntu_79rhkp1fndgsc\LocalState\ext4.vhdx" -Mode Full

    위와 같이 되겠네요.

    실행하시면 사용하지 않는 공간을 반환해서 다시 널널해 집니다.

  • 5 토픽
    25 게시물
    B

    노드 커뮤니티에 postgres보다 mongodb에 더 자신있다고 개발자가 쓴 글을 본적 있어요.
    redis는 Scaling NodeBB 할때 꼭 필요한 것 같아요.

    nodebb 자체가 redis를 염두해두고, MongoDB로 옮긴건데 Postgres가 나중에 끼워진 모양새라서요...

    추가 경험담 기록으로 남깁니다.

    동영상 업로드 어려움
    nodebb-plugin-link-preview 플러긴이 링크 미리보기나 유튜브 링크는 멋지게
    보여주나 mp4 재생은 불가. 몇가지 동영상 재생 플레이어가 있긴 하나 오래된 버전 같음.
    _ 페이지네이션 느림
    20만건 글 등록하고 테스트 했어요.(페이지당 topic 20, posts 20 설정)
    맨 처음 페이지를 누르면 꽤 오랜 시간동안 로딩이 안되더라구요
    Slow query 로그 살펴보니 skip/limit 구문으로 하는데,
    이 방법이 도큐먼트가 증가할수록 느려진다고 합니다.
    참고: mongdb에서 페이지네이션1, 페이지네이션2
    _ nodebb 업데이트 속도 빠름
    개발팀의 열정도를 반영하는 증거이나 SSH에서 명령어로 수동업데이트 과정이 좀 번거로움
  • 2 토픽
    4 게시물
    navystackN

    분위기에 맞게 조금 더 부드럽게 번역해 보았습니다.

    ZeeNuNew 2nd photo book 1에서 @duuni 님이 말했습니다:

    The moment I can feel at ease is when you pull me so close that I can lean my head on your shoulder.

    제가 편안함을 느끼는 순간은 어깨에 머리를 기댈 수 있을 정도로 가까이 끌어당길 때입니다.

    ZeeNuNew 2nd photo book 1에서 @duuni 님이 말했습니다:

    I adore every moment when you come close, wrap your arms around my waist, and smile at me.

    당신이 가까이 다가와 제 허리에 팔을 감싸고 미소 지을 때 그 모든 순간이 너무 좋아요.

  • 1 토픽
    1 게시물
    navystackN

    이 글에서는 Let's Encrypt에서 제공하는 TLS/SSL 인증서를 사용하여 PostgreSQL 서버를 설정하는 방법을 설명합니다.

    1.postgresql.conf 파일 준비하기

    postgresql.conf의 파일은 git clone으로 진행하시면 하실 필요가 없습니다. (덮어 쓰기가 됩니다.)

    전체 코드는 Github NavyStack/pgsql-docker에서 확인하실 수 있습니다.

    docker run -i --rm postgres cat /usr/share/postgresql/postgresql.conf.sample > postgresql.conf 2.인증서 준비하기 2.1 클라우드플레어 API 키 준비하기 (해당하는 경우) (CF_Token)

    클라우드플레어 API 키 발급 페이지로 이동하여 API키를 발급합니다.
    brave_GhZ5pebzcC.png

    brave_cIYflMqJrV.png

    brave_57yMMR2Fns.png

    그 후,

    export CF_Token="<token>" 2.2 클라우드플레어 계정 ID 확인하기 (해당하는 경우) (CF_Account_ID)

    클라우드플레어 대시보드에 접속하면 주소창 주소의 끝에 CF_Account_ID가 나옵니다.
    brave_SttMF40E5R.png
    그 후,

    export CF_Account_ID="<id>"

    acme.sh 를 통해서 발급 할 것이므로 ACME.SH를 설치합니다.

    curl https://get.acme.sh | sh -s email=admin@askfront.com

    Code_lmBJxxZnFO.png

    source /home/$USER/.bashrc acme.sh

    Code_FDYDHBWebB.png

    2.인증서 발급하기 acme.sh --issue --dns dns_cf -d heno.kr -d *.host.heno.kr --force --server letsencrypt

    Code_a3LeenFhzQ.png

    3. postgres 컨테이너 올리기 3.1. postgresql.conf 파일을 인증서의 경로 및 파일이름에 맞게 수정합니다.

    기본적으로 전부 주석처리 되어있으므로 파일의 원하는 곳에 입력합니다.

    ssl = on ssl_cert_file = 'fullchain.cer' ssl_key_file = 'heno.kr.key' ssl_prefer_server_ciphers = on 3.2. pg_hba.conf 파일을 필요에 따라 수정합니다.

    기본적으로 전부 주석처리 되어있으므로 파일의 원하는 곳에 입력합니다.

    hostssl all all 0.0.0.0/0 md5 docker-compose.yml 파일을 적절하게 수정합니다. services: postgres: container_name: postgres_container image: postgres:16-bookworm ports: - 5432:5432 volumes: - ./data:/var/lib/postgresql/data - ./logs:/var/log/postgresql - ./postgresql.conf:/var/lib/postgresql/data/postgresql.conf # - ./pg_hba.conf:/var/lib/postgresql/data/pg_hba.conf - /home/ubuntu/.acme.sh/heno.kr_ecc/heno.kr.key:/var/lib/postgresql/data/heno.kr.key - /home/ubuntu/.acme.sh/heno.kr_ecc/fullchain.cer:/var/lib/postgresql/data/fullchain.cer - /var/lib/pgsql/data environment: - POSTGRES_DB=postgres - POSTGRES_PASSWORD=postgres - POSTGRES_USER=postgres - PGDATA=/var/lib/postgresql/data - PGSSLMODE=require docker compose up -d 4. Postgres 접속하기

    dbeaver_0yAXG6P6T1.png

    dbeaver_RJmqwM7fwO.png

    dbeaver_xYTQCcXYX0.png

    dbeaver_fpNKXKuw5R.png

    아래의 SQL문을 실행해서 TLS로 연결중인지 확인합니다.

    SELECT * from pg_catalog.pg_stat_ssl

    PostgreSQL의 자체적인 접속을 포함해서 나오네요

    조금 더 자세하게 보려면 아래의 SQL 문을 실행합니다.

    SELECT ssl.pid, usename, datname, ssl, client_addr, backend_type, wait_event FROM pg_catalog.pg_stat_ssl ssl, pg_catalog.pg_stat_activity a WHERE ssl.pid = a.pid

    dbeaver_Lv90LvALoZ.png

  • 0 토픽
    0 게시물
    새로운 게시물이 없습니다.
  • 포럼에 대해 질문이 있으세요? 물어보세요!

    3 토픽
    7 게시물
    B

    @navystack 님도 편안한 밥 되세요

  • 사용자의 블로그 글 카테고리

    0 토픽
    0 게시물
    새로운 게시물이 없습니다.