20210715 TIL
2021.07.15
nproc : core 개수 출력해줌
lscpu : cpu에 대한 자세한 정보 출력해줌
worker_process auto; # 이렇게 해주면 알아서 함. default는 1이다.
많이 늘린다고 좋은게 아니고 1개의 코어당 1개의 워커가 제일 성능이 좋다.
프로세스는 서로 작업을 공유하지 않기 때문에 1프로세스 1워커를 해줘야함.
ulimit -n : cpu가 한번에 파일을 몇개까지 열 수 있는지 출력해줌.
event {
worker_connections 1024;
}
worker_process * worker_connections = max connections
즉, 효율이 좋게 되려면 1 코어 - 1 워커 - cpu 최대 몇개 파일 열 수 있나 를 고려해서
conf 파일을 작성해주면 된다.
buffer
주고 받는 데이터가 메모리를 거쳐 가는 것을 버퍼라고 하며 램 용량이 빠르지만 작기 때문에 하드를 대신 쓰기도 함.
user www-data;
worker_processes auto;
events {
worker_connections 1024;
}
http {
include mime.types;
# Buffer size for POST submissions
client_body_buffer_size 10K;
client_max_body_size 8m;
# 8메가보다 크면 413 (Request Entity too large)를 반환
# Buffer size for Headers
client_header_buffer_size 1k;
# 99%의 헤더는 아무리 커도 1k 보다 작으니 이정도면 충분
# Max time to receive client headers/body
# 단위는 밀리세컨즈
# s(초) m(분) h(시) d(일)
# 불러오는 시간이 아니라 연속적으로 데이터를 받는 시간을 말한다
# 너무 긴 전송(지속적인 전송)은 서버를 다운시킨다
# default 값은 60초인데 조금 길긴 함.
client_body_timeout 12;
client_header_timeout 12;
# Max time to keep a connection open for
# 클라이언트와 연결을 유지시켜주는 시간
# 파일을 주고 받는 등의 지속적인 연결이 필요할 경우 사용
# 또는 빠른 응답을 위해 지속적으로 연결을 하고 싶을때
# 너무 길면 성능에 영향(max connection에 연관되어 있음)
keepalive_timeout 15;
# Max time for the client accept/receive a response
send_timeout 10;
# Skip buffering for static files
# 하드에서 읽어서 바로 응답함
# 메모리를 거치지 않음.
sendfile on;
# Optimise sendfile packets
# static 파일의 양이 많을때 쓰면 좋다.
tcp_nopush on;
server {
listen 80;
server_name 167.99.93.26;
root /sites/demo;
index index.php index.html;
location / {
try_files $uri $uri/ =404;
}
location ~\\.php$ {
# Pass php requests to the php-fpm service (fastcgi)
include fastcgi.conf;
fastcgi_pass unix:/run/php/php7.1-fpm.sock;
}
}
}
dynamic 모듈
static 모듈은 항상 로드되는 것에 비해 다이나믹 모듈은 불러야 로드가 된다.
나중에 필요할때 다시 들춰보는 걸로....
reverse proxy
location /php {
proxy_pass '<http://localhost:9999/>';
}
proxy_pass로 넘길때, 맨 뒤에 슬래시를 꼭 넣어줘야하는데 그 이유는 슬래시가 있다면 proxy_pass로 받은 리퀘스트의 uri가 / 부터 시작하는 반면에 없다면 /php 로 시작하게 된다. (그래서 그때 그랫구먼....)
댓글을 작성해보세요.