목록IT (81)
♥️7분 빠른 소식 전달해 드립니다♥️
12bme 2017.07.21 01:34 인증 (Authentication) Basic Auth를 사용하지 말고 표준 인증 방식을 사용하세요 (예로, JWT, OAuth 등) 인증, 토큰 생성, 패스워드 저장은 직접 개발하지 말고 표준을 사용하세요. JWT (JSON Web Token) - 무작위 대입 공격을 어렵게 하기 위해 랜덤하고 복잡한 키값 (JWT Secret)을 사용하세요. - 요청 페이로드에서 알고리즘을 가져오지 마세요. 알고리즘은 백엔드에서 강제로 적용하세요. (HS256 혹은 RS256) - 토큰 만료기간(TTL, RTTL)은 되도록 짧게 설정하세요. - JWT 페이로드는 디코딩이 쉽기 때문에 민감한 데이터는 저장하지 마세요. OAuth - 허용된 URL만 받기 위해서는 서버단에서 red..
![](http://i1.daumcdn.net/thumb/C150x150/?fname=https://blog.kakaocdn.net/dn/rrRiC/btqwHKzjIqe/wnqt5OfMiGZ2Uiz99OcBE1/img.png)
아파치 웹 서버와의 연동 톰캣은 HTTP 서버 기능을 내장하고 있고 자바 NIO를 사용하는 커넥터를 구현하는 등 전보다 많은 성능 향상이 이루어졌지만 톰캣 단독으로 사용하기보다는 아파치 웹서버 등 별도의 웹서버와 연계해서 사용하는 경우가 많습니다. 이렇게 사용하는 데는 여러가지 이유가 있지만 주되 이유는 다음과 같습니다. 정적 콘텐츠 서비스 효율이 뛰어남 웹서버가 이미지 파일이나 동영상 등 정적 콘텐츠를 제공하는 데 더 성능이 뛰어난 것으로 알려져 있습니다. 주의할 점은 특정상황(톰캣에 APR native와 sendFile 사용)에서는 톰캣이 정적 콘텐츠 처리도 더 빠른 경우도 있으므로 Apache Benchmark나 jMeter 등의 성능 측정 도구로 직접 서비스 사이트를 측정할 필요가 있습니다. 유연..
설정에 대한 튜닝은 반드시 해야 합니다. 대체로 기본값으로 최대한의 성능을 낼 수 있는 것은 없습니다. 웹 개반 시스템도 정상적으로 작동하게 하려면 세팅이 대단히 중요합니다. 프로그램에 문제가 없는데 세팅값 하나 때문에 애플리케이션의 성능이 안 좋아지는 경우가 굉장히 많기 때문입니다. DB서버를 제외한 서버 세팅에 대해 알아보겠습니다. 세팅해야 하는 대상 개발하는 것만큼 중요한 것이 서버의 세팅입니다. 개발된 프로그램이 0.1초 걸린다고 해도 서버 세팅을 잘못하면 1초가 걸릴 수도 있고, 10초가 걸릴 수 있습니다. 이러한 문제를 진단하는 가장 좋은 방법은 성능 테스트를 통해서 병목 지점을 미리 파악하는 것입니다. 무조건 애플리케이션 위주로 병목을 찾는 것보다, 일단 문제가 될 만한 세팅값을 먼저 진단하..
![](http://i1.daumcdn.net/thumb/C150x150/?fname=https://blog.kakaocdn.net/dn/caXEFB/btqwIYDzE4d/zlTcmGmh76T8UDUsc0oi81/img.png)
인바운드 트래픽(inbound traffic) 외부에서 가상서버 내부로 데이터가 유입될때 발생하는 트래픽을 말합니다. 예를들어, 클라이언트가 웹사이트에 접속했을 경우 클라이언트의 접속정보가 가상서버 내의 DB에 저장된다거나 클라이언트가 웹사이트에서 어떠한 정보가 필요하여 가상서버에 요청데이터를 보냈을때 발생하기도 합니다. 그리고 FTP나 웹사이트 첨부파일 등으로 가상서버내로 파일을 전송하여 저장하는 것도 인바운드 트래픽이 발생됩니다. 아웃바운드 트래픽(outbound traffic) 인바운드 트래픽과는 반대로, 가상서버 내에서 외부로 데이터가 전송되었을때의 트래픽을 발합니다. 아웃바운드의 경우 클라이언트가 웹사이트에서 어떤 정보를 요청하였을 때 해당 정보에 대한 데이터를 다시 클라이언트로 전송시 발생된 ..
![](http://i1.daumcdn.net/thumb/C150x150/?fname=https://blog.kakaocdn.net/dn/bYunN6/btqwHJ1poeW/ekDmGp85bnuEpFPSZC8KoK/img.png)
개발서버에서 애플리케이션 서버 2대에 버전관리서버, CI서버까지 동시에 구동하다 보니 간혹 버전관리서버에 소스코드가 업로드 될때나 CI서버에서 메모리 점유율이 높은 작업이 진행될때 우선순위가 낮은 작업이 중단되는 현상이 가끔 일어나곤 했습니다. 에러메시지를 가지고 원인을 찾다보니 할당된 SWAP 메모리가 부족할 경우, 그러한 현상이 일어난다고 합니다. 그럼 앞으로 이러한 문제가 다시 생기지 않도록 swap 메모리를 추가할당하는 방법을 알아보도록 하겠습니다. [root@localhost ~]# dd if=/dev/zero of=/home/swapfile bs=1024 count=1000000 1000000+0 records in 1000000+0 records out 1024000000 bytes (1.0..
![](http://i1.daumcdn.net/thumb/C150x150/?fname=https://blog.kakaocdn.net/dn/sU1IG/btqwGNKhe2C/WBSikHrkLeknUJV6iT1akk/img.png)
일반적으로 환경 설정 파일은 관리자가 편집하거나 프로그램으로 분석할 수 있는 텍스트 파일로, 여러 가지 값을 지정해 프로그램의 작동 방법을 결정합니다. 리눅스 기반 운영체제에서는 애플리케이션의 상당 부분이 크고 복잡한 환경 설정 파일에 의존해 수행됩니다. 엔진엑스의 장점 중 하나는 환경 설정이 비교적 간단하다는 점입니다. 습득해야할 원리도 지시어, 블록, 전체 논리 구조 등 몇 개 되지 않습니다. 실제의 환경 설정 과정은 대부분 지시어 값을 정하는 일로 이뤄집니다. 지시어 설정 엔진엑스 환경 설정 파일은 논리적으로 돼 있는 지시어 목록이라 할 수 있습니다. 애플리케이션 전체가 지시어에 부여하는 값에 의해 작동합니다. 기본적인 경로는 /usr/local/nginx/conf/nginx.conf 입니다. #u..
엔진엑스 기본 빌드에는 프록시 모듈이 포함돼 있어 클라이언트로부터의 HTTP 요청을 백엔드 서버에 전달합니다. 여러 관점에서 모듈환경을 설정해봅시다. - 백엔드 서버의 기본 주소와 포트 정보 - 캐싱, 버퍼링, 임시 파일 옵션 - 한계치, 제한시간, 에러 처리 주요 지시어 이 부류의 지시어는 백엔드 서버의 위치, 전달되는 정보, 전달 방법 등과 같은 기본 환경을 설정합니다. 1. proxy_pass (문맥: location, if) 자신의 위치를 표시함으로써 요청이 백엔드 서버로 전달되게 지정합니다. # TCP 소켓을 사용할 때의 구문 proxy_pass http://hostname:port; # 유닉스 도메인 소켓을 사용할 때의 구문 proxy_pass http://unx:/path/to/file.so..
Nginx_with_lua https://yos.io/2016/01/28/building-an-api-gateway-with-lua-and-nginx/ API_Gateway_Pattern https://microservices.io/patterns/apigateway.html lua-nginx-module https://github.com/openresty/lua-nginx-module Lua 5.1 Reference http://www.lua.org/manual/5.1/manual.html The various *_by_lua, *_by_lua_block and *_by_lua_file configuration directives serve as gateways to the Lua API within ..