이 영역을 누르면 첫 페이지로 이동
일반인의 웹 개발일기 블로그의 첫 페이지로 이동

일반인의 웹 개발일기

페이지 맨 위로 올라가기

일반인의 웹 개발일기

웹 개발과 관련된 모든 이야기

[AWS] EC2 NGINX 설치하고 Config설정 및 배포하기

  • 2024.01.16 14:37
  • 개발 이야기/AWS (Amazon Web Services)
반응형

EC2에서 톰캣(Tomcat)을 사용하여 서버를 배포하고 있는데

Nginx로 무중단 배포를 한 번 해보고 싶어서 변경하려고 한다.

본 글에서는 우선 Nginx 설치부터 설정 및 배포까지 해보도록 하겠다.


1. NGINX 설치하기

1-1. Nginx 설치

yum 명령어를 사용해서 Nginx를 설치하자.

sudo yum install -y nginx

 

설치가 완료됐다. (더보기 시 설치 로그 확인)

더보기

Loaded plugins: extras_suggestions, langpacks, priorities, update-motd
amzn2-core                                                                                                                                     | 3.6 kB  00:00:00     
amzn2extra-docker                                                                                                                              | 2.9 kB  00:00:00     
amzn2extra-kernel-5.10                                                                                                                         | 3.0 kB  00:00:00     
epel/x86_64/metalink                                                                                                                           | 6.5 kB  00:00:00     
epel                                                                                                                                           | 4.7 kB  00:00:00     
google-chrome                                                                                                                                  | 1.3 kB  00:00:00     
(1/2): epel/x86_64/updateinfo                                                                                                                  | 1.0 MB  00:00:00     
(2/2): epel/x86_64/primary_db                                                                                                                  | 7.0 MB  00:00:00     
225 packages excluded due to repository priority protections
Resolving Dependencies
--> Running transaction check
---> Package nginx.x86_64 1:1.20.1-10.el7 will be installed
--> Processing Dependency: nginx-filesystem = 1:1.20.1-10.el7 for package: 1:nginx-1.20.1-10.el7.x86_64
--> Processing Dependency: libcrypto.so.1.1(OPENSSL_1_1_0)(64bit) for package: 1:nginx-1.20.1-10.el7.x86_64

--> Processing Dependency: libssl.so.1.1(OPENSSL_1_1_0)(64bit) for package: 1:nginx-1.20.1-10.el7.x86_64
--> Processing Dependency: libssl.so.1.1(OPENSSL_1_1_1)(64bit) for package: 1:nginx-1.20.1-10.el7.x86_64
--> Processing Dependency: nginx-filesystem for package: 1:nginx-1.20.1-10.el7.x86_64
--> Processing Dependency: redhat-indexhtml for package: 1:nginx-1.20.1-10.el7.x86_64
--> Processing Dependency: libcrypto.so.1.1()(64bit) for package: 1:nginx-1.20.1-10.el7.x86_64
--> Processing Dependency: libprofiler.so.0()(64bit) for package: 1:nginx-1.20.1-10.el7.x86_64
--> Processing Dependency: libssl.so.1.1()(64bit) for package: 1:nginx-1.20.1-10.el7.x86_64
--> Running transaction check
---> Package amazonlinux-indexhtml.noarch 0:1-1.amzn2 will be installed
---> Package gperftools-libs.x86_64 0:2.6.1-1.amzn2 will be installed
---> Package nginx-filesystem.noarch 1:1.20.1-10.el7 will be installed
---> Package openssl11-libs.x86_64 1:1.1.1g-12.amzn2.0.19 will be installed
--> Processing Dependency: openssl11-pkcs11 for package: 1:openssl11-libs-1.1.1g-12.amzn2.0.19.x86_64
--> Running transaction check
---> Package openssl11-pkcs11.x86_64 0:0.4.10-6.amzn2.0.1 will be installed
--> Finished Dependency Resolution

Dependencies Resolved


======================================================================================================================================================================
 Package                                       Arch                           Version                                        Repository                          Size
======================================================================================================================================================================
Installing:
 nginx                                         x86_64                         1:1.20.1-10.el7                                epel                               588 k
