본문 바로가기

리눅스

CentOS 7에서 NGINX의 최신 버전을 설치하는 방법

728x90

CentOS 7에서 NGINX의 최신 버전(안정 버전)을 설치하는 방법

nginx : High performance web server

 

RHEL and derivatives : http://nginx.org/en/linux_packages.html#RHEL-CentOS

테스트 환경

  • 운영체제 버전 정보
$ cat /etc/os-release | grep PRETTY_NAME | cut -d '"' -f 2
CentOS Linux 7 (Core)

NGINX 설치

EPEL 저장소 및 YUM Utilities 패키지 설치

yum install -y epel-release yum-utils

nginx.repo 파일 생성

sudo tee /etc/yum.repos.d/nginx.repo << EOF
[nginx-stable]
name=nginx stable repo
baseurl=https://nginx.org/packages/centos/\$releasever/\$basearch/
gpgcheck=1
enabled=1
gpgkey=https://nginx.org/keys/nginx_signing.key
module_hotfixes=true

[nginx-mainline]
name=nginx mainline repo
baseurl=https://nginx.org/packages/mainline/centos/\$releasever/\$basearch/
gpgcheck=1
enabled=0
gpgkey=https://nginx.org/keys/nginx_signing.key
module_hotfixes=true
EOF
더보기

---

nginx.repo 파일 확인

cat /etc/yum.repos.d/nginx.repo
$ cat /etc/yum.repos.d/nginx.repo
[nginx-stable]
name=nginx stable repo
baseurl=https://nginx.org/packages/centos/$releasever/$basearch/
gpgcheck=1
enabled=1
gpgkey=https://nginx.org/keys/nginx_signing.key
module_hotfixes=true

[nginx-mainline]
name=nginx mainline repo
baseurl=https://nginx.org/packages/mainline/centos/$releasever/$basearch/
gpgcheck=1
enabled=0
gpgkey=https://nginx.org/keys/nginx_signing.key
module_hotfixes=true

---

 

NGINX(stable) 저장소 활성화

sudo yum-config-manager --enable nginx-stable

활성화된 레포지토리 목록 확인

sudo yum repolist enabled
$ sudo yum repolist enabled
Loaded plugins: fastestmirror
Loading mirror speeds from cached hostfile
 * base: mirror.navercorp.com
 * epel: d2lzkl7pfhq30w.cloudfront.net
 * extras: mirror.navercorp.com
 * updates: mirror.navercorp.com
repo id                                repo name                                                       status
base/7/x86_64                          CentOS-7 - Base                                                 10,072
epel/x86_64                            Extra Packages for Enterprise Linux 7 - x86_64                  13,789
extras/7/x86_64                        CentOS-7 - Extras                                                  518
nginx-stable/7/x86_64                  nginx stable repo                                                  320
updates/7/x86_64                       CentOS-7 - Updates                                               5,367
repolist: 30,066

설치 전 NGINX 버전 정보 확인

yum info nginx
$ yum info nginx
Loaded plugins: fastestmirror
Loading mirror speeds from cached hostfile
 * base: mirror.kakao.com
 * epel: nrt.edge.kernel.org
 * extras: mirror.kakao.com
 * updates: mirror.kakao.com
Available Packages
Name        : nginx
Arch        : x86_64
Epoch       : 1
Version     : 1.21.1
Release     : 1.el7.ngx
Size        : 790 k
Repo        : nginx-mainline/7/x86_64
Summary     : High performance web server
URL         : https://nginx.org/
License     : 2-clause BSD-like license
Description : nginx [engine x] is an HTTP and reverse proxy server, as well as
            : a mail proxy server.
728x90

NGINX 패키지 설치

sudo yum install -y nginx

설치된 NGINX 버전 정보 확인

nginx -v
$ nginx -v
nginx version: nginx/1.21.4

NGINX 서비스 시작 및 활성화

sudo systemctl --now enable nginx

