ABOUT ME

-

Today
-
Yesterday
-
Total
-
  • Nginx 기본config 설정
    리눅스 끄적끄적 2023. 8. 14. 23:36

    nginx의 기본적인 활용에 앞서서 conf에 사용되는 옵션들을 정리해보자.

    주로 사용되는 옵션은 정해져있지만, 이 옵션들이 어떤 역할을 하는지에 대해 알아보고 상황에 맞게 커스텀 하자.

    user  nginx; # 프로세스의 실행되는 권한. 보안상 root를 사용하지 않습니다.
    worker_processes  1;
    error_log  /var/log/nginx/error.log warn;
    pid        /var/run/nginx.pid;
    events {
        worker_connections  1024;
    }
    
    http {
        include       /etc/nginx/mime.types;
        default_type  application/octet-stream;
    
        upstream docker-server {
            server server:8080;
        }
        server {
            listen 80;
            server_name localhost;
    
            location / {
                root /usr/share/nginx/html;
                index index.html index.htm;
                try_files $uri $uri/ /index.html =404;
            }
            location /api {
                proxy_pass         http://docker-server;
                proxy_redirect     off;
                proxy_set_header   Host $host;
                proxy_set_header   X-Real-IP $remote_addr;
                proxy_set_header   X-Forwarded-For $proxy_add_x_forwarded_for;
            }
            location /socket {
                proxy_http_version 1.1;
                proxy_set_header Upgrade $http_upgrade;
                proxy_set_header Connection "upgrade";
                proxy_set_header Host $host;
                proxy_pass http://docker-server;
            }
        }
        log_format  main  '$remote_addr - $remote_user [$time_local] "$request" '
                          '$status $body_bytes_sent "$http_referer" '
                          '"$http_user_agent" "$http_x_forwarded_for"';
        access_log  /var/log/nginx/access.log  main;
    
        sendfile        on;
    server_tokens     off;
        keepalive_timeout  65;
        include /etc/nginx/conf.d/*.conf;
    }

    상단

     

     

    1. worker_processes

    워커 프로세스를 몇개 생성할 것인지 지시한다.
    1이면 모든 요청을 하나의 프로세스로 실행한다. 보통 auto로 놓는다.

     

     

    1. error_log

    로그 레벨을 설정한다. debug | info | notice | warn | error | crit 같은 종류가 있다.

     

     

    1. pid

    마스터 프로세스id 정보가 저장된다.

     

     

    event 블록

     

    1. worder_connections

    하나의 프로세스가 처리할 수 있는 커넥션의 숫자.

     

     

    http 블록

     

    1. include

    옵션 항목을 설정해둔 파일의 경로를 지정한다.
    보통 파일 확장자명과 MIME타입 목록을 지정한다.

     

     

    1. defulat_type

    옥텟 스트림 기반의 http를 사용한다.

     

     

    1. upstream 블록

    origin서버라고도 하는데, WAS를 의미한다.
    (nginx는 downStream에 해당한다.)
    nginx와 연결한 WAS를 지정하는데 사용한다.
    하위에 있는 server 지시어는 연결할 ㅇWAS의 host주소:포트를 지정한다.

     

     

    1. server블록

    하나의 웹사이트를 선언하는데 사요된다.
    server 블록이 여러개면 한개의 호스트에 여러 웹사이트를 서빙가능하다.

     

     

    1. listen

    이 웹사이트가 바라보는 포트

     

     

    1. server_name

    클라이언트가 접혹하는 서버(도메인). 실제로 들어온 request의 header에 명시된 값이 일치하는지 확인하여
    server를 분기한다.

     

     

    1. location 블록

    server 블록 안에서 특정 웹사이트의 url을 처리하는데 사용한다.
    예를 들어 https://web.com/internal과 https://web.com/external 로 접근하는 요청을 다르게 처리하고 싶을 때 사용한다.
    부의 root는 웹사이트가 바라보는 root 폴더의 경로를 의미한다.

    728x90

    댓글

Designed by Tistory.