Installing for dependencies:
 amazonlinux-indexhtml                         noarch                         1-1.amzn2                                      amzn2-core                         4.1 k
 gperftools-libs                               x86_64                         2.6.1-1.amzn2                                  amzn2-core                         274 k
 nginx-filesystem                              noarch                         1:1.20.1-10.el7                                epel                                24 k
 openssl11-libs                                x86_64                         1:1.1.1g-12.amzn2.0.19                         amzn2-core                         1.4 M
 openssl11-pkcs11                              x86_64                         0.4.10-6.amzn2.0.1                             amzn2-core                          61 k

Transaction Summary
======================================================================================================================================================================
Install  1 Package (+5 Dependent packages)

Total download size: 2.4 M
Installed size: 6.7 M
Downloading packages:

(1/6): amazonlinux-indexhtml-1-1.amzn2.noarch.rpm                                                                                              | 4.1 kB  00:00:00     
(2/6): gperftools-libs-2.6.1-1.amzn2.x86_64.rpm                                                                                                | 274 kB  00:00:00     
(3/6): nginx-1.20.1-10.el7.x86_64.rpm                                                                                                          | 588 kB  00:00:00     
(4/6): nginx-filesystem-1.20.1-10.el7.noarch.rpm                                                                                               |  24 kB  00:00:00     
(5/6): openssl11-libs-1.1.1g-12.amzn2.0.19.x86_64.rpm                                                                                          | 1.4 MB  00:00:00     
(6/6): openssl11-pkcs11-0.4.10-6.amzn2.0.1.x86_64.rpm                                                                                          |  61 kB  00:00:00     
----------------------------------------------------------------------------------------------------------------------------------------------------------------------
Total                                                                                                                                 5.1 MB/s | 2.4 MB  00:00:00     
Running transaction check
Running transaction test
Transaction test succeeded
Running transaction
  Installing : openssl11-pkcs11-0.4.10-6.amzn2.0.1.x86_64                                                                                                         1/6 
  Installing : 1:openssl11-libs-1.1.1g-12.amzn2.0.19.x86_64                                                                                                       2/6 
  Installing : amazonlinux-indexhtml-1-1.amzn2.noarch                                                                                                             3/6 
  Installing : 1:nginx-filesystem-1.20.1-10.el7.noarch                                                                                                            4/6 
  Installing : gperftools-libs-2.6.1-1.amzn2.x86_64                                                                                                               5/6 
  Installing : 1:nginx-1.20.1-10.el7.x86_64                                                                                                                       6/6 
  Verifying  : 1:openssl11-libs-1.1.1g-12.amzn2.0.19.x86_64                                                                                                       1/6 
  Verifying  : gperftools-libs-2.6.1-1.amzn2.x86_64                                                                                                               2/6 
  Verifying  : openssl11-pkcs11-0.4.10-6.amzn2.0.1.x86_64                                                                                                         3/6 
  Verifying  : 1:nginx-filesystem-1.20.1-10.el7.noarch

Verifying  : 1:nginx-1.20.1-10.el7.x86_64                                                                                                                       6/6 

Installed:
  nginx.x86_64 1:1.20.1-10.el7                                                                                                                                        

Dependency Installed:
  amazonlinux-indexhtml.noarch 0:1-1.amzn2                gperftools-libs.x86_64 0:2.6.1-1.amzn2                  nginx-filesystem.noarch 1:1.20.1-10.el7           
  openssl11-libs.x86_64 1:1.1.1g-12.amzn2.0.19            openssl11-pkcs11.x86_64 0:0.4.10-6.amzn2.0.1           

Complete!

 

1-2. 버전 확인

nginx 1.20.1 버전이 잘 설치된 것을 확인할 수 있다.

sudo nginx -v
------------------------------
nginx version: nginx/1.20.1

 

2. Config 설정

2-1. nginx.conf 수정

nginx.conf 파일을 수정하기 위해 편집기를 연다.

sudo vi /etc/nginx/nginx.conf

 

server 부분을 따로 파일로 관리할 예정이라 include 추가하고

server 영역은 전부 주석처리한다.

