전체 글(14)
-
nodejs/docker/socket.io(+redis) 여러개의 서버로 채팅
로드밸런싱을 위해 서버를 여러개 두었더니 채팅 기능에 문제가 생겼다. socket.io-redis 모듈을 사용하여 해결하였다. 사실 수정된 부분도 별로 없고 한데, 별 이유로 삽질하느라 시간을 너무 많이 잡아먹어 되풀이 하지 않도록 적어본다. 우선 레디스를 먼저 설치해주어야 한다. 난 도커로 설치하였다. 1. Dockerfile 및 redis.conf 작성 - Dockerfile FROM redis COPY redis.conf /etc/redis/redis.conf CMD ["redis-server", "/etc/redis/redis.conf"] - redis.conf bind 0.0.0.0 기본으로 로컬에서만 접근 가능하도록 되어있으니 설정 해주어야 한다. 2. 빌드 및 컨테이너 생성/실행 Docker..
2021.11.03 -
nodejs/docker 환경에서 파일 업로드 이슈 해결
docker 사용 후 어느순간 파일 업로드시 nodejs cross-device link not permitted... 오류가 발생하였다. fs.rename 사용시 발생한 오류였다. 검색 결과 이런저런 방법이 많았지만 가장 간단하게 fs.rename 대신 fs.copyFile 을 사용하여 원하는 경로로 복사하기로 했다. fs.copyFile 사용 // 기존 /* fs.rename(old_file, new_file, (err) => { if(err) console.log(err); }); */ // 수정 fs.copyFile(old_file, new_file, (err) => { // 복사 완료 후 파일 삭제 fs.unlink(old_file, (err) => {}); if (err) console.log..
2021.11.02 -
docker volume 사용하기
컨테이너를 지울경우 그간 저장된 파일이 날아가는걸 막고, 여러 컨테이너에 각각 저장된 파일들을 합쳐주기 위해 볼륨을 사용. 1. 볼륨 생성하기 sudo docker volume create 볼륨명 sudo docker volume create appname_volume 2. 컨테이너와 볼륨 연결 # 컨테이너 생성 sudo docker create --name 컨테이너명 -p 외부포트:내부포트 -v 볼륨명:/경로/ 이미지명:태그명 sudo docker create --name node0 -p 30060:3006 -v app_volume:/app/ dockerId/imgName:test sudo docker create --name node1 -p 30061:3006 -v app_volume:/app/ do..
2021.11.02 -
docker/nodejs/nginx 로드 밸런싱 및 무중단 배포
1. 엔진x 설정파일 작성 - nginx.conf worker_processes 4; events { worker_connections 1024; } http { upstream appname { # 연결이 적은 서버 사용 least_conn; server IP:30060 weight=6 max_fails=3 fail_timeout=10s; server IP:30061 weight=3 max_fails=3 fail_timeout=10s; server IP:30062 weight=3 max_fails=3 fail_timeout=10s; } server { listen 3006; location / { # 업로드 용량 지정 client_max_body_size 20M; proxy_pass http://app..
2021.11.02 -
Azure mariaDB 에서 함수 생성시 오류 발생
애저에서 제공하는 mariaDB 서버 ( Azure Database for MariaDB Server ) 이용중 함수 생성시 - you need (at least one of) the SUPER privilege(s) for this operation... 와 같은 오류가 발생하였다. 검색결과 log_bin_trust_function_creators 가 OFF 로 되어있어서 그렇단다. - 확인 show global variables like 'log_bin_trust_function_creators'; 해당 값을 'ON'(1) 로 바꿔주면 된다. SET GLOBAL log_bin_trust_function_creators = 1; . . 여기서 되면 좋았겠지만.. 되지 않았다. 애저 for DB / aw..
2021.10.25 -
nodejs / tensorflow.js 참고
tensorflow.js 모델 설정 및 저장/불러오기 참고 - tjs.js ... const tf = require('@tensorflow/tfjs'); require('@tensorflow/tfjs-node'); const tjs = {} // 입력값 1차원 배열 크기지정 const input = tf.input({shape: [10]}); // 히든레이어 const hidden = tf.layers.dense({units: 5}).apply(input); // 결과값 const output = tf.layers.dense({units: 2}).apply(hidden); // 모델 세팅 tjs.model_set = async()=>{ // 저장된 값 불러오기 let p = __dirname + '/mo..
2021.10.25