설명하기에 앞서. 이 글을 적는 이유는
1. 각각의 기능들에 대해 공식docs 를 참고하여(즉 정확하게) 최대한 디테일하게, 공부하기 위함 최대한 초심자에 맞춰(본인이 초심자이기에)설명
2. 추후 100% 까먹을테니 정리하기 위함
ps.기능 및 옵션들은 회사에서 사용되는 옵션들(회사에서 직접 개발된 모듈들은 설명X, 사내 WIKI에 기재)

 

참고 URL : 
http://nginx.org/en/docs/ngx_core_module.html

 

 

worker_processes / Context : main
실행할 워커 프로세스 갯수 정의 , cpu 코어 갯수( cat /proc/cpuinfo | grep proce|  wc -l)대로 하는게 좋다
ex) worker_processes 4; 
.4로 지정하는경우 아래와 같이 워커 프로세스 4개 실행됨
root     21554     1  0  2019 ?        00:08:31 nginx: master process /usr/local/nginx/sbin/nginx
nobody   40544 21554  0 10:31 ?        00:00:00 nginx: worker process
nobody   40545 21554  0 10:31 ?        00:00:00 nginx: worker process
nobody   40546 21554  0 10:31 ?        00:00:01 nginx: worker process
nobody   40547 21554  1 10:31 ?        00:00:04 nginx: worker process

The auto parameter is supported starting from versions 1.3.8 and 1.2.5.

 

worker_rlimit_nofile / context : main
워커 프로세스가 사용 할 수 있는 최대 파일 갯수, worker conntercions의 3~4배가 적당하다고 함, 
ex) worker_rlimit_nofile  32768;

worker_connections / context : events
하나의 워커 프로세스당 최대 동시 연결 수, 클라이언트와의 연결 뿐 아니라 모든 연결이 포함됨(즉 아파치/nginx 프록시로 연결돼있을 경우 클라이언트 > nginx 1개, nginx > apache 1개 총 2개의 커넥션이 사용됨)
OS의 최대 오픈 파일 갯수(cat /etc/security/limits.conf | egrep -i "soft|hard" | grep -v "#" )를 넘으면 안된다.

ex) worker_connections 8192;

 

server_tokens 
서버 response header 에 nginx 버전 활성화 여부, 보안상 off 추천
ex) server_tokens off; 

server_names_hash_max_size(
server name 의 최대 해시 사이즈 설정
ex) server_names_hash_max_size      2048;

server_names_hash_bucket_size

server name의 최대 버킷 사이즈 설정

ex) server_names_hash_bucket_size   256;

 

###해시와 버킷이란, nginx 에서는 어떻게 사용되는지 ?
먼저 hash 를 예를 들자면 nginx 의 vhost 설정하기 위해 server_name 이 아래와같이 여러개가 있을경우
server_name  test1.kr www.test1.kr
server_name  testtest2.kr www.testtest2.kr

server_name  t3.kr www.t3.kr

등등...
test1.kr www.test1.kr > aaaa1111
testtest2.kr www.testtest2.kr > bbbb2222
t3.kr www.t3.kr > cccc3333

  
위와같이 어떤 크기의 데이터든 일정한 크기의 고유 문자열로 변경한다. 따라서 어떠한 크기의 데이터든 일정한 크기의 고유 문자열과 1:1 매칭이 돼 있기 때문에 "testtest2.kr"를 불러오는것보다 bbbb2222를 불러오는게 더욱 빠르게 처리 된다. (암호화에도 도움이 되지만 엔진엑스에서는 암호화때문에 사용하는건 아닌듯?)
엔진엑스에서는
server_name, map 지시어, mime type, reqest header 문자열 등의 정적 데이터들을 빠르게 처리하기 위해 해쉬 테이블을 사용한다. 
해쉬 테이블은 해쉬 함수를 이용해서 키를 해쉬로 바꾸고 바꿔진 해쉬와 매칭된 value가 저장되있는 버킷들

즉 server_names_hash_max_size 는 test1.kr testtest2.kr 과 같은 키들의 사이즈라 생각하면 편하고
server_names_hash_bucket_size 는 vhost 들의 갯수라 생각하면 된다.

 

set_real_ip_from / real_ip_header

