20210715 TIL

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 로 시작하게 된다. (그래서 그때 그랫구먼....)

댓글을 작성해보세요.

채널톡 아이콘