본문 바로가기

node.js3

[nodejs] nodejs와 nginx timeout 이글에서 자주 등장하는 upstream은 node 서버를 의미한다. nginx를 프록시 서버로 사용할 때 발생할 수 있는 에러중에, 502 Bad Gateway, 504 Gateway Time-out 가 있다. 보통 502, 504에러?면 nginx의 책임(?)으로 몰아가는 경우가 있다. 사실 nginx 문제일 수도 있고, 아닐수도 있다. 아닐 수 있는 이유는 upstream 서버에서도 timeout이 존재하기 때문이다. 일단은 502, 504에러를 알아보기 전에 upstream에서 timeout이 어떻게 동작하고 있는지 확인해보자. nodejs timeout 테스트로 사용하는 node버전은 v19.7.0 이며, 아래의 글은 해당 버전을 기준으로 한다. express로 다음과 같이 서버를 만들었다고 .. 2023. 3. 21.
[node.js] single thread and libuv node.js는 기존의 multi thread와 어떻게 다를까 ? 우리가 server side언어로 개발한 서버 프로그램은 수많은 클라이언트의 요청을 처리할 수 있어야 합니다. 기존의 java, .net, php..의 경우 multi thread 방법으로 클라이언트의 요청을 처리하였습니다. 즉 각각의 클라이언트의 요청에 스레드를 할당하여 thread에서 클라이언트의 요청을 처리하는 방식을 선택하였습니다. apacha tomcat의 경우 default thread pool size(200개)를 두어 thread pool의 thread를 사용하여 클라이언트 요청을 처리하였습니다. 하지만 위와 같은 방법은 문제점이 있는데요, 1. 클라이언트의 요청이 증가함에 따라(이를 처리하는 thread의 수가 증가) 메모.. 2021. 9. 24.
[node.js] fs.write()로 알아보는 node.js javascript는 Netscape에서 만든 프로그래밍 언어이며 브라우저에서 버튼을 눌렀을 때 색상이 변경되거나, alert창이 뜨는 등 주로 browser에서 화면을 조작하기 위해 사용되었습니다. 하지만 2009년 node.js가 등장하면서 javascript는 단지 browser에서 화면을 조작 하는데만 그치지 않고 파일을 읽거나, network I/O, process 등 브라우저 밖에서 동작할 수 있게 되었습니다. node.js 공식문서에서는 node.js를 다음과 같이 소개하고 있습니다. Node.js® is a JavaScript runtime built on Chrome's V8 JavaScript engine. 여기서 runtime은 javascript가 실행되는 환경을 의미합니다. 사실 .. 2021. 9. 17.