Do Not Think!!!

Posted
Filed under 01010101

운영 상태

nginx + spring boot application


에러 증상

실제 spring boot application 실행 완료후 브라우저 접속하면 무한 대기상태


에러 로그

SessionIdGeneratorBase        : Creation of SecureRandom instance for session ID generation using [SHA1PRNG] took [xxx,xxx] milliseconds


에러 해결

spring boot application 실행 옵션 추가
-Djava.security.egd=file:/dev/./urandom
Posted
Filed under 01010101

운용 환경

nginx + spring boot embedded tomcat
spring security login page

현상

다른 페이지는 접속이 잘 되지만 로그인이 필요한 화면은 한번에 접속이 안되는 현상

해결

nginx 설정
proxy_set_header Connection "";
proxy_pass http://localhost:5000;


참고

https://stackoverflow.com/questions/24453388/nginx-reverse-proxy-causing-504-gateway-timeout#36589120
https://yckwon2nd.blogspot.com/2018/06/nginx-http-proxy-protocol-http-502-case.html

Posted
Filed under 01010101

MariaDB 암호화


참고문서: Data at Rest Encryption

키 생성

$ openssl enc -aes-256-cbc -P -md sha1
enter aes-256-cbc encryption password:
Verifying - enter aes-256-cbc encryption password:
salt=AB748EBD04D3F18C
key=D8ED4A206B8A8FFD56072AA4AF3560590EE960E9EFE6F916A0B544FE037DBD48
iv =B8E1FCF32932F1DDE85565032D505DC


키 파일 생성

$ vi keys.txt
1;B8E1FCF32932F1DDE85565032D505DC4;D8ED4A206B8A8FFD56072AA4AF3560590EE960E9EFE6F916A0B544FE037DBD48


암호화 플러그인 설치

$ vi my.cnf
plugin-load-add = file_key_management.so
file-key-management-filename = keys.txt


MariaDB 재시작



테이블 변경

MariaDB> alter table tests encrypted=yes encryption_key_id=1;

데이터 확인

$ vi test.ibd
암호화 전/후 비교


Posted
Filed under 01010101
깔당
https://www.bbbtech.com/ggaldang

매일 밤 10시 대결 결과 처리하는 로직

현상
사용자수 808명 처리시간 24s 에서
사용자수 2890명 처리시간 164s 로
사용자수 대비 더 큰 폭으로 처리시간 증가

1차 개선
사용자수 2966명 처리시간 54s
- entity 하나씩 저장하던 로직을 200개씩 모아서 저장하도록 변경
- 모든 entity 삭제하는 로직을 커스텀 쿼리로 변경

2차 개선
사용자수 4365명 처리시간 23s
- AWS RDS 인스턴스 타입 변경
- t2.medium -> m4.large
- t2.medium 타입이 평소엔 괜찮지만 쿼리가 한번에 몰리는 경우 병목 현상 발생

3차 개선 예정
- bulk insert query

Posted
Filed under 01010101

업데이트

$ sudo apt update ; sudo apt upgrade -y


zsh

$ sudo apt install zsh
$ curl -L https://raw.github.com/robbyrussell/oh-my-zsh/master/tools/install.sh | sh
$ sudo chsh -s $(which zsh) ubuntu


java (spring boot application 실행을 위해)

$ sudo apt install openjdk-8-jdk


nginx (웹서버 및 SSL 적용을 위해)

nginx 설치
$ sudo apt-get install software-properties-common
$ sudo add-apt-repository ppa:nginx/stable
$ sudo apt-get update
$ sudo apt-get install nginx

nginx 설정

ssl 설정

badbot blocker
https://github.com/mariusv/nginx-badbot-blocker/tree/master/VERSION_2

Posted
Filed under 01010101
모질라재단 추천 설정

ssl_ciphers 'ECDHE-ECDSA-AES256-GCM-SHA384:ECDHE-RSA-AES256-GCM-SHA384:ECDHE-ECDSA-CHACHA20-POLY1305:ECDHE-RSA-CHACHA20-POLY1305:ECDHE-ECDSA-AES128-GCM-SHA256:ECDHE-RSA-AES128-GCM-SHA256:ECDHE-ECDSA-AES256-SHA384:ECDHE-RSA-AES256-SHA384:ECDHE-ECDSA-AES128-SHA256:ECDHE-RSA-AES128-SHA256';


SSL 설정 테스트
사용자 삽입 이미지

Posted
Filed under 01010101
Let's Encrypt 관리 명령어 업데이트

기존 업데이트 방법: https://dont.pe.kr/tc/507

새로운 방법
$ /sudo add-apt-repository ppa:certbot/certbot
$ sudo apt-get update
$ sudo apt-get install python-certbot-nginx

설치
$ sudo certbot --nginx -d dont.pe.kr -d www.dont.pe.kr

업데이트
$ sudo certbot renew --dry-run