Server 9

SSL 인증서 생성하기 (HTTPS)

웹서비스에 https를 적용할 경우, SSL 인증서를 VeriSign이나 Thawte, GeoTrust 등에서 인증서를 발급받아야 하지만, 비용이 발생하므로 스스로 인증기관을 만들어 SSL 인증서를 발급하여 사용하곤 합니다. Ubuntu 18.04에 OpenSSL이 설치되어있어 스스로 서명한 ROOT CA(Self Signed Certificate)를 생성하여 사용하려고합니다. OpenSSL pem과 crt를 발급받는 전체 과정이 포함되어있습니다. 급하신분은 하단 ex. 이후의 스크립트를 복사해서 사용해도 좋습니다. RSA 개인키 생성 # OpenSSL 접속 $ openSSL # 접속 후 OpenSSL> genrsa -out [[원하는 경로]]/[[파일명]].key 2048 # ex. genrsa -ou..

Server 2021.05.18

Apache Tomcat 인코딩 문제 해결방법

UTF-8 인코딩 문제 sever.xml Tomcat{Version}\conf\server.xml 을 메모장 혹은 사용하는 에디터로 실행합니다. server.xml 파일 내부의 태그 내에 URIEncding="UTF-8" 속성을 추가합니다. web.xml Tomcat{Version}\conf\web.xml 을 메모장 혹은 사용하는 에디터로 실행합니다. 태그를 추가합니다. (* 태그 내에 존재하며 설치버전의 경우 주석처리되어있어 주석을 해제만 해주면 됩니다. ) setCharacterEncodingFilter org.apache.catalina.filters.SetCharacterEncodingFilter encoding UTF-8 true Tomcat > Java Java Options 에 UTF-8 인..

Apache 시작하기

Apache24란? 아파치는 PC를 웹서버로 돌려주는 프로그램입니다. 다운로드 링크 원하는 버전의 Apache와 필수인 vc_redist를 버전에 맞게 다운로드 합니다. [Apache2.4] https://www.apachelounge.com/download/ [vc_redist] https://www.microsoft.com/ko-kr/download/details.aspx?id=53840 conf Apache 압축파일을 풀어 확인해보면 내부에 conf 폴더를 확인할 수 있습니다. httpd.conf 파일을 Text Editor(ex. 메모장, Notepad++)을 사용하여 수정할 수 있습니다. ① ServerRoot C드라이브에 Apache압축을 해제하였을 경우, ServerRoot는 다음과 같습니다..

Server/Apache 2019.04.24

Apache Tomcat Context 경로설정

/conf폴더 내의 server.xml파일에서 내의 에서 파일경로의 변경이 가능하다. 태그 의 name에서 host를 설정 가능하다. 위의 예시의 경우 appBase로 부터 시작하는 상대경로이므로 [Tomcat 설치디렉토리]/webapps가 기본 디렉토리가 된다. 태그 내에 있는 윗줄 태그를 본다면 http://localhost/hello.jsp 를 요청할 경우, http://localhost/firstDoc/hello.jsp 을 출력한다. 두 번째 예시로 http://localhost/hello/hello.jsp 를 요청할 경우, http://localhost/secondDoc/hello.jsp 을 출력한다.

세션과 쿠키의 차이

쿠키 쿠키는 클라이언트 로컬에 저장되는 키와 값이 들어있는 데이터 파일이다. 쿠키는 이름, 값, 만료날짜(쿠키 저장기간), 경로 정보가 들어있다. 쿠키는 일정시간동안 데이터를 저장할 수 있다. 쿠키는 클라리언트의 상태 정보를 로컬에 저장했다가 참조한다. 세션 클라이언트와 웹서버 간 네트워크 연결이 지속 유지되고 있는 상태로 사용자가 브라우저를 열어 서버에 접속한 뒤 접속을 종료할 때까지를 말한다. HTTP의 연결유지를 가능하게 해줌 : 임시로 저장하여 페이지 이동 시 사용, 클라이언트가 재접속 했을 때, 클라이언트를 구분한다. 클라이언트가 웹서버에 Request를 보내면, 해당 서버의 엔진이 클라이언트에게 유일한 ID를 부여하는데, 이 ID를 세션이라 부른다. HTTP의 두 가지 특성을 알아야 세션을 이..

