티스토리 뷰

Project/WWW

Nginx 디폴트(default)페이지 설정

evolutioning 2024. 12. 5. 11:28

 때때로 운영중인 사이트의 서버가 문제가생겼을때,

Ip를 변경할때 등의 이유로 서버점검페이지를 사용자에게 보여줘야할때가 종종 있기 마련이다.

 

tomcat과 nginx를 연동해서 사용하고있을때

어떻게 설정을 바꿔야하는지 알아보려한다.

 

1. Nginx.conf(기본)

vi /etc/nginx/nginx.conf
vim /etc/nginx/nginx.conf
nano /etc/nginx/nginx.conf

user  nginx;
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;

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;
#tcp_nopush     on;

keepalive_timeout  65;

#gzip  on;

include /etc/nginx/conf.d/*.conf
}

 

 

1) user nginx : Nginx 프로세스가 nginx 사용자 및 그룹으로 실행되도록 지정하고, 사용자가 존재해야하며,

해당 사용자 권한으로 웹 서버가 실행된다.

2) error_log /var/log/nginx/error.log warn : 에어 로그의 경로를 설정하고, 로그 레벨을 지정한다.

3) pid /var/run/nginx.pid : Nginx 프로세스가 실행중일때, 해당 프로세스의 ID를 기록한다.

4) http { ~~ } : HTTP 서버 관련 설정을 해주는 블록이다. 이번 포스팅에선 이부분을 사용한다.

5) include /etc/nginx/mime.types : MIME 타입을 정의하는 파일을 포함한다.

서버 => 클라이언트에게 전송하는 파일의 타입을 정의한다

6. include /etc/nginx/conf.d/*.conf : /etc/nginx/conf.d/ 디렉토리 안에있는 모든 .conf파일을 포함시킨다.

=> 6번과 관련된 깊이 다루는건 추후에 진행할 예정이다.

 

2. Nginx.conf_ test

위의 기본설정(4)번을 세팅한다.

http {
include      mime.types;
default_type application/octet-stream;

upstream tomcat {
server -----------:8080;
} # upstream end

server {
listen 80 default_server;
listen [::]:80 default_server;
server_name  ----------;
tcp_nopush on;
charset                     utf-8;
root D:\errorServer;
index index.html;

location / {
#            charset                     ;
#            proxy_http_version          ;
#            proxy_set_header            ;
#            proxy_set_header            ;
#            proxy_set_header            ;
#            proxy_set_header            ;
#            proxy_set_header            ;
#            proxy_set_header            ;
#            proxy_set_header            ;
#            proxy_set_header            ;
#            proxy_set_header            ;
#            proxy_connect_timeout       ;
#            proxy_send_timeout          ;
#            proxy_read_timeout          ;
#            proxy_redirect              ;
#            proxy_pass                  ;

root D:\errorServer;
index index.html;
} # location end

1) upstream tomcat : 로컬에서 진행하는 톰캣의 내 IP : 포트번호를 입력한다

192.xxx.xxx.xxx + 8080 포트로 기본지정했다.

해당 ip,포트는 스프링 => 서버 더블클릭 => 설정에서 확인할 수 있다.

2) server{} 블록 :

listen 80 default_server / listen [::]:80 default_server : 서버가 80포트에서 IPv4,IPv6의 요청을 수신하도록 설정했다.

server_name xxx.xxx.xxx.xxx : 해당 IP주소에서 들어오는 요청만 처리하는 설정이다.

 

3) root 디렉토리 : 이 설정은 웹서버의 기본 root 디렉토리를 지정한다.

필자는 D드라이브에 errorServer이라는 파일을 생성했다.

D드라이블안데 디렉토리 생성.

또한 index index.html; : 해당 디렉토리 안에 index.html을 지정해줘서 기본 index.html 파일을 반환하도록했다.

 

4) location{~~} 블록 : 주석처리된 부분은 proxy설정이다.

proxy설정은 요청을 백엔드 서버로 전달하거나, 헤더를 설정하는 역할이지만,

root 설정 + proxy 설정을 같이 사용할 수 없다.

 

두개의 설정을 분리해서 처리하는 방법은

# 정적 파일을 제공하는 위치
location / {
root /var/www/html;  
index index.html;
}

# 동적 요청을 백엔드 서버로 프록시하는 위치
location /api/ {
proxy_pass http://backend_server; 
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블록에 root 디렉토리 설정을 해주면,

톰캣을 실행했을때 Nginx에서 기본 디폴트 설정을해준 index.html이 열리게된다.

 

반응형

'Project > WWW' 카테고리의 다른 글

오픈API - 한국천문연구원_특일 정보  (0) 2025.02.21
게시판 조회 기능 (1)  (0) 2025.01.16
FlashMap["MESSAGE"] 적용  (0) 2024.10.14
로그인 (Login)기능  (1) 2024.08.30
회원가입(Join) 기능 추가 -2  (0) 2024.08.30
반응형
공지사항
최근에 올라온 글
최근에 달린 댓글
Total
Today
Yesterday
링크
«   2025/05   »
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
글 보관함