티스토리 뷰

정리용/nginx

[Nginx] nginx 조작-1

hee-ya07 2024. 12. 21. 22:37

안녕하세요. 이어서 작업을 해볼까 해요!

 

1. nginx.conf 파일 구조

: nginx.conf파일은 크게 4가지의 섹션으로 나눌 수 있는데요

 

  1. Main (global) context
  2. Events context
  3. HTTP context
  4. Server and Location contexts

: 이렇게 구분하고 추가적으로 Upstream context, Mail context, If context , Limit_except context가 있습니다.


1.1 Main (global) context

: Nginx 서버의 전체적인 설정 관리

: 로그 설정, 사용자 및 그룹 설정, worker 프로세스 설정 등

: conf파일 최상단에 위치

  • 주요 지시문
# 1. user: Nginx 프로세스가 실행될 사용자와 그룹을 설정
# Ex)
user nginx;

# 2. worker_processes: Nginx가 사용할 워커 프로세스의 수를 설정(보통 auto)
# Ex)
worker_processes auto;

# 3. pid: Nginx의 프로세스 ID 파일 위치를 설정
# Ex)
pid /var/run/nginx.pid;

# 4. error_log: Nginx의 에러 로그 파일 위치를 설정
# Ex)
error_log /var/log/nginx/error.log warn;

# 5. worker_connections: 각 워커 프로세스가 동시에 처리할 수 있는 연결 수를 설정
# Ex)
worker_connections 1024;

- 생략


1.2 Events context

: Nginx가 클라이언트의 요청을 처리하는 방식 정의

: 연결 처리 방식, 이벤트 모델 등을 설정

  • 주요 지시문
# 1. worker_connections: 각 워커 프로세스가 동시에 처리할 수 있는 최대 연결 수를 설정
# Ex)
events {
    worker_connections 1024;
}

# 2. use: Nginx가 사용할 이벤트 모델을 지정
# Ex)
events {
    use epoll; ## Linux 시스템에서 효율적인 이벤트 처리 방식
    worker_connections 1024;
}

- 생략


1.3 Server and Location context

: HTTP 요청을 처리(사실 아래의 http context 섹션 안의 내용에 대한 내용)

: 각각 하나의 서버와 그 서버 내에서 특정 경로에 대한 요청을 처리하는 방법을 정의

  • Server 블럭
    : 하나의 웹 서버를 정의
    : 각 블럭은 포트와 도메인 이름, 요청 처리 방법 등을 설정
    1. listen 지시어로 포트를 설정
    2. server_name으로 도메인을 지정
    3. location 지시어는 이 서버에서 특정 경로에 대한 요청 처리 정의
  • location 블럭
    : 특정 URL 경로에 대한 요청을 처리하는 방법을 정의
    : 여러 가지 조건에 따라 요청을 다르게 처리 가능
    1. location /images/ {}: /images/ 경로에 대한 요청 처리
    2. location ~ \.php$ {}: PHP 파일에 대한 요청 처리
    3. location = / {}: 정확히 / 경로에 대한 요청 처리
  • 공통
    1. root: 웹 서버의 기본 디렉토리 설정
    2. index: 기본 파일 설정. 보통 index.html or index.php를 설정
      => index.html파일을 찾고 없으면 에러 반환-> 다른 이름의 파일 사용 시, 꼭 명시...
    3. proxy_pass: 리버스 프록시를 설정할 때 사용

      ==> 이슈!
      : server 블럭에서 root의 index의 값을 만약, index.html이 아닌 다른 파일로 설정 시,
        하위의 location의 index의 기본 값은 위의 파일 명이 된다... 이거 몰라서 헤멨다... 

1.4 HTTP context

: Nginx가 HTTP 요청을 처리하는 모든 설정 관리 

: 서버의 리버스 프록시 설정, 로드 밸런싱, SSL 설정, 요청 처리 규칙 정의

  • 주요 지시문
# 1. server: 실제 웹 서버의 설정을 정의
# 여러 개의 server 블록을 정의하여 다양한 도메인과 포트를 처리 가능
# Ex)
http {
    server {
        listen 80;
        server_name example.com;
        location / {
            root /usr/share/nginx/html;
            index index.html;
        }
    }
}

# 2. listen: 서버가 요청을 수신할 포트를 설정
# Ex) listen 80;

# 3. server_name: 서버 블록이 응답할 도메인 이름을 설정
# Ex) server_name example.com www.example.com;

# 4. location: URL 경로에 따른 요청 처리를 설정
# Ex)
location /images/ {
    root /var/www/html;
}

# 5. access_log: 클라이언트의 요청 로그 파일 위치를 설정
# Ex) access_log /var/log/nginx/access.log;

# 6. error_page: 오류 페이지를 사용자 정의
# Ex) error_page 404 /404.html;

# 7. gzip: HTTP 응답에 대해 gzip 압축을 활성화
# Ex)
gzip on;
gzip_types text/plain text/css application/javascript;

# 8. include: 다른 설정 파일을 포함 설정(모듈화를 위해)
# Ex) include /etc/nginx/sites-enabled/*;

 

2. 시작

 

일단 nginx.conf 안의 내용을 지워주세요. 하나씩 해보면서 하려고 합니다.

아, 그리고 conf파일 변경 시, 터미널을 통해 

nginx -s reload

를 해주세요.

 

만약 반영이 그래도 안된다면 "강력 새로고침"을 통해 저장된 캐시를 날려서 다시 받는 환경을 만들어야 합니다.

아 그리고 nginx서버에 띄울 화면 구성도 만들어주세요!!

 

 

 

 

참고

https://dev.to/kabilan/understanding-nginx-core-contexts-52o8

'정리용 > nginx' 카테고리의 다른 글

[Nginx] nginx 조작-2  (1) 2024.12.22
[Nginx] nginx 설치 및 실행  (0) 2024.12.21
[Nginx] nginx는 무엇인가?  (0) 2024.12.21
공지사항
최근에 올라온 글
최근에 달린 댓글
Total
Today
Yesterday
링크
«   2024/12   »
1 2 3 4 5 6 7
8 9 10 11 12 13 14
15 16 17 18 19 20 21
22 23 24 25 26 27 28
29 30 31
글 보관함