Infra (21) 썸네일형 리스트형 [uWSGI] max-requests 와 min-worker-lifetime uwsgi 는 설정에 따라 여러 개의 worker 프로세스로 동작한다. 이 과정에서 worker 프로세스의 memory leak 이 발생할 수 있다. 이러한 문제를 해결하기 위해서 특정 조건에 도달하면 프로세스를 삭제하고 재실행하는 설정이 있는데, 그 중 하나가 max-requests 이다. 이 글에서는 max-requests 에 대해서 정리한다.1. max-requestsmax-requests 는 이름 그대로 worker 프로세스가 처리할 요청의 최대개수를 설정한다. worker 프로세스는 요청을 처리하다가 요청의 개수가 max-requests 에 도달하면 해당 프로세스는 삭제되고 새로운 프로세스로 재실행된다. 이 과정을 통해서 해당 프로세스에 의한 memory leak 을 방지할 수 있다.2. max.. [Linux] CRLF vs LF 리눅스에서 쉡 스크립트를 실행하려고 하다보면 아래와 같은 에러가 발생하는 경우가 있다. $'\r': command not found 스크립트를 열어보면 다른 특수문자나 오타는 없는데 이러한 에러가 나는 것이 이상했다. 검색해보니 윈도우와 리눅스에서 사용하는 개행문자와 관련된 형식의 차이로 발생하는 문제였다. 이와 관련해서 이 글에서 정리해본다.1. CR + LFCRLF 는 Carriage Return (CR) 과 Line Feed (LF) 두가지 단어를 합친 용어이다. 이 용어들은 예전 타자기에서 유래한 단어로 타자기에서 한 줄을 다 친 후 종이를 한 줄 간격만큼 올려주는 행위 (LF, Line Feed) 와 커서를 맨 앞으로 돌리는 행위 (Carriage Return) 에서 기반한 용어이다. 프로그래밍.. [nginx] ssl 인증서 적용 특정 도메인에 https 로 접속하기 위해서는 서버에 ssl 인증서가 적용되어 있어야 한다. 이번에 ssl을 적용하는 서버는 앞단에 nginx 를 두어서 모든 요청이 nginx를 거치도록 하고있다. 이때문에 https를 사용하기 위해서는 nginx에 ssl 인증서를 적용해야 했다. 이를 위해서 다음과 같은 과정을 수행한다.1. ssl 인증서 키 확인ssl 인증서는 crt, cer, csr, pem 등등 다양한 형식을 가지고 있다. 이번에는 pem 형식의 ssl 인증서를 제공받아 이를 적용하게 되었다. ssl 인증서는 인증서 파일인 fullchain.pem 과 키 파일인 privkey.pem 으로 구성되어 있다. (파일 명칭은 달라질 수 있다.)2. nginx configuration 파일 수정ssl 인증.. [Linux] systemd, service, systemctl 리눅스 서버에서 시스템 서비스를 실행하기 위해 systemctl 또는 service 명령어를 사용한다. 이 글에서는 해당 명령어들이 어떤 의미를 가지고 어떻게 동작하는지, 시스템 서비스는 어떤 것들인지에 대해서 정리한다.1. systemdservice와 systemctl을 이해하기 위해서는 먼저 systemd에 대한 이해가 필요하다. systemd는 리눅스에서 PID 1번을 차지하고 있는 프로세스로 리눅스에서 실행되는 서비스, 데몬들을 관리하는 역할을 한다. 데몬이란, 사용자가 직접적으로 제어하지 않고 백그라운드에서 여러 작업을 수행하는 프로그램을 말한다. 리눅스가 부팅되면 네트워크 요청을 처리하는 데몬, 하드웨어 동작을 처리하는 데몬 등 시스템에 필요한 여러 데몬들이 실행된다. 리눅스에서는 이러한 데몬.. [Docker] hosts 파일과 docker-compose extra_hosts 도메인으로 서버에 접속시 이에 매핑되는 ip 주소로의 변환이 필요하다. 일반적인 경우 dns 서버를 통해 도메인 주소에 해당하는 ip 주소를 찾아와서 접속한다. dns 서버를 거치지 않고 로컬에서도 변환할 수 있는데, 이때 사용되는 것이 hosts 파일이다. docker-compose 를 기반으로 서버를 구축하면서 서비스 간의 통신을 위해 hosts 에 도메인을 등록하였다. 그런데 docker 서비스를 재시작 할 때마다 hosts 파일이 초기화 되면서 매번 수정을 해주어야 하는 불편함이 있었다. 이를 해결하기 위해서 docker-compose 의 extra_hosts 옵션을 사용했다. 이 글에서는 extra_hosts 옵션을 사용하면서 찾아본 hosts 파일과 extra_hosts 등의 내용을 정리한다... [Docker] Docker Root Directory (도커 스토리지) 변경 도커를 사용해서 개발을 하다보면 도커 이미지들이 계속해서 쌓이게 된다. 버전별로 빌드된 도커 이미지들은 작으면 몇 MB 에서 nvidia, gpu 와 관련된 이미지들의 경우에는 20GB 정도까지 용량이 커지곤 한다. 이러한 이미지들이 계속해서 쌓이면 로컬 디스크의 용량이 부족해지는 경우가 있다. 이 글에서는 이런 상황을 해결하기 위하여 마운트된 디스크와 같이 특정 위치로 도커 스토리지의 위치를 변경하는 법을 정리한다. 1. Docker Root Directory 도커 데몬은 도커와 관련된 파일들, 컨테이너 정보, 도커 이미지, 볼륨 정보, 서비스 정보 등등 도커와 관련된 정보들을 특정 디렉토리에 저장하여 사용한다. 이러한 디렉토리를 Docker Root Directory 라고 하는데 해당 디렉토리의 기본.. [Linux] 디스크 마운트 (fdisk, mkfs, mount, df) 서버의 디스크 용량을 확인하고 추가 디스크를 마운트 작업을 정리한다. 1. 디스크 상태 확인 서버의 현재 디스크 정보를 fdisk 명령어를 사용하여 확인한다. fdisk 명령어는 서버의 디스크 파티션 정보를 출력하거나 디스크 파티션을 조작하는데 사용하는 명령어이다. 아래와 같이 fdisk 의 l 옵션을 사용하여 디스크 파티션 목록을 확인할 수 있다. 디스크 파티션 조회 결과로 /dev/xvda 에 연결되어 있는 디스크와 /dev/xvdb 에 연결되어 있는 디스크 두가지를 확인할 수 있다. 이중에서 /dev/xvda 디스크는 /dev/xvda1 으로 파티션이 나누어 있지만 /dev/xvdb 디스크는 파티션이 설정되어 있지 않은 것을 확인할 수 있다. df 명령어로 디스크의 용량을 확인하면, 위의 이미지에서.. [Linux] 사용자 권한 (sudo, sudoers, chmod, chown) linux 서버를 사용하기 위해서 사용자 계정을 만들어서 사용하다보면 권한 문제에 부딪히게 된다. 서로 다른 사용자가 만든 파일에 접근하거나 시스템 설정 등을 위해서 root 권한이 필요하곤 하다. 이와 관련해서 sudo 권한과 파일의 권한을 조작하는 chmod, chown 등을 정리해본다. 1. sudo sudo 는 Super User DO 의 줄임말로 명령어의 앞에 붙여서 사용하는 명령어이다. 일반적으로 root 권한이 없는 사용자가 sudo 를 사용하여 superuser, root 권한으로 명령어를 실행할 수 있도록 해준다. 이를 통해서 시스템의 관리자 권한을 root 계정뿐만 아니라 여러명이 사용할 수 있도록 한다. - sudoers sudo 명령어가 어떤 명령을 실행할 수 있는지는 /etc/su.. 이전 1 2 3 다음