본문 바로가기

블록체인 기반 핀테크 및 응용 SW개발자 양성과정 일기

[91일차] 20210720 postman CRUD / Amazon aws back & front server 올리기 / NginX 설치, 환경설정

반응형

POSTMAN CRUD 해보기 

교수님 Github clone + 아래 작성 

 

 

req.params

/api/comment/1  or 2 3 4 ...   여기서 특정한 값만 쓸 때 

id 값 가변적으로 변함  ->  /:[변수명]  -> 이렇게 쓰면 변수명으로 받을 수 있다.

 

postman url send 할 때 url 끝에 id 값을 적어주기 

 

 


 

이제 서버에 올리기 

터미널 두 개 만들기

1. local-back

2. server-back

 

현재 경로까지 들어와서(반드시 현재위치 back까지 들어온 후)   ssh 복붙 -> 초록색 계정명@주소: 디렉토리 $ (커서) 가 나옴 

~ -> home/계정명

 

 

 

 

 

 

 

 

 

최상위 파일로 가는 명령어 

cd ~   
or   (둘 중 하나 선택)
cd /home/ubuntu

 

윈도우 -> \ 역슬래시로 경로 구분 

리눅스 ->  / 슬래시로 경로 구분 

 

 

홈 디렉토리 확인하기 

ls (숨긴파일 제외 후 보여줘) 

ls -al (숨긴 파일까지 모조리 보여줘!) 

 

리눅스는 파일 . 이 붙으면 숨김 파일이라는 뜻 !! 

 

-

 

 

 

 

 

 

 

 

 

교수님 clone해와서 github 주소가 달라짐 

파일 삭제하기 

rm [옵션] 디렉토리 or 파일명 

옵션 중 : -r 이 있음 / 뜻 : 하위 폴더도 삭제하겠다! 

-rf 파일 관한 상관없이 강제적으로 실행 시키겠다 ! 

f 는 꼭 ,,, 조심해서 쓰기!!! 지워지면 복구가 안됨 

삭제되는 경로 잘 봐ㄱ봐!

 

/슬러시의 뜻  :  절대경로 

rm -rf ./파일명
rm -rf /home/ubuntu/파일명

아래 명령어를 사용하면 디자스터.. 

 rm -rf /

 

 

/home/ubuntu 에 설치해야함. -> 여기에 awsTest [파일명] 이 생긴다. (폴더를 만들고 넣는게 X) 

https://github.com/ingoo-code/awsTest.git

 

 

git clone ~주소
ls    // 파일 확인
cd [파일명]
npm install 

 

서버 실행시키기  -> 에러 (db없대)

 

 

mysql 접속해서 react_comment 데이터 베이스 생성해주기 

mysql -uroot -proot
create database react_comment;
show databases;    //db확인 

mariaDB 나가기 

ctrl + c

서버 실행

sudo node server.js

* mysql 패스워드는 ubuntu에서 설치한 패스워드로 입력해주기 &*** 

원격에 server올리고 db접속도 안한 상태 

 

근데 우리는 pw가 틀려서 접속이 안될 수도 있다. 

그럼 아래 config로 들어가서 vi 에디터 키고 i누르고 비밀번호 수정 후 shift + : wq! 눌러서 나오기 

 

cd ..    //뒤로 가기
node server.js  // 서버 실행 

 

80번 포트로 바꾸기 

vi server.js
i   -> 3000-> 80수정
esc
shift + : wq!
node server.js    -> 오류남 (server실행은 sudo 관리자만 !) 

 

 

 

프로세스 안에 쓰레드가 있음 

프로세스 : 하나의 파일의 실행 (무조건 port 가 있다) ex) mysql 3306

* config에 원래 "port":3306이 있어야하는데 보통 당연한 (?) 포트 번호라서 생략함

 

 

 

127.0.0.1 == localhost == 내 컴퓨터를 뜻함 

 

 

 

 

 

 

 

 

 

다른 컴퓨터 -> 다른 컴퓨터 요청할 때 port 별로 

수 많은 컴퓨터들이 ec? server 로 연결 

http port 80은 mysql 보다 한 단계 업그레이드 된 것 (열리면 해킹, 보안 위험)  

port 1~ 1500번까지 리눅스가 막아놓음 (sudo로 실행해야한다.) => 그래서 우리가 테스트할 때 3000번을 씀 

 

 

sudo node serverl.js

 

-> 오류 80포트 실행 중이다. 

 

 

sudo npx pm2 kill 
sudo node server.js

 

 

브라우저 들어가보기 

 

POSTMAN 에서 아래 시도해보기 

mysql 들어가서 db 확인해보기 

mysql -uroot -proot 

 

 

나중에 pm2 로 돌릴 것  - 아직은 노노 

 

아마존 인스턴트 꺼놓기 한달에 750시간이면 요금 발생 (모든 인스턴트의 시간 합해서) 

 

=> 여기까지 api, hosting 해봄 -> 그동안 프로젝트 올려볼 수 있음  !! ! 

Back end 끝

 

 

 


 

Back에서 설치한 것 

node.js / mysql 

 

Front server 설치할 것

node.js / NginX 

 

NginX의 등장..

 

 

Webpack != server

webpack은 js, css 등등의 파일들을....하나로 만들은 것 

그럼 dev server는 ? -> 개발 서버 -> 실질적으로 올리는 서버가 X

 

80번 포트 - html 만 가져오면됨 - html 안에 js, css 가 있음 