ex)
real_ip_header X-Forwarded-For;
set_real_ip_from 127.0.0.1;
set_real_ip_from 172.16.253.10;
set_real_ip_from 172.16.253.14;

프록시 사용할경우 실제 주소를 확인하기 위한 설정

 

map

공식 독스 설명에는 변수에 따라 값이 달라지는 변수를 생성 한다(string를 받아서 value 를 매핑) 라고 나와있다. 쉽게 말하면 특정 아이피,도메인,대역등을 변수로 지정(string) 후 그 변수들을 접속 허용, 차단 또는 지정된 변수는 로깅을 하지 않는다 등을 한다고 보면 될듯 하다.
ex)
https://sub0709.tistory.com/110

 

gzip

ex)
gzip                   on;
gzip_proxied           any;
gzip_http_version      1.1;
gzip_min_length        1100;
gzip_comp_level        5;
gzip_buffers           16 32k;
gzip_vary              on;
gzip_disable           "msie6|Yeti";


전송 데이터를 줄이기 위해 gzip 을 이용하여 리퀘스트를 압축하는 모듈

 

proxy
https://12bme.tistory.com/367 설명 잘 돼 있음

 

vts
https://blog.naver.com/ncloud24/221598840260

 

요새 뭐 saa 있다고 으스댈것도 아니고 없는게 이상한 상황이고 또 후기 또한 굉장히 많기에 쓸까 말까 고민 많이 했는데 그래도 불합격 후 합격 후기는 없는듯하여 씁니다.

 

aws 는 완전 초짜, 한번도 해본적이 없었고 se 경력은 8년입니다.

 

처음에는 아래 파일을 가지고 일주일간 aws 서비스 개념부터 읶혔습니다.

(카톡 오픈 채팅방 서버방에 전산직님께서 공유)

AWS SAA 시험 핵심 서비스 주요 개념(Cognito 추가).zip
3.49MB

아무래도 se를 적잖게 현업으로 있었다보니 서비스중 70%정도는 온프레미스 환경의 기술과 비교가되어 나름 쉽게 이해한듯 합니다.

 

그후 2주차부터는 일주일간 덤프파일 구해서 한문제 한문제 이해하며 풀면서 넘어갔습니다. 답만 외우는식이 아닌 최대한 자세히, 정확히 오답노트 만들며 풀었고 하루에 많이 풀어야 20~40문제정도 풀었습니다.

그렇게 일주일동안 약 150~200문제 가량 풀었던것같고 시험을 봤습니다.

즉 2주정도(1주 서비스 개념 읶히고 1주는 덤프문제 천천히 풀고)공부 했고 시험 봤는데 700점 맞고 탈락했습니다.
그래서 다른 계정으로 일주일뒤에 바로 시험 신청했고 시험보기 하루전에
덤프 80문제 쭉 풀고 틀린것 체크
그다음 다시 80문제 쭉 풀고 틀린것 체크
틀린문제가 얼추 80문제 되면 틀린 문제들 쭉 풀고 또 틀린문제 체크

다시 덤프 80문제 쭉 풀고 틀린것 체크

또 80문제 쭉 풀고 틀린것 체크
틀린문제들 또 얼추 80문제 되면 다시 쭉 풀고 또 틀리면 체크

이런식으로 덤프 끝까지 한번 다 풀었고 시험 당일날 틀리고 틀리고 틀린 문제들(약 20~30문제정도)은 시험들어가기 직전에 한번 쭉 보고 중얼거리면서 들어갔습니다. 

그리고 909점으로 합격했습니다.

 

시험보시는분들께 말씀드리고자 한다면
1.aws 서비스 개념은 읶히고 들어가야 한다.
2.어느정도 대강의 서비스가 눈에 들어오면 덤프문제 그냥 주구장창 풀면 시험 합격 가능하다.
3.시험 시간은 최대한 늦게하라. 당일에 보는게 굉장히 큰 도움이 된다.

입니다.

 

현업으로 aws 다루시고(경력 3년이상) saa, sap등 10개 이상 자격증 따신 분들 주변에 약 5명정도께 조언 받았는데 다들 하나같이 자격증은 자격증이고 실무는 실무다. 따라서 공부할 때 너무 이해하려 하지말고 적당히 외우면서 넘어가라. 였습니다.