Server 2019.01.29

Node.js 시작하기

다운로드 및 설치 Node.js사이트로 이동합니다. 원하는 버전의 Node.js를 다운로드 합니다. (저는 개인용 PC에서 사용할 예정이므로 LTS 버전을 다운로드 받으려 합니다.) 설치된 'node-v10.15.0-x64.msi'를 실행합니다. 설치를 진행합니다. Hello, Node.js! Node.js 사이트에서 상단의 메뉴중 [문서] → [안내] → [시작가이드] 로 이동합니다. 원하는 디렉토리에 app.js를 생성한 후, Text Editor(ex. Notdpadd++, VS Code)를 통해 아래의 코드를 붙여넣습니다. const http = require('http'); const hostname = '127.0.0.1'; const port = 3..

Server/Node.js 2019.01.27

Node.js 비동기 처리

기존 웹 서버들이 쓰레드를 생성할 때, 일정한 메모리 공간을 사용하여서 클라이언트의 요청이 늘어날 경우, 서버를 늘려야하는 문제가 발생하였었습니다. 이와 다르게 Node.js는 비동기 이벤트 기반 아키텍쳐을 이용하기 때문에 이를 극복하고 뛰어난 성능을 발휘할 수 있었습니다. 그렇다면 비동기 이벤트 기반 아키텍쳐가 무엇인지 알아보려 합니다. Blocking I/O I/O 작업이 진행되는 동안 유저의 프로세스가 결과가 반환되기 전에는 다음 처리로 넘어가지 않는 것을 이야기합니다. 위의 그림에서와 같이 하나의 System call이 들어왔을 때, kernel에서 다른 data를 읽는중이라면 이 kernel이 data를 다 읽을 때까지 기다려야하는데, 이를 Block됐다고 표현합니다. Multi Thread 다..

Server/Node.js 2019.01.25

apache tomcat session timeout 설정

Apache Tomcat을 사용하여 서버를 개발할 경우, Session Timeout을 어떻게 설정하는지 알아본다. HttpSession Method HttpSession 의 메소드들을 통해 세션의 시간을 조정할 수 있다. 메서드설명 getCreationTime()세선 생성 시간getLastAccessedTime()마지막 요청 시간setMaxInactiveInterval()최대허용시간 (초)getMaxInactiveInterval()최대허용시간invalidate()세션 제거setMaxInactiveInterval()세션 타임아웃 설정 (초) 특정 Session만 타임아웃을 설정할 경우는 마지막 setMaxInactiveInterval()함수를 사용하면 된다. ex. 세션 타임아웃 20분으로 설정 sess..

Node.js 인기이유

Node.js 인기이유 Node.js? Node.js는 확장성 있는 네트워크 애플리케이션(특히 서버 사이드) 개발에 사용되는 소프트웨어 플랫폼으로 Javascript라는 스크립트 언어를 사용한다는 특징이 있다. 기존 서버와 다르게 Non-blocking I/O와 단일 스레드 이벤트 루프를 통해 높은 처리 성능을 보인다. HTTP 서버 라이브러리를 내장하고 있어 웹 서버에서 별도의 소프트웨어를 사용하지 않고도 동작한다. Node.js의 인기비결? Javascript의 천하통일 Node.js는 웹에 동적인 흐름을 만들어주는 Javascript라는 언어를 사용합니다. Javascript는 Node.js가 나오기 전 시대(ASP, JSP PHP등의 전용 스크립트언어 시대)에는 단순히 브라우저 상에서만 동작하는 ..

Server/Node.js 2019.01.23