node.js & nginx8 React + IIS + Node.js 프론트 React 와 백앤드 Node.js(Reverse Proxy) 를 IIS 배포 하는 과정 입니다. 1. React 빌드 build폴더 내용 복사 하여 서버로 복사 합니다. npm run build 2. IIS 구성 Turn Windows Features on or off 클릭 => IIS 설치(node 에서 소켓을 사용할 경우 WebSocket Protocol 설치) IIS 설정 site 명(IIS 항목에 표시되는 이름) 입력 후 Physical path 경로 설정(1항목에서 복사한 폴더) Host Name 도메인 명 입력 (도메인 없을경우 아이피로 접근해야한다) 3.Node.js (Reverse Proxy) 1. 서브 응용 프로그램 생성 Alias명 입력후 임의의 폴더 설정(해당 폴더에 Web... 2023. 8. 7. 7. Nginx 로드밸런싱 1) 로드밸런싱 서버에 가해지는 부하를 분산해주는 장치 또는 기술 *Scale up : 서버 자체의 성능을 높이는것 *Scale out : 여러 대의 서버를 두는것 로드 밸런싱은 Scale out과 연관된다. 2) 로드밸런싱의 종류 1. 하드웨어에서의 로드밸런싱 L4 로드 밸런싱 : OSI 7 계층 중 4계층 단에서 부하를 분산(IP,Port기준으로) L7 로드 밸런싱 : OSI 7 계층 중 7계층 단에서 부하를 분산(4계층 기능 포함(IP,Port), Http,Url 기준) 2.소프트웨어에서의 로드밸런싱 Nginx : 오픈소스 소프트웨어,Health Check 유료버전에서만 지원 HAProxy : 오픈소스 소프트웨어,Health Check지원 3) Nginx setting ubunt 기준 /etc/ng.. 2023. 5. 19. 6. Node.js Worker Thread 1) 개요 노드는 단일 스레드에서 실해되고, 이벤트 루프에는 한 번에 하나의 프로세스만 발생합니다. (병렬로 실행되지 않는다.) 만약 인 메모리에서 발생하는 대규모 데이터 세트의 복잡한 계산같은 CPU 자원을 많이 사용하는 코드가 있으면, 이 코드가 다른 프로세스가 실행되는걸 차단할 수도 있습니다. 마찬가지로, CPU 자원을 많이 사용하는 코드가 있는 서버에 요청하는 경우, 이 코드가 이벤트 루프를 차단하고 다른 요청들이 처리되지 않게 할 수도 있습니다. CPU 작업과 I/O 작업을 구분하는 게 중요합니다. 앞에서 말했듯이, Node.js 코드는 병렬로 실행되지 않습니다. 오직 I/O 작업만 비동기식으로 실행되므로, 병렬로 실행(Non Blocking I/O)됩니다. 그래서 워커 스레드는 I/O 집약적인.. 2023. 5. 19. 5. Nginx reverse proxy 설정 1) Reverse proxy 란 역방향 프록시는 클라이언트 요청을 가져와서 하나 이상의 프록시 서버에 요청을 보내고 응답을 가져오고 서버의 응답을 클라이언트에 전달하는 서비스입니다. 성능과 확장성 때문에 NGINX는 HTTP 및 비 HTTP 서버의 역방향 프록시로 자주 사용됩니다. 일반적인 역방향 프록시 구성은 Nginx를 Node.js, Python 또는 Java 애플리케이션 앞에 배치하는 것입니다. Nginx를 역방향 프록시로 사용하면 다음과 같은 몇 가지 추가적인 이점을 얻을 수 있습니다. 2) Reverse proxy 장점 로드 밸런싱 : Nginx는 클라이언트의 요청을 프록시 서버에 분산하기 위해 로드 밸런싱을 수행하여 성능, 확장성 및 신뢰성을 향상시킬 수 있습니다. 캐싱 : Nginx를 역.. 2023. 5. 18. 4. 배포 및 pm2 서비스 등록 1) Git 에서 소스 받기 배포할 소스를 Git에 Commit 후 Ubuntu에 설치된 git으로 소스를 내려 받는다 최초 소스를 clone 한다 git clone https://github.com/******/*****.git package.json 패키지를 설치하기 위해 명령어 위치는 package.json이 있는 폴더에서 실행 npm install 2) Pm2으로 서비스 등록 npm run 명령어로 실행 할 경우 터미널을 닫으면 실행이 중단되기때문에 pm2로 서비스 등록하여 데몬화 하여 사용 한다. pm2 설치 npm install -g pm2 pm2 버전 pm2 --version 소스js 폴더로 이동 pm2 start index.js 3) 재배포 git root 폴더에서 소스를 내려 받는다. g.. 2023. 5. 17. 3. Node.js 설치 방법 3가지 1) Ubuntu 리포지토리에서 가져와서 설치 방법 Ubuntu 리포지토리에 포함된 버전은 v12.22.9 sudo apt update sudo apt install nodejs npm 2) NodeSource에서 Node.js 설치 방법 여러 Node.js버전이 포함된 APT 저장소를 유지 제공 되는 버전 v18.x ,v17 ,v16 ,v14 16버전설치 curl -fsSL https://deb.nodesource.com/setup_16.x | sudo -E bash - sudo apt-get install -y nodejs *에러 발생시 processing archive /var/cache/apt/archives/nodejs_16.20.0-deb-1nodesource1_amd64.deb (--unpa.. 2023. 5. 17. 2. Nginx 설치 1) 서버의 패키지 목록 업데이트 sudo apt update sudo apt upgrade sudo apt autoremove 2) Nginx 설치 sudo apt install nginx 3) 실행 sudo service start nginx sudo service status nginx 4) Nginx Version 확인 nginx -v 5) Nginx 경로 sudo find / -name nginx.conf 6) nginx 구동 테스트 netstat -lntp 80번 포트가 리스닝되고 있으면 실행된 상태이다. 만약 netstat이 없다면 apt install net-tools 명령어로 설치 2023. 5. 17. 1. Visual Studio Code 에 SSH 연결 및 root 권한으로 실행 1) SSH 란 무엇인가? Secure Shell의 약자로 원격 접속을 이용하여 터미널 환경을 사용할 수 있도록 고안된 인터넷 프로토콜이다. Sheell로 원격 접속을 하는 것이므로 기본적으로 CLI상에서 작업을 하게 되고, 기본 포트는 22번이다. 자주 사용되는 SSH접속 프로그램으로는 Xshell, PuTTY, MobaXterm 등이 있다 2) Root 권한으로 실행하여 파일 편집 터미널로 실행하여 vim 편집기로 편집 할수도 있지만 우리는 VSCode 를 Root 권한으로 오픈하여 파일을 수정할수 있게 셋팅하여 사용 할 예정 입니다. // root 비밀번호 설정 sudo passwd root // /etc/ssh/sshd_config 파일 오픈 #PermitRootLogin prohibit-pass.. 2023. 5. 17. 이전 1 다음