본문 바로가기

잡다

(44)
[nginx] Location Priority https://docs.nginx.com/nginx/admin-guide/web-server/web-server/#nginx-location-priority https://serverfault.com/questions/674425/what-does-location-mean-in-an-nginx-location-block Configuring NGINX and NGINX Plus as a Web Server | NGINX Plus Configuring NGINX and NGINX Plus as a Web Server Configure NGINX and NGINX Plus as a web server, with support for virtual server multi-tenancy, URI and resp..
[오늘의삽질] 도커와 커널: 아주 구 버전의 이미지는 호환되지 않을 수 있다 ubuntu 10.04를 docker 환경에서 돌리려는 시도에 실패하다. 리눅스에 존재했던 Set-UID와 관련된 보안 약점을 실습하는 과제를 하고 있었다. 그런데 최근에 사용되고 있는 wsl2 환경의 ubuntu 환경의 경우 해당 약점에 대한 대응 패치가 이미 진행되었으므로, 상당히 오래된 버전의 리눅스가 필요했다. 이때 현재 컴퓨터에 오래된 리눅스 버전을 설치하는 것은 거부감이 들었기 때문에, docker을 이용하여 격리된 환경에서 구 버전의 운영체제를 이용하여 과제를 진행하는 것을 목표로 docker hub에서 여러 이미지를 찾았다. docker hub 상의 ubuntu 버전 중 가장 오래된 것은 ubuntu 10.04 LTS 버전이었다. 우분투의 버전은 해당 버전이 등장한 년도와 달을 의미한다는 ..
[python] f-string(Literal String)과 string concatenation의 비교 f-string은 파이썬에서 문자열 덧셈을 가장 효율적으로 처리한다고 알려져 있으며, 이에 관련된 벤치마크 결과도 존재한다. 그렇다면 정말 f-string이 효율적인지 알아보기 위해 f-string과 문자열 concatenation을 수행하고 값을 반환하는 함수를 dis 모듈을 통해 디컴파일하여 바이트 코드 수준으로 비교해보자. dis — Disassembler for Python bytecode Source code: Lib/dis.py The dis module supports the analysis of CPython bytecode by disassembling it. The CPython bytecode which this module takes as an input is defined in t..
내가 까먹는 html / css 방법들 내가 자주 까먹어서 찾아보는 html이나 css 방법들을 하나씩 적어본다. html input에서 키보드 입력은 받기 싫은 경우(마우스만 허용) { e.preventDefault(); return false; }} /> onKeyDown 에서 preventDefault() 및 return false을 하면 키보드 입력을 받지 않을 수 있다. textarea 맞춤법 검사 기능 끄기 css a 태그 밑줄 삭제 a { text-decoration: none; } li 태그 숫자나 점(dot) 삭제 ol, ul { list-style-type: none; } li 말고 상위의 ol, ul에서 선언해야 한다. 이미지 늘리지 않으면서 크기에 맞추기 a { width: 250px; height: 250px; obje..
Intellij / vscode 단축키 실행 내용 단축키 vscode에서 실행 Shift + F10 F5 디버그 Shift + F9 Ctrl + F5 서식 맞추기 Ctrl + Alt + L Shift + Alt + F 한줄씩 주석 ( // ) Ctrl + / Ctrl + / 혹은 Ctrl + K + C ( 주석 ) Ctrl + K + U ( 해제 ) 다중 주석 ( /* */ ) Ctrl + Shift + / Shift + Alt + A 파일에서 검색 Ctrl + Shift + F Ctrl + Shift + F 현재 파일에서 검색 Ctrl + F Ctrl + F 다음 찾은 항목 Ctrl + L F3 ↓ ( 아래 방향키 ) Enter 이전 찾은 항목 Ctrl + Shift + L Shift + F3 ↑ ( 윗 방향키 ) Shift + Enter
[오늘의 삽질] ec2 재시작 후 ssh 접근 안되는 문제 ec2을 프리티어 수준에서 자원을 너무 많이 사용했는지, 제대로 접근이 안되는 문제가 발생하여 잠시 인스턴스를 껐다가 다시 켜보려고 했다. 그런데, ec2를 재시작하니까 다시 접근이 안되는 문제가 발생했다! 원인은 매우 간단한데, ec2을 재시작하면 퍼블릭 IP 주소가 변경된다. 따라서 ssh 에 이전 퍼블릭 IP 주소를 넣어 접근해봤자 안된다. 해결 방법은 변경된 퍼블릭 IP 주소로 접근하면 된다. https://stackoverflow.com/questions/12465181/ec2-after-restart-can-not-access-via-ssh 이 문제 때문에 ec2 인스턴스 자체가 먹통이 된 줄 알고 지워버렸는데, 내 선택이 후회된다...
[docker] 도커파일 예시 오랜만에 도커를 사용하려고 하니 사용법이 잘 기억이 나지 않았다. 일종의 snipset으로 사용했던 코드를 올려둔다. docker.compose.yml : aws을 사용할거라면 postgresql은 따로 포함하지 않아도 알아서 처리해준다. version: "3" services: client: image: "blaxsior/multi-client" mem_limit: 128m hostname: client server: image: "blaxsior/multi-server" mem_limit: 128m hostname: api environment: - REDIS_HOST=$REDIS_HOST - REDIS_PORT=$REDIS_PORT - PGUSER=$PGUSER - PGHOST=$PGHOST - P..
[docker] 오늘의 삽질 : nginx : host not found in upstream ~ 에러 docker compose 이용하여 여러개의 도커 컨테이너를 조합한 서버를 만들고 있었다. 이후 docker compose up 명령을 통해 도커 컨테이너들을 실행하는 도중, nginx 와 관련된 콘솔 창에서 다음과 같은 에러의 발생을 알렸다. 대략 upstream 으로 지정한 client:3000 을 발견할 수 없다는 메시지로 보인다. 이 에러는 무엇일까? 해당 문제가 발생했을 때 사용된 코드는 다음과 같다. nginx : default.conf upstream client { server client:3000; } upstream api { server api:5000; } server { listen 80; location / { proxy_pass http://client; } location /..