본문 바로가기
쿤즈 Server/AWS

[AWS] 아마존 EC2 서버에 NginX 설치하는 방법

by :)Koon 2021. 1. 4.

앞선 포스팅들에서 아마존 AWS에 가입하고 EC2 인스턴스 서버를 설치하고, 마지막으로 SSH로 접속하는 방법까지 알아보았습니다.

 

2020/12/31 - [쿤즈 Server/AWS] - [AWS] 아마존 웹 서비스(Amazon Web Services) 가입하는 방법

2020/12/31 - [쿤즈 Server/AWS] - [AWS] 아마존 EC2 서버 만드는 방법

2021/01/01 - [쿤즈 Server/AWS] - [AWS] 아마존 EC2 인스터스에 SSH 접속하는 방법

 

이렇게 준비된 서버에 이제는 서비스와 앱을 설치를 하면 언제 어디서든 내 서비스와 앱을 확인 할 수 있는 상태가 됩니다. 그래서 오늘은 웹 서비스를 할 수 있도록 하는 웹서버를 설치해보려 합니다.

 

이 포스팅에서는 웹 서버 중에서 NginX를 설치하는 방법에 대해서 알아보도록 하겠습니다.


NginX란 무엇인가

보통 엔진X(NginX)라고 읽습니다. NginX는 웹 서버 소프트웨어를 말합니다. Apache에 비해서 매우 가볍고 높은 성능을 목표로 하는 서버이며 웹 서버, 프록시 서버, 리버스 프록시 서버, 메일 서버 등의 기능을 가지고 있습니다.

 

NginX는 웹서버이기 때문에 정적 파일들과 인덱스 파일등의 표현이 가능하며 로드밸런싱 기능, 그리고 이제는 거의 필수가 된 SSL기능을 통해서 Https 기능도 지원합니다.

 

현재 NginX는 아파치(Apache) 웹 서버 다음으로 많이 사용되는 웹 서버입니다.


NginX 웹 서버 설치하기

리눅스의 장점은 명령어로 뭐든 설치가 가능하다는 것입니다. NginX도 마찬가지로 명령어로 설치할 수 있습니다. 하나씩 진행해 보도록 하겠습니다.


sudo 권한으로 업데이트 및 설치

아마존 AWS의 인스턴스에 접근하였고 최로 접근의 경우 일단 업데이트부터 진행합니다.

$ sudo yum update -y

업데이트의 내용이 있으면 패키지가 설치가 될 것이며 업데이트 내용이 없을 경우에는 패키지가 없다고 나오게 됩니다.


NginX 설치

NginX를 설치해보도록 하겠습니다. 패키지 이름은 nginx 입니다. 마찬가지로 아래와 같은 명령어를 사용해서 설치해 줍니다.

$ sudo yum install -y nginx

위 명령어를 입력하면 정상적으로 설치가 될 것입니다. 하지만 설치가 되지 않고 다음과 같은 오류를 발생시킵니다.

Loaded plugins: extras_suggestions, langpacks, priorities, update-motd
No package nginx available.
Error: Nothing to do

nginx is available in Amazon Linux Extra topic "nginx1"

To use, run
# sudo amazon-linux-extras install nginx1

Learn more at
https://aws.amazon.com/amazon-linux-2/faqs/#Amazon_Linux_Extras 

읽어보면 nginx 라는 패키지가 존재하지 않는다고 되어 있습니다. 하지만 nginx는 nginx1으로 사용이 가능하다고 표시되고 있습니다. 그리고 아래 실행하는 명령어까지 보여주었네요. 그대로 사용해 봅니다.

 

$ sudo amazon-linux-extras install nginx1

위와 같이 입력하면 정상적으로 Nginx가 설치되는 것을 확인할 수 있습니다.

 

이제 NginX를 그대로 실행시켜도 되지만 몇 가지 환경설정(conf)파일만 수정해 보겠습니다.


환경설정 파일 conf 수정

관리 편의상 sites-availabe 과 sites-enabled 디렉토리를 이용해서 관리하도록 합니다. 물론 nginx.conf 안에 있어서 그대로 사용해도 전혀 문제가 되지는 않습니다. 일단 2개의 디렉토리를 생성합니다.

sudo mkdir /etc/nginx/sites-available
$ sudo mkdir /etc/nginx/sites-enabled

이렇게 생성된 디렉토리에 1개의 파일을 생성할 예정이며 그 파일을 다시 링크를 걸어서 사용할 예정입니다.

먼저 /etc/nginx/nginx.conf 에 들어있는 server { ... } 이 부분을 모두 주석처리로 변경하고 복사합니다. 그리고 다음과 같이 변경해 줍니다.

    # Load modular configuration files from the /etc/nginx/conf.d directory.

    # See http://nginx.org/en/docs/ngx_core_module.html#include

    # for more information.

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

    include /etc/nginx/sites-enabled/*.conf; # 경로 추가


# 하단 주석으로 변경

#    server {

#        listen       80;

#        listen       [::]:80;

#        server_name  _;

#        #root         /usr/share/nginx/html;

하단부는 주석으로 변경해주고 새로 만든 디렉토리중 sites-enabled 경로의 파일을 포함시키도록 추가해줍니다.

그리고 sites-available 디렉토리안에 파일을 생성합니다.

$ sudo vi /etc/nginx/sites-available/default.conf

vi로 열리면 아까 복사한 부분을 이곳에 그대로 붙여 넣어 줍니다.

 

마지막으로 sites-enabled에 위에서 생성한 파일을 링크해 주도록 합니다.

$ sudo ln -s /etc/nginx/sites-available/default.conf /etc/nginx/sites-enabled/default.conf

이렇게 되면 Nginx 서비스는 구동되면서 nginx.conf 파일을 읽고 여기에 포함된 sites-enabled/default.conf 파일을 읽어서 실행하게 됩니다. 이제 server의 프록시나 정보를 수정하기 위해서 이 default.conf 파일이 수정되고 다뤄질 예정입니다.


NginX 재시작

아마존 AWS의 EC2 서버 중 AMI Linux 서버는 서비스를 관리하기 위한 관리자로 systemctl 명령어를 사용합니다. 따라서 NginX 서비스를 실행하기 위해서 다음과 같은 명령어를 사용합니다.

$ sudo systemctl restart nginx

설정이 정상적으로 됐다면 NginX가 실행되게 되고 퍼블릭 주소에 접속하면 아래와 같은 화면이 등장하게 됩니다.

 


이번 포스팅에서는 아마존 AWS의 EC2로 생성한 AMI Linux 인스턴스 서버에 NginX를 설치하는 방법을 알아보았습니다. 사실 설치 과정은 그리 복잡하지 않지만 vi의 조작법이나 명령어 shell에 익숙하지 않다면 쉽지 않은 내용일 수 있습니다. 같이 공부하면서 하나씩 알아가면 되니 천천히 공부해 보시기 바랍니다.

댓글