aws ec2 서버에 nginx 적용
- aws 서버 개설
1. 인스턴스 만들기
AWS 계정을 사용하여 aws 콘솔에 접속해주세요.
좌측 상단에 보이는 인스턴스 시작 버튼을 눌러주시면, 이런 화면이 나타나게 됩니다.
우리는 ubuntu로 서버를 만들 것이기에, 위에서 6번째에 있는 Ubuntu Server 18.04 LTS (HVM), SSD Volume Type - ami-07ebfd5b3428b6f4d (64비트 x86) / ami-0400a1104d5b9caa1 (64비트 Arm) 옆에 있는 선택 버튼을 클릭해주도록 합시다.
선택 버튼을 누르게 된다면, 인스턴스 유형 선택으로 넘어가게 되는데, 우리는 크레딧이 없음으로, 프리티어 사용 가능이라는 뱃지가 붙은 t2.micro를 선택해주도록 합시다.
다음으로, 6. 보안 그룹 구성
세가지의 트랙픽을 모두 허용시키면 된다.
아니면 아래 이미지처럼 따로 보안 그룹설정에서 설정해도 된다.
유형프로토콜포트범위소스설명
ssh | TCP | 22 | 0.0.0.0/0 | ssh 접근을 위한 포트입니다. |
http | tcp | 80 | 0.0.0.0/0, ::/0 | http 접근을 위한 포트입니다. |
https | tcp | 443 | 0.0.0.0/0, ::/0 | https 접근을 위한 포트입니다. |
사용자 지정 TCP | tcp | 3000 | 0.0.0.0/0 | Node.JS 접근을 위한 임시 포트입니다. |
Ubuntu 기본 설정 & nginx
먼저, 아래와 같은 커맨드를 입력하여 기본적인 업데이트합니다.
sudo apt-get update
sudo apt-get upgrade -y
그 다음에는, ngnix를 설치합니다.
sudo apt install nginx -y
sudo apt install nginx nginx-full -y
sudo apt install nginx-extras -y
ngnix가 잘 설치 되었는지 확인합니다.
sudo service ngnix start
이 커맨드를 입력하게 되면, 1초가 지나고 다시 다음 커맨드를 입력할 수 있게 바뀌는데요,
다시 인스턴스 콘솔로 돌아가 ipv4 퍼블릭 ip 부분에 있는 IP를 입력해 주시면. 이런식으로 nginx 서버에 접속을 할 수 있습니다.
혹시라도 서비스가 활성화되지 않은 경우 다음 명령을 사용하여 Nginx 서비스를 즉시 활성화하십시오.
sudo systemctl enable nginx --now
UFW 구성
먼저 UFW가 설치되지 않은 경우 다음 명령을 사용하여 방화벽을 다시 설치합니다.
sudo apt install ufw -y
다음 명령으로 UFW를 활성화합니다.
sudo ufw enable
들어오는 모든 연결은 기본적으로 차단되며 나가는 모든 연결은 허용됩니다.
다음을 입력하여 설치한 응용 프로그램을 찾으십시오.
sudo ufw app list
다음 모든 옵션을 포함하여 HTTP(포트 80), HTTPS(포트 443) 또는 전체에서 Nginx를 활성화할 수 있습니다.
ssh (22번포트)
sud0 ufw allow "OpenSSH'
HTTP(포트 80):
sudo ufw allow 'Nginx HTTP'
HTTP(포트 443):
sudo ufw allow 'Nginx HTTPS'
HTTP 및 HTTPS(전체):
sudo ufw allow 'Nginx FULL'
다음 명령을 사용하여 방화벽 규칙이 활성 상태인지 확인합니다.
sudo ufw status
Nginx Reverse-Proxy 설정하기
다시 터미널로 돌아와, 아래와 같은 명령어를 입력해 /etc/nginx/sites-enabled 경로로 이동합니다..
cd /etc/nginx/sites-enabled
ls 를 사용해, 파일의 구조를 보면, default라는 파일이 보일건데요, 이것을 삭제한 다음, 이것을 nano 에디터를 사용해 다시 만들고, 수정해보겠습니다.
ls
// default
sudo rm default
sudo nano default
nano 텍스트 에디터를 열어, 다음과 같은 내용을 입력해주세요.
default
server {
listen 80;
listen [::]:80;
access_log /var/log/nginx/reverse-access.log;
error_log /var/log/nginx/reverse-error.log;
location / {
proxy_pass http://127.0.0.1:3000;
}
}
Ctrl + S를 눌러 저장을 완료한 다음, Ctrl + X를 눌러 저장합니다.
내가 작성한 코드가 정상적으로 입력 되었는지 확인 하려면, 아래 명령어를 입력합니다.
주석과 같이 표시되게 된다면, 모든 준비는 끝난겁니다 :
sudo 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 service nginx restart
nginx 상태 확인 코드
sudo systemctl status nginx
systemctl is-active nginx
lsof를 사용하여 Nginx 상태를 확인하는 방법
NS 이소프 "의 약어이다.열린 파일 나열”. lsof 명령은 파일 시스템의 활성 사용자 프로세스를 표시합니다. 파일 시스템이 여전히 사용 중이고 마운트 해제할 수 없는 이유를 파악하는 데 유용할 수 있습니다.
활용 lsof 명령 이랑 "-NS” 특정 포트에서 실행 중인 모든 프로세스를 보기 위한 옵션입니다. 아래 주어진 명령을 실행하면 현재 포트 80에서 실행 중인 모든 프로세스가 표시됩니다.
sudo lsof -i TCP:80
'기술' 카테고리의 다른 글
nginx (0) | 2022.05.28 |
---|---|
CI/CD (0) | 2022.05.23 |
git 터미널 명령어 (0) | 2022.05.21 |
git 브랜치 전략 (0) | 2022.05.21 |
Node.js Express SSL - Let's Encrypt (0) | 2022.05.21 |