포스코x코딩온 웹 풀스택 양성과정

[포스코x코딩온] 웹 풀스택 과정 7주차 회고 | nginX

Codult 2024. 3. 29. 21:38
728x90

 

🚩 github 프로젝트 폴더 별도로 생성하기

github에 새로운 repository를 생성하고, 해당 repository로 접속하면 바로 프로젝트 파일들을 볼 수 있도록 작업하였다.
별도로 올리고자 하는 프로젝트 파일들이 있는 폴더를 VScode로 열고, 새로운 repository에 파일을 올려주는 명령어를 입력한다.

git remote add origin https://github.com/내 repository 주소

기존의 방식과 동일하게 순차적으로 add, commit, push을 해주면, 프로젝트 파일이 주소를 입력한 repository에 업로드 된 것을 확인할 수 있다.

🚩 PuTTY를 이용한 서버 열기

EC2에서, 인스턴스에 탄력적IP를 할당한다.
PuTTY에 해당 IP를 입력하여 서버를 열어준다.

  • Port는 22 (SSH는 22번 포트에서 열리므로)
  • SSH > Auth > Credentials에서 키파일을 업로드한다.
  • 다시 Session으로 돌아가 save 한 뒤에 서버를 열어준다.

🚩 nginx 설치 및 실행

아래 명령어에 따라 서버에 nginx를 설치하고 확인한다.
sudo apt-get update: 설치 가능한 패키지를 최신화
sudo apt-get install nginx: nginx를 설치
nginx -v: nginx 버전 확인 (버전이 나오면 제대로 설치된 것)
sudo systemctl start nginx: nginx 실행

🚩 nginx 설정

새로운 conf 파일 생성하여, proxy 설정을 해준다.
sudo vi /etc/nginx/sites-available/test.conf: test.conf 생성

server{
		listen 80;
		server_name IP주소;
		location / {
			proxy_pass http://127.0.0.1: 포트;
		}
	}

(입력하려면 'i' 키, 입력 종료하려면 'esc'키 / 저장하고 나갈 때 :wq, 저장안하고 나갈 때 ;q)

심볼릭 파일을 생성한다. (위 conf 파일과 연결되어 자동으로 같이 업데이트 된다.)
sudo ln -s /etc/nginx/sites-available/test.conf /etc/nginx/sites-enabled/test.conf
sudo ngingx -t: nginx 설정이 제대로 되었는지 확인 (ok가 떠야 제대로 완료된 것)
sudo systemctl restart nginx: nginx 재시작

※ sites-available/에는 작업하는 파일이, sites-enabled/에는 실제 nginx가 실행하는 파일이 위치한다.

🚩 default 파일 백업 및 삭제

~sites-available/ 의 default 파일을 ~sites-available-origin/ 으로 백업한다.
sudo cp -r /etc/nginx/sites-available/ /etc/nginx/sites-available-origin
~sites-enabled/ 의 default 파일을 ~sites-enabled-origin/ 으로 백업한다.
sudo cp -r /etc/nginx/sites-enabled/ /etc/nginx/sites-enabled-origin

백업이 완료된 뒤, 기존의 default 파일을 삭제한다.
sudo rm /etc/nginx/sites-available/default
sudo rm /etc/nginx/sites-enabled/default

🚩 node.js 설치

아래 명령어로 node.js를 설치한다.
curl -fsSL https://deb.nodesource.com/setup_lts.x | sudo -E bash
sudo apt-get install -y nodejs

설치가 완료되었는지 버전을 확인한다. (node -v)

pm2를 설치한다.
sudo npm install -g pm2

🚩 github 프로젝트 폴더 연결하기

프로젝트 폴더로 이동한 뒤, git clone을 진행한다.
git clone git주소 .

npm을 설치한다. (node modules를 git에 올리지 않았기 때문에 따로 설치해줘야 함.)
npm install
test 폴더 내 index.js 파일을 실행시킨다.
pm2 start index.js

파일 수정사항 발생 시, VScode에서 add/commit/push origin main 과정 거친 뒤, PuTTY 프로젝트 폴더에서 git pull origin main 한 뒤, pm2 재시작하면 된다(pm2 restart index.js).

※ 500 에러 발생 시, chmode (change mode) 명령어로 권한을 변경한다.
sudo chmod 711 ubuntu/ : 711은 사용자만 읽기/쓰기/실행 권한이 있도록 한다. (사용자 그룹과 외부 그룹은 실행권한만 있음)

🚩 RDS와 js 연결

DB의 정보를 담고 있는 js 파일 (ex. sequelize의 경우, config 파일에서 확인 가능)에 RDS의 정보를 기재한다.

  • host: RDS 데이터베이스의 엔드포인트
  • user: RDS 데이터베이스 마스터사용자 이름
  • password: RDS 데이터베이스 마스터사용자 비밀번호
 
728x90