Nginx 설정 파일
Nginx 설정 파일은 nginx.conf이며, ${NGINX_HOME}/conf 디렉터리에 존재한다.
1. nginx.conf
아래는 nginx.conf 파일 예시이다.
user web; # nginx 프로세스를 기동 시키는 계정
worker_processes 1;
error_log logs/error.log debug;
pid logs/nginx.pid;
events {
worker_connections 1024;
}
http {
include mime.types;
default_type application/octet-stream;
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 logs/access.log;
sendfile on;
keepalive_timeout 65;
upstream webtobhttp {
server [ip address]:8081;
}
server {
listen 8082;
server_name www.test.co.kr;
#charset koi8-r;
#access_log logs/host.access.log main;
rewrite ^/redirect.jsp$ https://www.test.co.kr:8444$1 permanent; ###8443 https로 전환
location / {
proxy_pass http://webtobhttp;
}
location /static {
root html;
index index.html index.htm;
}
location /metrics {
stub_status on;
allow all;
}
#error_page 404 /404.html;
# redirect server error pages to the static page /50x.html
#
error_page 500 502 503 504 /50x.html;
location = /50x.html {
root html;
}
}
}
2. 전역 블록
2.1. worker_processes
몇 개의 워커 프로세스를 생성할 것인지 결정하는 지시어. 1이면 모든 요청을 하나의 프로세스로 실행하겠다는 뜻이다.
2.2. error_log
에러 로그 파일 및 로그 레벨을 설정하는 지시어. 로그 레벨은 debug, info, notice, warn, error, crit 같은 종류가 있다.
2.3. pid
nginx의 마스터 프로세스 id 정보가 저장되는 파일을 설정한다.
2.4. sendfile
리눅스 서버의 sendfile() 시스템 콜을 사용할지 말지에 대한 설정이다. 이 설정을 on으로 할 경우, 커널에서 최적화된 알고리즘을 통해 파일 전송 속도가 빨라지며, 전송에 대한 메모리 사용이 감소되어 고성능 웹 서버 구축에 매우 유용하다.
2.5. server_tokens
헤더에 nginx 버전을 숨기는 기능을 한다. 보안 상 off 설정을 권고한다.
2.6. keepalive_timeout
접속 시 커넥션 유지 시간을 지정한다.
3. events 블록
3.1. worker_connections
하나의 프로세스가 처리할 수 있는 커넥션의 숫자
4. http 블록
4.1. include
옵션 항목을 설정해둔 파일의 경로를 지정하는데 보통 파일 확장명과 MIME 타입 목록을 지정한다.
4.2. default_type
octet_stream 기반의 http를 사용한다는 지시어다.
4.3. upstream 블록
origin 서버라고 부르기도 한다. 여기 서는 WAS, WEB Application 서버를 의미한다. nginx와 연결한 WEB Application 서버를 지정하는데 사용한다.
4.4. server 블록
하나의 WEB 사이트를 선언하는데 사용된다. Server 블록이 여러 개이면 한 개의 머신(호스트)에 여러 웹사이트를 설정할 수 있다.
Listen
이 웹사이트가 바인딩 되는 포트를 의미한다. Server 블록 안에서 설정한다.
server_name
클라이언트가 접속하는 서버(도메인 주소)를 설정한다. 이것과 실제로 들어온 requeset의 header에 명시된 값이 일치하는지 확인하여 server를 분기한다.
location 블록
Server 블록 안에서 특정 웹 사이트의 url을 처리하는데 사용한다.
'WEB > Nginx' 카테고리의 다른 글
[Nginx] 업로드 파일 용량 초과 오류 (0) | 2024.10.15 |
---|---|
[Nginx]기동 및 다운 (0) | 2023.07.26 |
[Nginx]설치 (0) | 2023.07.26 |