include /etc/nginx/sites-enabled/*.conf;

#    server {
#        listen       80;
#        listen       [::]:80;
#        server_name  _;
#        root         /usr/share/nginx/html;
#
#        # Load configuration files for the default server block.
#        include /etc/nginx/default.d/*.conf;
#
#        error_page 404 /404.html;
#        location = /404.html {
#        }
#
#        error_page 500 502 503 504 /50x.html;
#        location = /50x.html {
#        }
#    }

 

2-2. server 설정

/etc/nginx 경로로 이동해서 디렉토리를 2개 생성한다.

sudo mkdir sites-available
sudo mkdir sites-enabled

 

sites-available 디렉토리로 이동하여 default.conf 파일을 하나 생성한다.

sudo vi default.conf

 

파일 안에 아래와 같이 세팅한다.

root 부분에 배포할 경로를 적어주면 된다.

server {
  listen 80;
  location / {
    root /project/nginx-project;
    index index.html index.htm;
    try_files $uri $uri/ /index.html;
  }
}

 

2-3. 심볼릭 링크

심볼릭 링크는 윈도우로 치면 바로가기로 이해하면 된다.

심볼릭 링크를 활용해서 sites-enabled 디렉토리에 default.conf 바로가기를 만든다.

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

 

sites-enabled 디렉토리로 이동하여 명령어를 실행하면 아래 이미지와 같이 심볼릭 링크 설정이 된다.

Symbolic
심볼릭 링크

 

3. 서버 실행

아주 간단하게 설정이 끝났고 이제 서버를 실행한다.

sudo service nginx start
----------------------------
sudo systemctl start nginx

 

간단하게 index.html에 "NGINX TEST" 문구 넣어서 서버를 실행해봤다.

Nginx Server
NGINX 서버

 

nginx 서버가 정상적으로 작동 중인 것을 확인할 수 있다.

systemctl status nginx
--------------------------------------------------------------
● nginx.service - The nginx HTTP and reverse proxy server
   Loaded: loaded (/usr/lib/systemd/system/nginx.service; disabled; vendor preset: disabled)
   Active: active (running) since Tue 2024-01-16 14:24:57 KST; 41s ago
  Process: 26461 ExecStart=/usr/sbin/nginx (code=exited, status=0/SUCCESS)
  Process: 26457 ExecStartPre=/usr/sbin/nginx -t (code=exited, status=0/SUCCESS)
  Process: 26456 ExecStartPre=/usr/bin/rm -f /run/nginx.pid (code=exited, status=0/SUCCESS)
 Main PID: 26463 (nginx)
   CGroup: /system.slice/nginx.service
           ├─26463 nginx: master process /usr/sbin/nginx
           └─26464 nginx: worker process

Jan 16 14:24:57 systemd[1]: Starting The nginx HTTP and reverse proxy server...
Jan 16 14:24:57 nginx[26457]: nginx: the configuration file /etc/nginx/nginx.conf syntax is ok
Jan 16 14:24:57 nginx[26457]: nginx: configuration file /etc/nginx/nginx.conf test is successful
Jan 16 14:24:57 systemd[1]: Started The nginx HTTP and reverse proxy server.

 


nginx 설치 및 설정부터 간단하게 서버 실행해서 접속되는 것까지 확인했는데

단순 배포라서 그런지 모르겠지만 그리 어렵지 않게 할 수 있었다.

 

Apache, Spring Boot 내장 톰캣 Let's Encrypt 무료 인증서 적용 방법 (Certbot)

 

[AWS] EC2 무료 SSL/TLS(HTTPS)적용 방법 (Apache Tomcat, Spring Boot 내장 Tomcat 적용) - Let's Encrypt (Certbot)

따로 운영 중인 서비스의 경우 HTTP 통신으로 사용 중이었는데, 구글이나 애플 서비스를 이용해야 되다 보니 HTTPS 통신이 불가피하게 되었다. SSL 인증서 적용하는 방법 중 유료가 아닌 무료로 적

diary-developer.tistory.com

 

Nginx SSL/TLS 인증서 적용하여 HTTPS로 리다이렉트까지 하는 방법

 

[AWS] EC2 NGINX에 무료 SSL/TLS 적용하고 HTTPS로 리다이렉트(Redirect) 하기 - Let's Encrypt (Certbot)

이번엔 Nginx에 SSL/TLS 인증서를 등록하고 http로 접속 시 https로 리다이렉트 하려고 한다. 이전 글에서 이어서 작성했다. [AWS] EC2 NGINX 설치하고 Config설정 및 배포하기 EC2에서 톰캣(Tomcat)을 사용하여

diary-developer.tistory.com

 


 

주식투자에 관심이 있으세요?
제가 매일 사용하는 주식 앱, '디핏'을 추천해 드립니다. 
이 앱으로 종목정보를 빠르게 파악하는 데 도움이 됩니다.

 

디핏 - 주식, 평점, 리스크, 공시, 알림

내 주식은 데이터 분석으로 똑똑하게!

deepit-lab.co.kr

반응형

'개발 이야기 > AWS (Amazon Web Services)' 카테고리의 다른 글

[AWS] EC2 Abuse Report 대응 및 해결 방법 - AWS EC2 Instance Connect  (0) 2024.01.25
[AWS] EC2 NGINX에 무료 SSL/TLS 적용하고 HTTPS로 리다이렉트(Redirect) 하기 - Let's Encrypt (Certbot)  (0) 2024.01.16
[AWS] EC2에서 Node.js, npm, yarn 패키지 설치하는 방법 (nvm)  (1) 2023.12.06
[AWS] EC2 무료 SSL/TLS(HTTPS)적용 방법 (Apache Tomcat, Spring Boot 내장 Tomcat 적용) - Let's Encrypt (Certbot)  (0) 2023.11.02

댓글

이 글 공유하기

  • 구독하기

    구독하기

  • 카카오톡

    카카오톡

  • 라인

    라인

  • 트위터

    트위터

  • Facebook

    Facebook

  • 카카오스토리

    카카오스토리

  • 밴드

    밴드

  • 네이버 블로그

    네이버 블로그

  • Pocket

    Pocket

  • Evernote

    Evernote

다른 글

  • [AWS] EC2 Abuse Report 대응 및 해결 방법 - AWS EC2 Instance Connect

    [AWS] EC2 Abuse Report 대응 및 해결 방법 - AWS EC2 Instance Connect

    2024.01.25
  • [AWS] EC2 NGINX에 무료 SSL/TLS 적용하고 HTTPS로 리다이렉트(Redirect) 하기 - Let's Encrypt (Certbot)

    [AWS] EC2 NGINX에 무료 SSL/TLS 적용하고 HTTPS로 리다이렉트(Redirect) 하기 - Let's Encrypt (Certbot)

    2024.01.16
  • [AWS] EC2에서 Node.js, npm, yarn 패키지 설치하는 방법 (nvm)

    [AWS] EC2에서 Node.js, npm, yarn 패키지 설치하는 방법 (nvm)

    2023.12.06
  • [AWS] EC2 무료 SSL/TLS(HTTPS)적용 방법 (Apache Tomcat, Spring Boot 내장 Tomcat 적용) - Let's Encrypt (Certbot)

    [AWS] EC2 무료 SSL/TLS(HTTPS)적용 방법 (Apache Tomcat, Spring Boot 내장 Tomcat 적용) - Let's Encrypt (Certbot)

    2023.11.02
다른 글 더 둘러보기

정보

일반인의 웹 개발일기 블로그의 첫 페이지로 이동

일반인의 웹 개발일기

  • 일반인의 웹 개발일기의 첫 페이지로 이동
반응형

검색

메뉴

  • 홈
  • 태그
  • 방명록

카테고리

  • 분류 전체보기 (47)
    • 사이드 프로젝트 (3)
      • 크롤링 (2)
    • 개발 이야기 (18)
      • MSA (7)
      • Spring Boot (3)
      • JPA (0)
      • Docker (1)
      • Javascript (2)
      • AWS (Amazon Web Services) (5)
      • Jenkins (0)
    • Database (4)
      • PostgreSQL (2)
      • MySQL (1)
      • Oracle (1)
    • 에러 정리 (4)
      • Docker (1)
      • JPA (1)
      • Python (1)
      • PostgreSQL (1)
    • 운영체제 (3)
      • Linux (3)
    • 게임 (8)
      • 마인크래프트(Minecraft) (2)
      • 팰월드(PalWorld) (6)
    • 워킹홀리데이 (6)
      • 일본 워킹 홀리데이 (6)

공지사항

인기 글

최근 글

정보

흔하디흔한개발자의 일반인의 웹 개발일기

일반인의 웹 개발일기

흔하디흔한개발자

블로그 구독하기

  • 구독하기
  • RSS 피드

방문자

  • 전체 방문자
  • 오늘
  • 어제

티스토리

  • 티스토리 홈
  • 이 블로그 관리하기
  • 글쓰기
Powered by Tistory / Kakao. © 흔하디흔한개발자. Designed by Fraccino.

티스토리툴바