[비트교육센터][리눅스] 4일차 nginx, su, aws
[비트교육센터][Django] 2일차 자바와 장고를 연결하기
1. 자바와 장고를 연결해 개인지 고양이인지를 구별하는 웹페이지 만들기 - jpa게시판 https://julian5383.tistory.com/229 [비트교육센터][Spring-boot] JPA를 이용한 게시판 만들기 1. Jpa를 이용한 판매시스템
julian5383.tistory.com
[비트교육센터][리눅스] 3일차 프로젝트를 위한 환경 설계하기, guincorn
1. JDK 깔기 [1] 자바 설치 되어져 있는지 확인 - java -version을 입력해 자바가 설치되어 있는지 확인한다. - 현재 not found로 되어 있어서 없다는 것을 알 수 있다. [2] jdk 설치 sudo apt install openjdk-17-jdk [3
julian5383.tistory.com
- 해당 게시물에서 이어진다.
1. NGINX
4-08 Nginx
SBB 서비스는 현재 8080번 포트로 서비스를 하고 있다. 하지만 대부분의 인터넷 서비스는 8080번 포트 대신 80번 포트로 서비스를 한다. 80번 포트를 사용하면 `고정아이…
wikidocs.net
[1] 기능
-원래는 Tomcat에 미니 web server가 있어서 개발용으로 사용, 그런데 실제 web server에서는 대량의 요청이 들어오니까 nginx 필요
-Nginx가 load balance 해줌
-reserved proxy 기능: 대리인 기능; 어떤 요청은 Tomcat으로, 어떤 기능은 django
-외부폴더에 static resources 다루는 folder 지정 가능
[2] 경로 수정
- FileTransferService에서 baseurl변수에서 맨끝경로에 /를 추가하고 jar파일을 한번더 추가한다.
[3] nginx 설치
- sudo apt install nginx를 입력해 nginx를 설치한다.
[4] nginx 설정
1) sbb 작성
server {
listen 80;
server_name localhost;
location / {
proxy_pass http://localhost:8080;
proxy_set_header X-Real-IP $remote_addr;
proxy_set_header X-Forwarded-For $proxy_add_x_forwarded_for;
proxy_set_header Host $http_host;
}
}
- etc/nginx/sites-available 디렉토리로 이동하고 sudo vi sbb를 입력해 sbb파일을 아래처럼 작성한다.
2) sbb파일이 Nginx가 환경파일로 읽을 수 있도록 설정하기
- cd /etc/nginx/sites-enabled 디렉토리로 이동한다.
- ls명령어를 수행해 default파일이 있는지 확인한다.
- sudo rm default를 입력해 default파일을 삭제시킨다.
- sudo ln -s /etc/nginx/sites-available/sbb를 입력해 sbb파일을 링크한다.
[5] Nginx 실행
- sudo nginx -s reload를 입력해 설정파일 reload를 리로드한다.
- sudo systemctl start nginx를 입력해 웹서버를 시작하다.
- sudo systemctl status nginx를 입력해 웹서버가 동작하는지 확인한다.
- sudo systemctl enable nginx를 입력해 서버 자동 시작을 등록해 놓는다.
- jar디렉토리로 가서 java -jar everytime.jar를 입력해 웹을 실행한다.
- 우분투서버에서 파이어폭스로 들어가 localhost:80/list를 입력하면 웹이 실행됨을 볼 수 있다.
- 포트포워딩을 적용해 윗사진처럼 작성해준다.
- 윈도우 브라우저에서 localhost:9500/list로 입력하면 웹사이트에 들어가진다.
2. 관리자 비밀번호 설정
[1] root 비밀번호 설정하기
- sudo bash를 입력해 root계정으로 bash 실행하기.
- whoami를 입력하면 현재 무슨 계정인지 알 수 있다.
- passwd를 입력해 비밀번호를 변경한다.
- exit를 입력하고 sudo bash로 다시 들어와 변경한 비밀번호로 다시 bash를 실행해 본다.
[2] su와 su-의 차이
https://storycompiler.tistory.com/44
[Ubuntu/Linux] su와 su - 차이점을 정리해보기
사용자 계정으로 로그인한 후간혹 관리자 root 권한이 필요할 때가 있습니다. 패키지를 설치하거나,시스템 설정 파일을 수정하거나,신규유저를 추가하거나,다른 계정으로 파일권한을 변경하거
storycompiler.tistory.com
sudo와 su, su - root 그리고 admin, user 의 차이
배포하는 과정에서, sudo su - root 라는 명령어를 입력하는데,sudo는 알겠는데 root는 왜나오지.. 싶어서 정리 하지 않고선 못넘어 가겠으니오늘의 정리는 이것으로 정했다.😲여러 블로그를 읽고 돌
velog.io
1) su
- su를 입력하면 계정만 root로 바뀐다. su는 전환되어도 기존 환경설정이 유지된다.
- $ su 계정명: 현재 사용자를 로그아웃하지 않은 상태에서 다른 사용자의 계정으로 전환하는 명령어이다.
2) su -
- su -를 입력하면 .bashrc파일에 대한 정보가 들어온다. 해당 계정에 대한 환경설정을 가져온다.
- $ su - 계정명: 다른 사용자의 계정으로 완전히 전환하고, 전환한 사용자의 환경설정을 불러오는 명령어이다.
3) sshd를 루트계정으로 로그인해보기
- vi /etc/ssh/sshd_config를 입력해 sshd_config파일에 들어간다.
- /PermitRoot를 입력해 PermitRoot단어를 검색한다. 단어를 찾으면 엔터키를 누른다.
- i를 눌러 insert상태에서 주석처리를 해제하고 PermitRootLogin을 yes로 바꾼다.
- 저장하고 나와서 sudo systemctl restart ssh를 눌러 재부팅한다.
- 다른 powershell을 열어 ssh root@localhost -p 2200을 입력해 root계정으로 들어가본다.
4) su와 su-에서 JAVA_HOME 입력해보기
- su-안하고 들어가면 해당계정에서 bashrc를 안먹는지 확인한다.
- su를 입력해 root로 간후 echo $JAVA_HOME을 입력하면 아래 자바 경로가 뜬다.
- su-를 입력해 root로 간후 echo $JAVA_HOME을 입력하면 자바 경로가 뜨지를 않는다.
- 이 이유는 su는 계정이름만 바뀌는 것이기 때문에 환경설정은 그대로 적용된다.
- vi .bashrc를 입력해 맨 아래쪽으로 내려가면 이전에 자바 환경변수를 설정한 것이 그대로 남아있다.
- 단, su-는 전환한 사용자의 환경설정도 그대로 가져오기 때문에 vi .bashrc를 입력해 맨 아래로 내려가면 자바 환경변수에 대해 설정한 것이 없음을 볼 수 있다.
3. AWS
- AWS: 아마존 웹 서비스는 아마존닷컴의 클라우드 컴퓨팅 사업부이다. 아마존 웹 서비스는 다른 웹 사이트나 클라이언트측 응용 프로그램에 대해 온라인 서비스를 제공하고 있다.
(여담으로 필자는 신용카드, 비자카드가 없어서 AWS를 구매하지 못해 선생님이 하시는 내용을 캡쳐했다.)
무료 클라우드 컴퓨팅 서비스 - AWS 프리 티어
Q: AWS 프리 티어란 무엇입니까? AWS 프리 티어는 고객에게 서비스별로 지정된 한도 내에서 무료로 AWS 서비스를 살펴보고 사용해 볼 수 있는 기능을 제공합니다. 프리 티어는 12개월 프리 티어, 상
aws.amazon.com
- 먼저 회원가입을 한다.
- 회원가입후 컴퓨팅->EC2로 간다.
- 인스턴스 시작에 들어가면 먼저 이름을 정한다.
- Ubuntu서버를 선택한다.
- Amazon Machine Image에서 기본으로 선택되어 있는 Ubuntu Server 22.04 LTS (HVM), SSD Volume Type을 확인한다.
- 키 페어에서 '새 키 페어 생성'을 누른다.
- 키 페어 이름을 지어주고 '키 페어 생성'을 누른다.
- 그러면 aws-key.pem이 다운될 것이다.
- 이 파일을 .ssh에 넣어준다.
- .ssh 폴더는 아래 게시물을 참고하기를 바란다.
https://julian5383.tistory.com/234
[비트교육센터][리눅스] 2일차 config, bash, grep, awk, 파일링크, tar, gzip
1. config 파일 [1] config 파일 만들기 Host ubuntu22 Hostname localhost User last Port 2200 #IdentityFile ~/.ssh/idrsa - 하나의 서버에 대한 ssh접속용 정보를 담아둔다. - 여담으로, aws는 암호화 키파일로 들어감, 암호
julian5383.tistory.com
- 네트워크 설정으로 가서 '인터넷에서 HTTP 트래픽 허용'을 체크한다.
- 스토리지 구성으로 가 8 GiB로 되어 있는 곳에 30으로 바꾸어 입력한다.
- 해당 입력칸이 사라지고 잠시후 위에 처럼 뜰 것이다. 그러면 30 GiB를 입력해주면 된다.
- '인스턴스 시작'을 누른다.
- 해당 페이지가 뜨면 '모든 인스턴스 보기'를 누른다.
- 그러면 해당 페이지가 뜰 것이다.
- .ssh 폴더에서 config파일을 메모장, 혹은 Brackets으로 연다.
- Ubuntu22 호스트 코드를 복사해 아래에 넣어준다.
- 인스턴스에서 퍼블릭 IPv4아이피 주소를 복사한다.
- Hostname에 옆에 해당 아이피 주소를 복사해 넣고 IdentityFile경로에 aws-key.pem가 있는 경로를 복사해 넣는다.
Host ec2
Hostname 18.217.53.233
User ubuntu
IdentityFile ~/.ssh/aws-key.pem
- Powershell을 연다.
- ssh ec2를 입력해 해당 서버로 접속한다.
- df -h를 입력하면 파일시스템을 볼 수 있다.
- pwd를 입력하면 현 경로를 볼 수 있다.
- which java를 입력해 자바가 있는지 확인한다.
- 현재 없는 것을 확인할 수 있다.
- sudo apt update를 입력해 업데이트를 진행한다.
- 해당 창이 뜨면 OK를 누른다.
- 해당이 떠도 Ok를 누른다.
- 그 다음 sudo reboot를 입력해 리눅스 서버를 재부팅한다.
- ssh ec2를 입력해 다시 서버를 실행한다.
- which vim을 입력해 vim이 있는지 확인한다. 없으면 sudo apt-get install vim으로 설치한다.
- sudo apt install openjdk-17-jdk를 입력해 자바를 설치한다.
- java -version을 입력하면 자바가 설치되었음을 확인할 수 있다.
- mkdir my_service/jar을 입력해 my_service/jar디렉토리를 만든다.
- 스프링부트 프로젝트에서 target폴더로 가 jar파일 확인한다.
- 그리고 scp .\myboard.jar ec2:~/my_service/jar로 aws서버로 jar파일을 이동시킨다.
(필자는 everytime.jar파일이지만 aws깔지 못했으므로 선생님의 파일로 대체했다.)
- jar파일이 들어왔음을 확인할 수 있다.
- vi start.sh를 입력해 sh파일을 만든다.
- java -jar myboard.jar을 입력하고 저장한다.
- chmod 775 start.sh를 입력해 user와 group이 해당파일을 실행 가능하도록 권한을 변경한다.
- ./start.sh를 입력해 파일을 실행한다.
- 그러나 게시판에 logback.xml파일이 있어서 로그기록을 담을 만한 곳이 없다.
- 이곳에서 부터는 아래쪽 게시물을 참고하는 것이 좋다. 서버만 다를 분 log관련해서 경로를 설정하는 것은 같다.
https://julian5383.tistory.com/236
[비트교육센터][리눅스] 3일차 프로젝트를 위한 환경 설계하기, guincorn
1. JDK 깔기 [1] 자바 설치 되어져 있는지 확인 - java -version을 입력해 자바가 설치되어 있는지 확인한다. - 현재 not found로 되어 있어서 없다는 것을 알 수 있다. [2] jdk 설치 sudo apt install openjdk-17-jdk [3
julian5383.tistory.com
- my_service디렉토리에 logs디렉토리를 만들어준다.
- pwd명령어를 입력해 현재 경로를 출력한다.
- logback.xml로 들어가 value경로에 "/home/ubuntu/my_service/logs"를 입력한다.
- 저장하고
- 인스턴스에서 인스턴스 ID를 클릭한다.
- 아래로 스크롤해 '보안'으로 들어간다.
- 보안 그룹에서 해당 부분을 클릭한다.
- 아래로 스크롤해 '인바운드 규칙 편집'을 클릭한다.
- 아래 '규칙 추가'를 클릭한다.
- 유형, 포트범위,소스들을 다음처럼 선택하거나 입력한다.
- 그 다음 '규칙 저장'을 클릭한다.
- 이렇게 되면 보안 규칙이 수정된 것이다.
- 인스턴스 요약에서 퍼블릭 IPv4 DNS에서 해당 주소를 복사한다.
- 'IPv4주소+8080/board'를 입력하면 된다.
- 현재 500에러가 뜨는데 이는 데이터베이스, 이미지저장 경로 등등이 설정되지 않아서 그렇다.
- 여기서 부터는 아래쪽 게시물을 참고하면서 몇몇 경로를 바꾸어주면 된다. 서버만 다를 뿐 크게 차이나지 않는다.
https://julian5383.tistory.com/236
[비트교육센터][리눅스] 3일차 프로젝트를 위한 환경 설계하기, guincorn
1. JDK 깔기 [1] 자바 설치 되어져 있는지 확인 - java -version을 입력해 자바가 설치되어 있는지 확인한다. - 현재 not found로 되어 있어서 없다는 것을 알 수 있다. [2] jdk 설치 sudo apt install openjdk-17-jdk [3
julian5383.tistory.com
4. AWS의 다른 기능들
[1] S3
- S3는 아마존 웹 서비스에서 제공하는 온라인 스토리지 웹 서비스이다. 웹 서비스 인터페이스를 통해 스토리지를 제공한다.
- 만약 EC2(임시 파일, 로그파일 등을 담음)를 바꿀때 S3에 중요정보가 있으면 EC2를 바꿀 때 용이하다.
[2] RDS
- RDS: 서비스 또는 아마존 RDS는 아마존 웹 서비스가 서비스하는 분산 관계형 데이터베이스이다. mariadb, mysql 등등 여러 데이터베이스를 지원한다.
- RDS
>> 여담으로 AWS같이 서버를 제공하는 사이트로는 마이크로소프트의 Azure가 있다.
지금 Azure 체험 계정 만들기 | Microsoft Azure
12개월 체험 서비스, 항상 무료인 40개 이상의 서비스 및 200 USD 크레딧으로 시작하세요. Microsoft Azure에서 지금 체험 계정을 만들어 보세요.
azure.microsoft.com
5. Postman
- Postman은 개발자들이 API를 디자인하고 빌드하고 테스트하고 반복하기 위한 API 플랫폼이다.
- 백엔드를 실행할 때 프론트엔드 없이 실행을 할 수 있는 도구이다.
- 우분투 서버에도 있다.
Postman API Platform | Sign Up for Free
Postman is an API platform for building and using APIs. Postman simplifies each step of the API lifecycle and streamlines collaboration so you can create better APIs—faster.
www.postman.com