수달의 IT 세상

[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

[C#] HttpWebRequest 루트 인증서와 해당 도메인 인증서 확인하기 포스트 Teaser

[C#] HttpWebRequest 루트 인증서와 해당 도메인 인증서 확인하기

카테고리:

2 분 소요

RemoteCertificateValidationCallback RemoteCertificateValidationCallback은 HTTPS 인증서를 확인할 수 있게 해준다. 단, UNITYTLS_X509VERIFY_FLAG_NOT_TRUSTED’라는 메시지가 나오면서 Unity상에서는 위와 같은 방법을 사용할 수 없다. 왜냐하면 현재와 같이 루트 인증서와 비교하여 검증하기 위해 OpenSSL/MbedTLS를 사용하는 대신 시스템별 TLS API를 통해 검증을 수행함으로써 이 문제를 해결할 수 있을지 모르지만, 이 해결방법은 서로 다른 운영체제에서 작동되지 않을 가능성이 크기 때문에 Unity상에서 구현을 하지 않았다고 한다. https://docs.microsoft.com/ko-kr/dotnet/ap

[C#] 기본 연결이 닫혔습니다. 보내기에서 예기치 않은 오류가 발생했습니다. 포스트 Teaser

[C#] 기본 연결이 닫혔습니다. 보내기에서 예기치 않은 오류가 발생했습니다.

카테고리:

최대 1 분 소요

문제 상황 C#에서 HttpWebRequest를 이용하여 서버와 통신할 때, ‘기본 연결이 닫혔습니다. 보내기에서 예기치 않은 오류가 발생했습니다.’와 같은 오류가 나온다면, 해결방법은 다음과 같다. 문제 해결 해당 프로젝트의 프레임워크 버전을 4.5.2이상으로 올린다. 아래 코드를 적용한다. ServicePointManager.SecurityProtocol |= SecurityProtocolType.Ssl3; ServicePointManager.SecurityProtocol |= SecurityProtocolType.Tls; ServicePointManager.SecurityProtocol |= SecurityProtocolType.Tls11; ServicePointManager.Secu

[IIS 10] 강제 https redirect 시키기 포스트 Teaser

[IIS 10] 강제 https redirect 시키기

카테고리:

최대 1 분 소요

Https Redirect ssl인증서를 적용해도 https로 redirect되지 않는다… 하지만 URL Rewrite기능을 이용하면 http로 접속하더라도 https로 변경할 수 있다. ※ URL 재작성 기능이 없다면, https://www.microsoft.com/web/downloads/platform.aspx을 설치하여 URL 재작성 검색 후 설치하면 나타난다. 우측 메뉴 → 규칙 추가 → 인바운드 규칙 → 빈 규칙을 선택한다. 이후 아래와 같이 작성한다. 리디렉션 유형은 ‘기타 참조(303)’을 선택하면 된다. 이후 http://나의도메인 으로 접속해도 자동으로 https로 접속되는 모습을 볼 수 있다.