리액트로 만들어진 파일은 html, js, css 총 세가지의 파일만 필요하다. 

80번 포트를 열게끔 해주는 아이가 NginX 

Node.js 에서 express도 가능하지 않을까요 ? 가능해요 가능은 합니다. 

NginX 다음에 배울 리덕스와 관련있어서 이걸로 하는 것  + 실무에서 많이 씀 

NginX 통해 port 80을 열것이다.

NginX 환경설정,,,

 

 

setting...그만,,

 

 

 


 

 

FRONT

 

1. 새 인스턴스 생성 

2. vs 터미널 파워셀 'front' 생성

3. vs 터미널 front 로 경로 설정 

4. ssh 복붙 - 리눅스 들어가기

5. node.js 설치  

목차 2번 

https://blckchainetc.tistory.com/275

 

[89일차 복습] 아마존 웹서버 구축 / 호스팅 / 배포 / 비용 / 방법

🧸 복잡하고 복잡스런 아마존 aws 웹서버 구축 환경설정 방법 [ CONTENTS ] 1. Amazon ec2 가상 리눅스 인스턴스 생성 2. Node.js, mySQL 설치 / 다운 3. Node.js, express에서 작성한 코드 리눅스에 연결 4. 포..

blckchainetc.tistory.com

 

6. NginX 설치 

sudo apt-get install nginx

 

7. NginX 환경설정 

위의 명령어로 etc/nginx 가 생김 

cd /etc/nginx  //들어가기 
ls -al             //파일 확인

 

중요한 3가지 폴더

nginx.conf : 설정 파일(text파일) (vi nginx.conf 로 들어가서 구경해봐봐!  ##은 주석 ) 

sites-available (폴더다! - 앞에 d 가 달려있음 ) : 설정 파일 저장소 

환경설정할 거를 다 만들어 놓기 

sites-enabled (폴더) : 설정 파일을 실행시키는 아이

윈도우로 -> 바로가기로 만들어서 실행시킴 (리눅스 명령어 : symbolic link = 윈도우의 바탕화면에 바로가기 파일과 같다)

 

<step>

1. sites-available 설정파일 만들기

2. sites-enabled  바로가기 세팅하기

3. nginx 실행  

 

 

 

 

명령어

cp : copy - 폴더나 파일 복사

mv : move - 폴더나 파일을 이동시키기 

 

리눅스는 기본적으로 보안이 좋다 ~ 라고 생각되어지고 있음 

unix(유료), linux(무료), window (유료)

unix != linux 

linux는 unix틀을 가지고 와서 공짜로 배포 

계정에 따른 권한들이 잘 설정되어 있음 

소유권이 root이면 최고 관리자 : 그럼 해당 파일은 최고관리자만 only 수정할 수 있다. 

 

cp 사용법

cp -r [기존디렉토리] [변경할 디렉토리]

* -r 하위 폴더도 포함 

sudo cp -r /etc/nginx/sites-available /etc/nginx/sites-available-backup
sudo cp -r /etc/nginx/sites-enabled/ etc/nginx/sites-enabled-backup

 

이제 폴더 안으로 들어갈 것

cd sites-available

default 파일을 지울 것

최고관리자로 실행, 하위가없어서 -r 옵션 없어도 됨 

sudo rm default 

cd ..
cd sties-enabled
ls -al       // 확인 -> default 역시 지워주기 
sudo rm default
ls -al       // 잘 삭제되었는지 확인 

 

 

sites-available 안에 설정 파일 만들기 

cd ..     //해당 파일로 다시 들어가야해서 나오기 -> 들어가기 
cd sites-available

 

 

text 파일 하나 생성하기 

* vi 파일이 있으면 읽고 / 없으면 이 파일명으로 생성  

현재 디렉토리는 최고 관리자 권한이라서 ubuntu 가 아닌 최고 관리자 sudo로 ㄱ ㄱ

sudo vi myapp.conf

 

 

 

 

try_files $uri ... -> 이 부분은 리액트 url 변경 방지 

작성하고 esc -> shift + : wq! 

 

 

설정 파일 저장한 상태 

sites-enabled 로 파일을 '바로가기'로 만들어서 옮길거야 -> 요게 리눅스에서 '심볼릭 링크' 라고 불린다.

 

 

 

바로가기 만들기 

sudo ln -s [기존디렉토리] [바로가기 만들 디렉토리]

sudo ln -s ./myapp.conf /etc/nginx/sites-enabled/myapp.conf     // -> 오류남 ! 아래걸로 ㄱ ㄱ ! 


// 바로가기가 잘 만들어졌는지 확인하러가기 
cd ..
cd ./sites-enabled
ls -al 

 

 

nginx 잘 작동되는지 test 

sudo nginx -t v

뭔가 오류가 있..

 

 

cd sites-enabled
sudo rm myapp.conf
ls -al // 잘 삭제되었나 확인
sudo ln -s /etc/nginx/sites-available/myapp.conf /etc/nginx/sites-enabled/myapp.conf 
cd ..
ls   // 확인 
sudo nginx -t   // nginx 잘 있는지 확인 

 

start로 실행시켜보기 

sudo systemctl start nginx  

인스턴스가서 public IP 주소 브라우저에 입력 -> 성공 ! 

 

nginx 끄기 

sudo systemctl stop nginx

 

 

 

교수님이 알려주시는 걸 따라할 수는 있지만 다른 프로그램 환경설정을 혼자하게된다면 어떡하지?????????????

막막하군,,,,

반응형