[TIL] 210701
프로젝트 데드라인인 오늘은 배포를 했다.
전에 미니프로젝트에서 한 배포와 비슷할줄 알았지만 node.js로 한거라 그런지 좀 달랐다.
일단 ec2 서버는 기존 instance로 쓰고 gabia에서도 전에 쓰던 주소로 했다.
터미널에서 키파일로 연결해주고부터 조금 달랐다.
📂node.js 설치해주기
curl -sL https://deb.nodesource.com/setup_14.x | sudo -E bash -
sudo apt-get install -y nodejs
📂mongodb 설치해주기
wget -qO - https://www.mongodb.org/static/pgp/server-4.2.asc | sudo apt-key add -
echo "deb [ arch=amd64,arm64 ] https://repo.mongodb.org/apt/ubuntu bionic/mongodb-org/4.2 multiverse" | sudo tee /etc/apt/sources.list.d/mongodb-org-4.2.list
sudo apt-get update
sudo apt-get install -y mongodb-org
📂mongodb 실행, 접속, 계정생성
sudo service mongod start
mongo
use admin; //admin으로 바꾸고
db.createUser({user: "test", pwd: "test", roles:["root"]}); //계정생성하기
exit
sudo service mongod restart
📂mongodb 편집
sudo vi /etc/mongod.conf
net에 있는 bindIp: 127.0.0.1 을 0.0.0.0으로 바꿔주고
security 앞에 # 지워주고 안에 authorization: enabled 추가해주고
:wq로 저장하고 나가기 :q!는 그냥 나가기
나가서도 sudo service mongod restart로 다시 시작해주고
여기에 Robo3T랑 연결해줄려면 create해서 Connection칸에 address를 자기 instance IP:27107
Authorization에서 username과 password를 설정해주면 연결해진다.
그리고 내파일을 ec2에 올려줘야하는데 filezilla로 연결해줘서 업로드 했다.
그리고 터미널 켜서 서버를 켜줘야 하는데 터미널을 끄면 서버도 같이 꺼지기때문에 pm2로 켜줬다
sudo -s
npm install -g pm2
pm2 start app.js
이렇게 켜주고 한번 테스트하러 일지를 쓸려고 쓰기버튼을 클릭하는 순간! 뙇! 안올라간다.
에러메세지가 뭔가 mongoose 연결부분이 문제인거같아서 보니
mongoose
.connect("mongodb://localhost:27017/myBlog", {
localhost랑 연결되있어서 안되는건가 싶어서 찾아봤다
mongoose
.connect("mongodb://ID:password@ec2_IP:27017/dbname", {
으로 바꿔주니 authorization error가 나왔다. 그래서 뒷쪽 db이름을 없애주고 해보니 성공했다.
mongoose
.connect("mongodb://ID:password@ec2_IP:27017", {
이렇게 잘 마무리하고 잘 안되는 팀원들을 도와주다가 마감시간 12시 땡하고 잤다.
Author And Source
이 문제에 관하여([TIL] 210701), 우리는 이곳에서 더 많은 자료를 발견하고 링크를 클릭하여 보았다 https://velog.io/@dennis9352/TIL-20210701저자 귀속: 원작자 정보가 원작자 URL에 포함되어 있으며 저작권은 원작자 소유입니다.
우수한 개발자 콘텐츠 발견에 전념 (Collection and Share based on the CC Protocol.)