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

    1 토픽
    1 게시물
    askfrontA

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

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

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

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

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

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

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

    고맙습니다.

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

    11 토픽
    33 게시물
    hojin0716H

    <<<자세한 상황(요약있어서 안봐도 괜찮습니다)>>>
    사정이 생겨 나스를 기존에 있던 할머니 집에서 친구 집으로 이사를 가야하는 상황이 생겼습니다.

    최대한 준비한다고 방화벽 푸는 등 이것저것 했지만 어리석게도 내부망 수동설정을 풀지 않은 상태로 이사를 갔습니다. 그렇게되니 u+공유기를 쓰는 친구집에서 iptime 대역폭에 맞춰진 나스가 내부, 외부 접속이 되질 않습니다.

    그래서 처음엔 공유기 대역폭 수정을 하려 했는데 1시간 넘게 아무리 찾아도 u+공유기는 대역폭 수정이 없더라구요...;;;
    나스를 킬때 모니터에 연결해서 접속한 아이피대와 포트대로 접속해도 당연히 될리가 없고 (다른 될거같은 포트도 다 안됩니다 ㅠㅠ) 친구집에 오래 머무를 수 없는 시간상 새로 빌드하는 중간에 빠져나왔습니다.

    *요약

    나스 내부 주소를 수동설정으로 고정해둔 상태로 이사를 가게 됨. 이사갈 공유기 대역폭이랑 나스 수동설정된 대역폭이랑 맞지 않아 접속이 안되는데 공유기 대역폭 변경 불가능

    그래서 제가 생각한 방법은 기존에 쓰던 공유기를 잠깐 가져와서 나스 수동설정을 풀어주고 다시 친구네집 공유기로 바꿔서 세팅하려고 생각중입니다.
    그런데 공유기를 전혀 다른 환경에 둬도 사용이 가능한지 모르겠을뿐더러 더욱이나 내부접속이 될지는 전혀 모르겠어서 혹시 아시는분이 있을까 질문글을 올립니다.

    +저희집이면 이방법 저방법으로 막 해보겠는데 친구집이 방문을 자주할수 없어 확실한 방법으로 해결하고파 질문글을 올렸습니다 ㅠㅠ

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

    8 토픽
    28 게시물
    hojin0716H

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

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

    2 토픽
    3 게시물
    navystackN

    혹시 램디스크에 관심이 있으시다면 참고해보세요

    리눅스 RamDisk 램디스크 만들기
  • 2 토픽
    2 게시물
    navystackN

    Nodebb 성능 최적화를 위한 빠른 요약

    Nginx는 정적 파일을 직접 제공하고, 동적 요청은 Node.js 서버로 프록시

    location @nodebb { proxy_pass http://nodes; } location ~ ^/(assets|plugins)/(.*) { root /usr/share/nginx/build/public; try_files $uri /src/$uri @nodebb; } location / { try_files $uri @nodebb; proxy_pass http://nodes; }

    docker-compose.yml

    nginx: container_name: nginx-nodebb image: navystack/openresty:1.25.3 logging: driver: json-file options: tag: '{{.ImageName}}|{{.Name}}|{{.ImageFullID}}|{{.FullID}}' max-size: '10m' max-file: 100 restart: unless-stopped volumes: - nodebb-build:/usr/share/nginx/build - nodebb-uploads:/usr/share/nginx/public/uploads - ./nginx:/etc/nginx/conf.d/ - ./nginx-etc/nginx.conf:/usr/local/openresty/nginx/conf/nginx.conf networks: - internal - traefik-network depends_on: - nodebb

    default.conf

    upstream nodes { ip_hash; server nodebb-askfront:4567; keepalive 2; } server { listen 80; server_name _; more_set_headers 'Server: OCI-QUN'; set_real_ip_from 0.0.0.0/0; real_ip_header X-Forwarded-For; real_ip_recursive on; proxy_set_header X-Real-IP $remote_addr; proxy_set_header X-Forwarded-For $proxy_add_x_forwarded_for; proxy_set_header Host $http_host; proxy_set_header X-Forwarded-Proto https; proxy_hide_header X-Powered-By; proxy_hide_header X-Dns-Prefetch-Control; proxy_hide_header X-Download-Options; proxy_set_header Content-Disposition "attachment"; proxy_redirect off; proxy_http_version 1.1; proxy_set_header Upgrade $http_upgrade; proxy_set_header Connection "upgrade"; # Gzip Settings gzip on; gzip_disable "msie6"; gzip_vary on; gzip_proxied any; gzip_comp_level 1; gzip_buffers 16 8k; gzip_http_version 1.1; gzip_min_length 1024; gzip_types text/plain text/css text/js text/xml text/javascript application/javascript application/x-javascript application/json application/xml application/xml+rss image/svg+xml; # Brotli Settings brotli on; brotli_comp_level 6; brotli_static on; brotli_min_length 1024; brotli_types text/plain text/css text/js text/xml text/javascript application/javascript application/x-javascript application/json application/xml application/xml+rss image/svg+xml; location @nodebb { proxy_pass http://nodes; } location ~ ^/(assets|plugins)/(.*) { root /usr/share/nginx/build/public; try_files $uri /src/$uri @nodebb; } location / { try_files $uri @nodebb; proxy_pass http://nodes; } }

    upstream nodes: Node.js 서버의 업스트림을 정의.
    ip_hash는 세션 퍼시스턴스를 제공하기 위해 클라이언트 IP를 기반으로 한 서버로 트래픽을 라우팅

    server: HTTP 서버 블록을 정의. 포트 80에서 리스닝하며, 모든 도메인을 허용.
    (상황에 맞게 적절하게 수정)

    proxy_set_header: 프록시로 전달되는 요청 헤더를 설정. 실제 IP 주소와 포트, 프로토콜 등을 설정.

    proxy_hide_header: 프록시 응답에서 특정 헤더를 숨김.

    proxy_redirect: 프록시 리디렉션을 비활성화.

    gzip 및 brotli: Gzip 및 Brotli 압축을 사용하여 지정된 MIME 타입의 응답을 압축합니다. (nodebb 자체가 요청 횟수가 많으므로 최대한 적정한 크기만 압축)

    location 블록들: URL 경로에 따라 요청을 처리.

    location @nodebb: @nodebb라는 이름의 location 블록으로 요청을 전달.
    프록시 패스를 사용하여 Node.js 서버로 요청을 전달.

    location ~ ^/(assets|plugins)/(.*): 정규 표현식을 사용하여 URL 경로가 /assets/ 또는 /plugins/로 시작하는 요청을 처리.
    이 경우에는 정적 파일을 제공하기 위해 지정된 디렉토리에서 파일을 찾고, 없으면 Node.js 서버로 요청을 전달.

    location /: 기본적으로 모든 요청은 Node.js 서버로 전달. try_files 지시문을 사용하여 파일이나 디렉토리가 존재하지 않을 경우 @nodebb 블록으로 요청을 전달.

  • 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 게시물
    새로운 게시물이 없습니다.
  • 포럼에 대해 질문이 있으세요? 물어보세요!

    2 토픽
    4 게시물
    navystackN

    안녕하세요?
    답변이 늦어졌네요. 죄송하게 생각하고 있습니다.
    NodeBB 라고 하는 Node 기반 CMS입니다.
    Docker 사용한 도커이미지는 아래 깃허브에서 확인하실 수 있습니다. 🙂

    https://github.com/navystack/nodebb-docker

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

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