# Ubuntu Setup Spring Boot App(Virtual Machine) 기준 - `sudo apt-get update && sudo apt-get upgrade` - Java 11: - 설치: `sudo apt-get install openjdk-11-jdk` - 환경변수 설정: ``` vi ~/.bashrc 아래 줄 추가 export JAVA_HOME=$(dirname $(dirname $(readlink -f $(which java)))) export PATH=$PATH:$JAVA_HOME/bin source ~/.bashrc ``` - Nginx: - 설치: ``` sudo apt-get -y update sudo apt-get -y install nginx ``` - 설정: 80포트로 앱 포워딩 ``` upstream 서버이름 { server 127.0.0.1:${서버 포트번호}; } server { listen 80; location / { proxy_set_header Host $host; proxy_set_header X-Real-IP $remote_addr; proxy_set_header X-Forwarded-For $proxy_add_x_forwarded_for; proxy_set_header X-Forwarded-Proto $scheme; proxy_pass 서버이름; } } ``` - MySQL Client: - 설치: ``` sudo apt install mysql-client-core-8.0 ``` - MySQL 방화벽 설정: ``` Azure Console 접속해서 VM ip 등록 vnet설정이 되어있으면 Private IP를 사용하기 때문이 불필요함 CREATE USER 'username'@'host' IDENTIFIED BY 'password'; GRANT ALL ON dbName.* TO 'username'@'password'; FLUSH PRIVILEGES; ``` - CI/CD - Jenkins 서버와 VM간 ssh authorized keys 설정 ``` # Jenkins rsa public key 확인 cat ~/.ssh/id_rsa.pub # VM에 public key 적용 ~/.ssh/authorized_keys 에 해당 값 추가 ``` - Jenkins Spring Boot VM 연결: [링크](https://devocean.sk.com/blog/techBoardDetail.do?ID=163889) - Jenkins에서 trigger되는 shell script: ``` # script.sh kill -9 $(ps aux | grep java | grep ${프로세스 이름} | awk '{print $2}') nohup java -jar ${jar파일 위치} --spring.profiles.active=${프로파일 값} & # script.sh 권한 설정 chmod 777 script.sh ``` - SSL적용: - self-signed CA 생성 및 인증서 발급: [링크](https://www.lesstif.com/system-admin/openssl-root-ca-ssl-6979614.html) - VM에 ssl 적용: ``` upstream ${서버이름} { server 127.0.0.1:${서버 포트번호}; } server { listen 443 ssl; ssl_certificate ${crt파일 위치}; ssl_certificate_key ${key파일 위치}; location / { proxy_set_header Host $host; proxy_set_header X-Real-IP $remote_addr; proxy_set_header X-Forwarded-For $proxy_add_x_forwarded_for; proxy_set_header X-Forwarded-Proto $scheme; proxy_pass http://${서버이름}; } } ```
×
Sign in
Email
Password
Forgot password
or
By clicking below, you agree to our
terms of service
.
Sign in via Facebook
Sign in via Twitter
Sign in via GitHub
Sign in via Dropbox
Sign in with Wallet
Wallet (
)
Connect another wallet
New to HackMD?
Sign up