[NGINX] NGINX설치 방법 (Linux)

2024. 8. 27. 17:31·Linux
728x90

NGINX Download URL

https://nginx.org/en/download.html 에서 파일을 우클릭해서 주소를 복사합니다.

 

NGINX 설치

리눅스 환경에서 Root 로 로그인 하여 파일을 다운로드 받습니다.

컴파일까지 완료되면 /appstore/webserver/test_nginx 파일이 생성될 것입니다.

# nginx설치할 경로에 디렉토리 생성
$ mkdir -p /appstore/webserver/util
$ cd /appstore/webserver/util

# nginx 다운로드 및 압축 해제
$ wget https://nginx.org/download/nginx-1.25.3.tar.gz
$ tar zxvf nginx-1.25.3.tar.gz
$ cd /appstore/webserver/util/nginx-1.25.3

# nginx 서비스 계정 생성
$ useradd nginx

# nginx 컴파일 전 필수 사용 패키지 다운로드
$ yum -y install gcc gcc-c++ pcre pcre-devel openssl-devel zlib-devel

# nginx 컴파일
$ ./configure --prefix=/appstore/webserver/test_nginx --user=nginx --group=nginx --with-http_realip_module --with-http_stub_status_module --with-http_ssl_module
$ make install

 

NGINX 설정

$ vi /appstore/webserver/test_nginx/conf/nginx.conf

	user  nginx;         ## NGINX 프로세스가 실행되는 권한, root 권한은 보안상 위험함
	worker_processes  2; ## Default: 1, CPU 코어 하나에 최소한 한 개의 프로세스가 배정되도록 변경 권장
	worker_priority   0; ## 값이 작을 수록 높은 우선순위를 갖는다. 커널 프로세스의 기본 우선순위인 -5 이하로는 설정하지 않도록 한다.
	
	# 로그레벨 [ debug | info | notice | warn | error | crit ]
	error_log  /var/log/nginx/error.log error; ## 로그레벨을 warn -> error로 변경함
	pid        /var/run/nginx.pid;
	
	events {
	    worker_connections  1024; ## Default: 1024, 현 서버는 RAM 8GB라 상향조정
	    multi_accept         off; ## Default: off
	}
	
	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;
	    server_tokens     off;                ## 헤더에 NGINX 버전을 숨김 (보안상 설정 권장)
	    keepalive_timeout  65;                ## 접속 시 커넥션 유지 시간
	
	    #gzip  on;
	
	    ## 자신이 등록할 서버들에 대해서 별도로 관리하는 경로를 작성해주면된다.
	    ## yum 설치 예시: include /etc/nginx/conf.d/*.conf;
        include /appstore/webserver/test_nginx/conf/site-available/*.conf;
	}

 

여기서 site-available을 생성해서 별도로 conf파일을 생성하는 건 관리목적이 큽니다.

이렇게 분리해서 파일을 관리하면 추후에 특정 서비스만 설정 파일을 수정하니 오타나 휴먼에러로인한 문제를 감소시키기 때문입니다.

이 파일은 어떤 식으로 작성되는지 A_servcie.conf 한개만 확인해보겠습니다.

 

vi /appstore/webserver/test_nginx/conf/site-available/A_service.conf

server {
        listen       80;
        server_name  localhost;

        location / {
            root   html;
            index  index.html index.htm;
        }

        error_page   500 502 503 504  /50x.html;
        location = /50x.html {
            root   html;
        }
       }

 

NGINX 구동

$ cd /appstore/webserver/nginx_test/sbin/
$ ./nginx

 

728x90

'Linux' 카테고리의 다른 글

[Network] 자주 사용하는 주요 포트 및 프로토콜  (1) 2024.09.10
[Infra] HTTPS, SSL 도메인 인증서 교체 방법 및 주의 사항  (2) 2024.09.03
[WEB] X-Forwarded 헤더는 무엇일까?  (0) 2024.08.07
[Tomcat] Tomcat, web.xml 적용이 안되는 이유  (0) 2024.07.18
[Nginx] Nginx에서 upstream을 이용해 부하 분산 하기  (0) 2024.07.17
'Linux' 카테고리의 다른 글
  • [Network] 자주 사용하는 주요 포트 및 프로토콜
  • [Infra] HTTPS, SSL 도메인 인증서 교체 방법 및 주의 사항
  • [WEB] X-Forwarded 헤더는 무엇일까?
  • [Tomcat] Tomcat, web.xml 적용이 안되는 이유
정주원
정주원
개인블로그
  • 정주원
    Joon.eng
    정주원
  • 전체
    오늘
    어제
    • 분류 전체보기 (83)
      • Linux (43)
      • Windows (0)
      • Network (5)
      • Database (0)
      • Cloud (23)
      • Docker (3)
      • Ansible (2)
      • Language (1)
      • Etc (5)
  • 블로그 메뉴

    • 링크

      • GITLAB(woni)
    • 공지사항

    • 인기 글

    • hELLO· Designed By정상우.v4.10.0
    정주원
    [NGINX] NGINX설치 방법 (Linux)
    상단으로

    티스토리툴바