* virtual box에 배포하기
- 먼저 nat와 bridge의 차이를 알야아한다.
- nat방식을 쓰면, 외부 클라이언트는 반드시 host pc(내 pc) 를 통해서만 가상 우분투에 접속 가능하다.
- 따라서, 포트 포워딩이 필요하다.
- 반면, 브릿지는 내pc와 동등한위치에서 직접 외부와 연결이 가능하다.
- 간단한 브릿지 방식을 사용하고자 한다.
* 내 환경확인
- 우분투에서 ifconfig 결과 => 1.200.x.x로 나오는걸로봐서, 나는 공유기방식이 아니고 직접 isp와 연결된것으로 추측.
- 즉, 3000번포트만 열어준후, 1.200.x.x:3000으로 접속하면 외부클라에서 내 우분투로 접속이 가능하다!
- + listen 수정도 필요한듯 하다.
//Node.js 애플리케이션이 모든 인터페이스에서 요청을 받을 수 있도록 설정합니다:
listen() {
this.app.listen(this.port, '0.0.0.0',() => {
console.log(`Todo app listening at http://localhost:${this.port}`);
// console.log(`App listening on the port ${this.port}`);
});
}
- 즉, 브릿지 방식이 호스트pc와 네트워크면에서는 완전히(?) 독립된 구성임을 다시한번 확인했다.
* 방화벽 열고닫기
* nginx : web server 구성
- nginx 설치
sudo apt-get install nginx
- nginx의 포트는 80번인듯하다 -> ufw allow 80 해줘야 들어가진다.
아, 80번포트 -> nginx -> 내부포워딩으로 3000번 포트로 보내면 더 안전하겠군?
3000번 포트는 잠구는게 좋을듯!
* nginx.conf 수정하기
- 문제 : vim 에서 수정하기는 너무빡세다.
- 해결 : 인텔리제이에서 원격으로 sftp로 연결후 수정하고자 함
- nginx conf > http 맨 밑에 추가
server {
listen 80;
server_name 1.x.x.x; # 또는 서버 IP 주소
location / {
proxy_pass http://127.0.0.1:3000;
proxy_http_version 1.1;
proxy_set_header Upgrade $http_upgrade;
proxy_set_header Connection 'upgrade';
proxy_set_header Host $host;
proxy_cache_bypass $http_upgrade;
}
}
1.x.x.x로 들어오는 요청을 127.0.0.1:3000으로 보냄!
* 시스템 시작시 자동으로 nginx, nodejs 실행되도록 구현
* todo
- 배포 자동화 구현
- https 설정
- nginx에서 간단한 정적파일은 직접제공
- db나 was 사망시 error page 제공 구현
- load balance 학습
* 레퍼런스
https://www.youtube.com/watch?v=8IGgeaLlYW8
https://www.youtube.com/watch?v=6TYwnURF09w
'CS > Linux' 카테고리의 다른 글
[Linux] OS 비교 (0) | 2024.11.04 |
---|---|
24. 9. 11. 개발일지 / 자동배포, git, 구조분해할당 , \r 명령어를 찾을수 없음 해결 (0) | 2024.09.11 |
[Linux] pw 없이 접속하기, ssh-keygen, 배포하기 (0) | 2024.09.05 |
[Linux] 배포관련 아키텍쳐 best practice? (0) | 2024.09.04 |
[Linux] 원격 db 연결안됨 해결 //리눅스 포트 방화벽설정방법 (0) | 2024.08.27 |