수달의 IT 세상

[Ubuntu, Nginx] Let’s Encrypt로 https 적용하기 포스트 Teaser

[Ubuntu, Nginx] Let’s Encrypt로 https 적용하기

카테고리:

3 분 소요

Https는 필수인가? 개인적인 용도로 사용하는 서버라면 상관 없지만, 회원가입과 같은 개인정보가 사이트에 들어가는 경우 2012년 8월 18일부터 법이 변경되어 정보통신망 이용촉진 및 정보보호 등에 관한 법률에서 제28조와 제76조가 보안과 과태료에 관련된 내용이며 제15조 제4항 제3호 정보통신망을 통하여 이용자의 개인정보 및 인증정보를 송신·수신하는 경우 보안서버 구축 등의 조치 라고 언급되며 https 연결을 의무화하고 있다. Ubuntu에서 Nginx를 사용할 때 Let’s Encrypt로 무료로 https 적용하기 타사의 인증서의 경우, 1년간 3만원이며, *.example.com 형태의 와일드카드 인증서의 경우 15만원을 호가한다. 하지만, Let’s Encrypt를 이

[Python] Docker Ubuntu 이미지에 Virtualenv 설치하기 포스트 Teaser

[Python] Docker Ubuntu 이미지에 Virtualenv 설치하기

카테고리:

1 분 소요

virtualenv virtualenv는 격리된 파이썬 환경을 만들기 위한 도구로 다른 프로젝트에는 영향을 끼치지 않는다. apt-get install python3-virtualenv virtualenv 폴더명 위와 같은 명령어로 virtualenv를 설치한다. 만약 아래와 같이 ModuleNotFoundError가 출력된다면 virtualenv가 꼬여있다는 뜻이므로, 다음과 같은 명령어로 삭제후 다시 실행한다. No module named 'virtualenv.seed.via_app_data' pip3 uninstall virtualenv 이상이 없다면 다음과 같이 출력된다. 이후 source 명령어를 통해 해당 폴더로 진입해야 하는데, docker ubuntu 이미

[mac] Nginx 설치 및 Let’s Encrypt로 SSL 설정하기 포스트 Teaser

[mac] Nginx 설치 및 Let’s Encrypt로 SSL 설정하기

카테고리:

4 분 소요

Nginx Nginx는 웹 서버 소프트웨어로, 가벼움과 높은 성능을 목표로 한다. 웹 서버, 리버스 프록시 및 메일 프록시 기능을 가진다. 1. 설치 brew install nginx 2. Nginx.conf 설정 vi /usr/local/etc/nginx/nginx.conf user www www; ## Default: nobody worker_processes 5; ## Default: 1 error_log logs/error.log; pid logs/nginx.pid; worker_rlimit_nofile 8192; events { worker_connections 4096; ## Default: 1024 } http { include c

[Python, Django] DisallowedHost 오류 Invalid HTTP_HOST 해결하기 포스트 Teaser

[Python, Django] DisallowedHost 오류 Invalid HTTP_HOST 해결하기

카테고리:

1 분 소요

DisallowedHost DisallowedHost 오류는 Django 웹 프레임워크에서 발생하는 일반적인 오류 중 하나이다. 이 오류는 보안상의 이유로 Django 애플리케이션이 허용되지 않은 호스트에서 요청을 받았을 때 발생한다. 문제 상황 django에 도메인을 연결해서 외부 테스트를 하려고 하면, DisallowedHost 라는 메시지가 뜨면서 연결이 되지 않는다. 문제 원인 이는, 디버깅 모드에서 ALLOWED_HOSTS 변수가 빈 리스트일 경우 [‘localhost’, ‘127.0.0.1’, ‘[::1]’] 의미가 되어 로컬 호스트에서만 접속이 가능하다. 디버깅 모드를 해제하면 일체 접속이 허용되지 않고 명시적으로 지정한 호스트에만 접속할 수 있다. 수정하기 위해서는 settin

