ubuntu 가상머신에 프로젝트 배포해서 api 쏘기

소만이·2024년 8월 9일
post-thumbnail

ubuntu 가상머신과 내 db를 연결시키기 위해 웹 서버가 필요한데, nginx를 설치해서 연결해보려고 한다.
일단 가상머신에 nginx를 설치하자.

sudo apt-get install nginx

설치를 다 하고 ubuntu 서버 주소를 치면
nginx 페이지가 열린다!
이제 이 nginx 를 설정해줘야한다. nginx 방화벽을 여는 방법도 있지만 이번에는 이 방법을 택해서 사용해보려고 한다.

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

이 명령어를 쳐 default 파일을 수정할 것이다.

proxy_set_header X-Forwarded-Host $host;
                proxy_set_header X-Forwarded-Server $host;
                proxy_set_header X-Forwarded-For $proxy_add_x_forwarded_for;
                proxy_set_header Host $host;
                proxy_pass http://127.0.0.1:8080;
                


이렇게 설정해주고

sudo service nginx restart

하면 nginx 설정은 끝난다.
왜 이렇게 설정을 하냐는 디테일한 부분은 아직 모르겠다^.^;;

일단 저 location/ --> 이게 요청될 주소이고
proxy_pass --> 이게 포워딩될 주소라
http://주소 요청시 => http://localhost:8080/로 호출된다는 것만 알아두자.

아무튼 많이 찾아보고 공부해야될 것 같다. 일단 지금은 이렇게 하고 넘어가자.

설정을 다 했으면 가상머신과 내 외부 주소가 잘 붙는지 확인해보자.

내 외부주소 확인: ipconfig getifaddr en0
telnet ${내 db랑 연결된 외부 주소} ${열어놓은 포트}


위 사진처럼 문구가 나온다면 잘 붙는다는 표시다.
잘 붙으면 내 프로젝트 application.properties설정 가서
spring.datasource.url = jdbc:mysql://내주소:3307/${데이터베이스이름} 으로 바꾸고 프로젝트 경로 터미널에서

./gradlew build

를 하면 프로젝트/build/libs에 가면 jar 파일이 생성되었을 것이다.
이제 이 파일을 내 가상머신에 파일을 올려야하는데,

scp ${파일이름} ${가상머신이름}@${가상머신 주소}:~/${복사할디렉토리} 

명령어를 치면 가상머신에 내 jar 파일이 다운로드가 된 것을 확인할 수 있을 것이다.

virtualBox를 이용해서 scp 복사했을 때는 해당 virtualBox username 이랑 password를 쳐서 복사했는데 이번에 ec2로 이용해서 할 때는 pem키가 있어

❯ scp -i ${pem키가 있는 파일 경로/pem키} server-0.0.1-SNAPSHOT.jar ubuntu@${주소}:/home/ubuntu

로 사용해서 파일을 복사했다.

이제 jar 파일을 실행해보자. 그냥

java -jar ${빌드파일이름}

해서 실행해도 되지만, 백그라운드로 실행하는 법이 있다.

nohup java -jar ${빌드파일이름}&

해서 실행하고,

postman에서

전송해 확인하면 끝!!

ubuntu 가상머신이 server 가 되고 내 컴퓨터가 클라이언트단이 되기 때문에 포스트맨으로 주소를 쏠 때 서버쪽으로 쏴야한다는 것을 명심하자!

아직 서버와 클라단(?) 에 대해서 구분이 어렵다 ㅠ.ㅠ 공부하자아아아

0개의 댓글