AWS - EC2 인스턴스에 NGINX 구축

jinho_pca·2021년 8월 10일
2

nginx

목록 보기
1/3
post-thumbnail

Nginx란

  • Nginx는 경량 웹 서버이다.
    클라이언트로부터 요청을 받았을 때 요청에 맞는 정적 파일을 응답해주는 Http Web Server로 활용되기도 하고, Reverse Proxy Server로 활용하여 WAS 서버의 부하를 줄일 수 있는 로드 밸런서로 활용되기도 한다.

EC2에 Nginx 설치 및 Spring Boot 프로젝트 연동

1) EC2 인스턴스 접속 후 nginx 설치

sudo yum install nginx

yum을 통해 nginx를 설치하려는 순간 yum이 설치되어 있지 않아서 오류가 발생했다.

그래서 아래의 링크를 참고하여 진행했지만 역시나 오류가 발생했다.

결국 yum을 통한 방법은 포기했고 아래 명령어를 통해 nginx를 설치했다.

sudo apt-get install nginx

2) nginx 실행 및 확인

sudo service nginx start

위의 명령어를 사용하여 nginx를 실행하고

ps -ef | grep nginx

위의 명령어를 사용하여 실행이 잘 되었는지 확인을 한다.
그리고 외부에서 잘 노출되는지 확인을 위해 아래 주소로 접속해 보았다.

http://ec2-{ec2인스턴스 탄력적 ip주소(. 대신 - 사용)}.ap-northeast-2.compute.amazonaws.com/

여기까지 이상이 없다면 nginx 설치와 구동은 완료된 것이다.

3) springboot 프로젝트와 nginx 연결

먼저 nginx가 현재 실행중인 스프링부트 프로젝트를 바라볼 수 있도록(reverse proxy) 설정을 해야한다.

sudo vi /etc/nginx/nginx.conf

위의 명령어를 입력하여 server 아래의 location / 부분을 찾아 아래코드를 추가한다.
하지만 내 nginx.conf파일은 저런형태가 아니었고, 다른 방법을 찾아야 했고 마침내 아래 링크들을 참고하여 해결했다.

sudo vi /etc/nginx/sites-available/default

위 명령어를 통해 vi 편집기로 들어가서 아래 코드처럼 변경하면 된다.

#try_files $uri $uri/ =404;
proxy_pass http://localhost:8080;
proxy_set_header X-Real-IP $remote_addr;
proxy_set_header X-Forwarded-For $proxy_add_x_forwarded_for;
proxy_set_header Host $http_host;


여기까지 완료 되었다면 설정한 내용을 적용하여 nginx를 재시작 하면된다.

sudo service nginx restart

4) 주의사항

  • 만약 접속이 안된다면 AWS EC2 의 80번 포트에 대한 접근이 허용 되어있는지 확인할 것
  • nginx 에서 was로의 연결이 안되는 상황에다 우분투 사용자라면
    sudo vi /etc/nginx/sites-available/default 에서 location을 변경해라.

참고자료

profile
기억보단 기록

0개의 댓글