CS/Linux
24. 11. 4. 개발일지 // 자동배포, nginx 설정
* 자동배포 구현github 세팅 > Actions에 .pem 의 내용 붙여넣기주의 : 이때 .pem은 root 계정의 비밀번호 확인전용, 이것으로 로그인불가!추가로 user명/.ssh/auth 에 공개키 방식으로 추가 키 생성필요!ec2에 node 설치 (ssh 원격접속후)sudo apt-get update && /sudo apt-get install -y ca-certificates curl gnupg && /mkdir -p /etc/apt/keyrings && /curl -fsSL https://deb.nodesource.com/gpgkey/nodesource-repo.gpg.key | sudo gpg --dearmor -o /etc/apt/keyrings/nodesource.gpg && /NODE..
[Linux] OS 비교
각 서버 OS의 장단점을 비교하고 상황별 최적의 선택을 설명해드리겠습니다.graph TB subgraph "Linux Based" Ubuntu[Ubuntu빠른 업데이트큰 커뮤니티] CentOS[CentOS안정성기업용] Rocky[Rocky LinuxCentOS 대체제RHEL 호환] end subgraph "Others" Windows[Windows Server.NET 환경GUI 관리] NaviX[NixOS선언적 구성재현 가능한 배포] end DevOps[DevOps 환경] --> Ubuntu Enterprise[기업 환경] --> CentOS Migration[RHEL 마이그레이션] --> Rocky ..
24. 9. 11. 개발일지 / 자동배포, git, 구조분해할당 , \r 명령어를 찾을수 없음 해결
* 자동배포private 저장소 가져오기방법1 : ssh 이용방법2 : 토큰이용 (보안 issued) 보안이슈가 있지만 1번이 잘 안되기도 하고 연습용으로 방법2로 진행함(애초에 서버에 접근가능해서 파일을 마음대로 읽을수있을 상황이면 이미 서버가 털린상황이라고 생각)chmod 700 /home/bisu/scripts/git-pass.shdeploy.sh 작성변경사항이 있는지 확인하는법 honux version#!/usr/bin/bash # by honuxcd dirgit reset --hardgit fetchLOCAL='git rev-parse HEAD'REMOTE='git rev-parse origin/J160'if [[ $LOCAL == $REMOTE ]]; then #가리키는게 같으면 변경사항이 없..
24.9.5. 개발일지 // virtual box에 배포하기 , nat, bridge, ufw방화벽, nginx
* virtual box에 배포하기먼저 nat와 bridge의 차이를 알야아한다.nat방식을 쓰면, 외부 클라이언트는 반드시 host pc(내 pc) 를 통해서만 가상 우분투에 접속 가능하다.따라서, 포트 포워딩이 필요하다.반면, 브릿지는 내pc와 동등한위치에서 직접 외부와 연결이 가능하다.간단한 브릿지 방식을 사용하고자 한다. * 내 환경확인우분투에서 ifconfig 결과 => 1.200.x.x로 나오는걸로봐서, 나는 공유기방식이 아니고 직접 isp와 연결된것으로 추측.즉, 3000번포트만 열어준후, 1.200.x.x:3000으로 접속하면 외부클라에서 내 우분투로 접속이 가능하다!+ listen 수정도 필요한듯 하다.//Node.js 애플리케이션이 모든 인터페이스에서 요청을 받을 수 있도록 설정합니다:..
[Linux] pw 없이 접속하기, ssh-keygen, 배포하기
* ip 별칭 생성하기ssh 접속할때마다 ip를 기억해야하는것은 너무 귀찮다.아래 파일을 수정하자sudo vi /etc/hosts이후 :wq => 변경사항 저장, 종료 * pw 없이 접속하기우선 내 컴퓨터에서 ssh-keygen을 생성한다.공개키를 복사해서 우분투에 보내야한다.id_ed.pub가 자물쇠 //공개키cyberduck을 사용해도 된다. for file전송이걸 cat/ssh/authorized_keys에 복붙 ( 윈도우 키를 "추가" 해야함) 덮어쓰기 하면 망함!대문을 하나 추가한 효과!!우리는 윈도우에 자물쇠(public key)에 맞는 열쇠(private key)를 가지고 있으므로 문이 열린다! * 우분투에 node js 최신버전 설치 * 프로젝트 git clone 하기, 실행하기* issu..
[Linux] 배포관련 아키텍쳐 best practice?
네, 좋은 접근 방식입니다. Nginx가 정적 파일을 처리하고 동적 요청만 WAS(Web Application Server)가 처리하는 구조는 매우 효율적이고 일반적으로 사용되는 아키텍처입니다. 이 구조를 개선하고 확장하여 더 강력한 아키텍처를 만들 수 있습니다. 다음은 개선된 구조와 그에 대한 설명입니다: [CDN] | v[Client] [Load Balancer] [Nginx] [Static Files] | | ..
[Linux] 원격 db 연결안됨 해결 //리눅스 포트 방화벽설정방법
* 원인 : 방화벽설정을 저장안함 * 해결 : accept 후 iptables-save로 저장함. * 문제 : 서버 재부팅시 다시 초기화됨 * 해결 : iptables-persistent 사용* 결과 * 방법2쉴스크립트 작성 && 네트워크 시작될때 해당 스크립트 실행!이방법도 재밌을것같다.
[Linux] DB 설치 && 개발환경 문제, 개발워크플로우
전제 : db는 원격 리눅스서버에 설치해야함* 방안 a : 리눅스 서버에 소스코드를 모두 옮기기* 방안 b : 개발은 로컬에서하고 db만 연결소스 코드 배치 방식 비교: a. 리눅스 서버에 JS 소스 코드를 모두 옮기는 방법: 장점: 애플리케이션과 데이터베이스가 같은 환경에 있어 네트워크 지연 최소화 배포 및 관리가 단순화됨 보안 설정이 더 쉬워짐 (외부에서 DB 직접 접근 불필요) 단점: 로컬 개발 및 테스트가 불편할 수 있음 서버 리소스 관리에 더 주의를 기울여야 함 b. 로컬에 JS 소스를 두고 리눅스 DB에만 연결하는 방법: 장점: 로컬 개발 및 테스트가 용이함 애플리케이션과 데이터베이스의 독립적인 스케일링 가능 개발 환경과 프로덕션 환경의 분리가 명확함 단점: 네트워크 지연으로 인한 성능 저하 ..