실제로 공부 해보면(덤프 외울 때) 덤프 문제에 답이 다른것도 종종 있습니다. 그런것들 하나하나 완벽하게 해서 넘어가면 물론 좋겠지만 시간낭비라고 생각되네요.

 

덤프문제만 주구장창 푸시면 무조건 합격 가능하시니 시험 보시는분들 화이팅입니다.

 

다음에는 sap 후기올리겠습니다.

 

 

 

 

 

'job > public cloud' 카테고리의 다른 글

AWS스터디 - S3  (0) 2022.11.15
aws 스터디 - rds  (0) 2022.11.14
AWS스터디 - EC2, EBS, ELB, Route53  (0) 2022.11.14
AWS 스터디 - IAM  (0) 2022.11.14
공부한거 대충 정리  (0) 2018.10.11

에러 내용
[ 38%] Building C object unittest/mysys/CMakeFiles/my_atomic-t.dir/my_atomic-t.c.o
[ 38%] Built target dynstring-t
Scanning dependencies of target my_getopt-t
[ 38%] Building C object unittest/mysys/CMakeFiles/my_getopt-t.dir/my_getopt-t.c.o
Linking CXX executable lf-t
[ 38%] Building C object mysys_ssl/CMakeFiles/mysys_ssl.dir/openssl.c.o
Linking CXX executable my_atomic-t
../../mysys/libmysys.a(my_cpu.c.o): In function `my_cpu_init':
/root/src/mariadb-10.3.22/mysys/my_cpu.c:86: undefined reference to `__rdtsc'
/root/src/mariadb-10.3.22/mysys/my_cpu.c:88: undefined reference to `__rdtsc'
/root/src/mariadb-10.3.22/mysys/my_cpu.c:90: undefined reference to `__rdtsc'
collect2: ld returned 1 exit status
make[2]: *** [unittest/mysys/lf-t] 오류 1
make[1]: *** [unittest/mysys/CMakeFiles/lf-t.dir/all] 오류 2
make[1]: *** 끝나지 않은 작업을 기다리고 있습니다....
[ 38%] Building CXX object mysys_ssl/CMakeFiles/mysys_ssl.dir/my_crypt.cc.o
Linking CXX executable my_getopt-t
[ 38%] Built target my_atomic-t
Linking CXX executable ma_dyncol-t
Linking CXX static library libmysys_ssl.a
[ 38%] Built target mysys_ssl
[ 38%] Built target my_getopt-t
[ 38%] Built target ma_dyncol-t
/root/src/mariadb-10.3.22/storage/mroonga/vendor/groonga/lib/expr.c: In function ‘grn_expr_exec’:
/root/src/mariadb-10.3.22/storage/mroonga/vendor/groonga/lib/expr.c:2620: note: variable tracking size limit exceeded with -fvar-tracking-assignments, retrying without
/root/src/mariadb-10.3.22/storage/mroonga/vendor/groonga/lib/expr.c:2620: note: variable tracking size limit exceeded
Linking CXX static library libgroonga.a
[ 38%] Built target libgroonga
make: *** [all] 오류 2



os : CentOS release 6.10 (Final) / 2.6.32-642.el6.x86_64 / gcc version 4.4.7 20120313 (Red Hat 4.4.7-23) (GCC) 

 

원인
gcc 버전이 낮아서 그런것 같다.
gcc-4.4 does not have support for rdtsc in x86intrin.h. It was added since gcc-4.5.
(https://jira.mariadb.org/browse/MDEV-20233?attachmentOrder=desc)참고

 

해결 33번 라인에
기존
#  include 
# else
변경
#  include 
# elif GCC_VERSION < 4005

#  include 
# else

'job > mysql' 카테고리의 다른 글

mariadb/mysql isms관점 로그 분석하기  (0) 2022.07.11
mariadb columnstore 에 대하여  (0) 2021.06.16
mysql 1032 에러 조치  (0) 2019.09.23
mysql 리플리케이션 마스터 - 슬레이브간 지연  (0) 2019.08.05
mysql log file size error  (0) 2019.06.26

+ Recent posts