[Flask] 콘솔 종료해도 백그라운드에서 실행 포스트 Teaser

[Flask] 콘솔 종료해도 백그라운드에서 실행

카테고리:

최대 1 분 소요

문제 상황 Flask의 경우, 콘솔이나 ssh를 종료하면 flask또한 같이 종료된다. 문제 해결 해결하기 위한 방법은 아래와 같다. nohup python3 -u flask_app.py & nohup은 터미널이 종료되어도 표준 출력인 콘솔 출력은 nohup.out 파일에 계속해서 기록된다. 백그라운드로 실행된 프로세스를 종료하기 위해서는 ps명령으로 pid를 확인한 후, kill하면 된다. ps -ef | grep [프로세스명] # 혹은 ps -aux kill -9 [PID]

[Jupyter] pandas matplotlib 한글 폰트 설치하기 포스트 Teaser

[Jupyter] pandas matplotlib 한글 폰트 설치하기

카테고리:

1 분 소요

Pandas로 한글 데이터 불러오기 pandas를 통해 한글이 포함된 csv를 불러오는 방법은 아래와 같다. import pandas as pd df = pd.read_csv('./data.csv', sep=',', encoding='utf-8') df.head() 인코딩의 문제가 없으므로, 해당 파일의 head 부분을 잘 불러온다. 하지만, 이를 plot()함수를 이용하여 변환시키면 아래와 같이 인코딩이 깨져 네모로 표현된다. 해결 방법 기본적으로 Ubuntu에는 나눔글꼴이 설치되어 나오나, JupyterHub Docker Image에는 나눔글꼴이 설치되어 있지 않은 우분투 기반 Image이므로, 다음과 같은 명령어를 쉘에 입력하여 나눔글꼴을 설치

[IIS 10] 웹 소켓 리버스 프록시 구성하기 포스트 Teaser

[IIS 10] 웹 소켓 리버스 프록시 구성하기

카테고리:

1 분 소요

웹 소켓 http와는 달리 웹소켓은 전이중 통신을 사용하며, 웹소켓은 TCP 위에서 메시지 스트리밍을 가능케 한다. 리버스 프록시 클라이언트를 대신해서 한 대 이상의 서버로부터 자원을 추출하는 프록시 서버의 일종으로 관련 서버들을 위해 임의의 클라이언트가 해당 서버에 접속하는 중간 매개체 역할을 한다. 설치 웹 플랫폼 설치 관리자를 통해 다음 3가지 프로그램을 설치해야 한다. URL Rewrite → URL 재작성 ARR(Application Request Routing) 3.0 → 응용프로그램 요청 라우팅 3.0베타(Korea) WebSocket → 웹 소켓 프로토콜 웹 소켓 프로토콜을 바탕으로 ARR이 리버스 프록시 역할을 하며, URL Rewrite가 URL을 이쁘게 바꿔준다

Apache MINA와 WebSocket으로 SSL통신하기 포스트 Teaser

Apache MINA와 WebSocket으로 SSL통신하기

카테고리:

2 분 소요

Apache MINA Apache MINA는 Java에서 흔히 쓰는 비동기 쓰레드 방식의 Server이다. 이전에 작성했던 포스팅에 이어서 작성한다. https://syudal.kr/post/Apache-MINA와-WebSocket으로-통신하기/ 해결 방법 대부분의 사이트에서 HTTPS가 강제됨에 따라, 일반 웹소켓 요소(ws://)가 들어가 있으면 ERR_SSL_PROTOCOL_ERROR 오류를 출력하며 연결을 거부 한다. 이를 해결하는 방법은 두가지인데, 페이지에서 HTTPS를 제거하는 방법 웹 소켓에 SSL(wss://)을 구현하는 방법 1번 방법은 시대의 흐름을 역행하는 것이니 사용하지 않도록 하고, 2번 방법을 사용하고자 했는데 아무리 구글링을 해봐도 Apache MINA