NGINX 서비스 상태 확인

sudo systemctl status nginx
  • NGINX 버전 정보 숨기기
    • nginx.conf 편집
vim /etc/nginx/nginx.conf
  • server_tokens off 추가
user  nginx;
worker_processes  auto;

error_log  /var/log/nginx/error.log notice;
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;

    server_tokens off;

    sendfile        on;
    #tcp_nopush     on;

    keepalive_timeout  65;

    #gzip  on;

    include /etc/nginx/conf.d/*.conf;
}
  • NGINX 상태 확인하는 페이지 활성화
    • default.conf 편집
더보기

---

cat /etc/nginx/conf.d/default.conf
server {
    listen       80;
    server_name  localhost;

    #access_log  /var/log/nginx/host.access.log  main;

    location / {
        root   /usr/share/nginx/html;
        index  index.html index.htm;
    }

    #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   /usr/share/nginx/html;
    }

    # proxy the PHP scripts to Apache listening on 127.0.0.1:80
    #
    #location ~ \.php$ {
    #    proxy_pass   http://127.0.0.1;
    #}

    # pass the PHP scripts to FastCGI server listening on 127.0.0.1:9000
    #
    #location ~ \.php$ {
    #    root           html;
    #    fastcgi_pass   127.0.0.1:9000;
    #    fastcgi_index  index.php;
    #    fastcgi_param  SCRIPT_FILENAME  /scripts$fastcgi_script_name;
    #    include        fastcgi_params;
    #}

    # deny access to .htaccess files, if Apache's document root
    # concurs with nginx's one
    #
    #location ~ /\.ht {
    #    deny  all;
    #}
}

---

sudo vim /etc/nginx/conf.d/default.conf

nginx_status 블록 추가

    location /nginx_status {
        # Nginx status 페이지 설정
        stub_status;
        access_log off;
        allow 127.0.0.1;
        allow 192.168.56.0/24;
        deny all;
    }

NGINX 구문 검사

nginx -t
$ nginx -t
nginx: the configuration file /etc/nginx/nginx.conf syntax is ok
nginx: configuration file /etc/nginx/nginx.conf test is successful

NGINX 서비스 재시작

sudo systemctl restart nginx

NGINX 상태 페이지 확인

curl localhost/nginx_status
$ curl localhost/nginx_status
Active connections: 1
server accepts handled requests
 1 1 1
Reading: 0 Writing: 1 Waiting: 0

필드의 의미 설명

  1. Active connections (활성 연결수): 현재 서버에 활성화된 클라이언트 연결 수를 나타냅니다. 이 숫자는 현재 처리 중인 클라이언트 연결 수를 나타냅니다.
  2. server accepts handled requests (서버의 연결 수, 처리 수, 요청 수): 다음 세 가지 정보를 포함합니다:
    • server accepts (서버가 수락한 연결 수): 웹 서버가 클라이언트의 연결을 수락한 총 횟수를 나타냅니다.
    • server handled (서버가 처리한 연결 수): 웹 서버가 성공적으로 처리한 총 연결 수를 나타냅니다.
    • requests (요청 수): 서버가 받고 처리한 총 요청 수를 나타냅니다.
  3. Reading, Writing, Waiting (읽기, 쓰기, 대기): 다음과 같은 세 가지 정보를 나타냅니다:
    • Reading (읽기): 현재 클라이언트 요청을 읽는 중인 연결 수를 나타냅니다.
    • Writing (쓰기): 현재 클라이언트에 응답을 보내는 중인 연결 수를 나타냅니다.
    • Waiting (대기): 클라이언트 요청을 처리 중이지 않고 대기 중인 연결 수를 나타냅니다. 이는 서버의 처리량에 따라 증가할 수 있습니다.

CentOS 7에 최신 버전의 NGINX가 설치되었습니다. 웹 서버를 구성하고 필요에 따라 사이트 설정을 추가하여 사용할 수 있습니다.

 

728x90