라벨이 ubuntu인 게시물 표시

AWS EC2 + ELB + Auto scaling + Nuxt 환경에서 수동으로 Auto scaling 인스턴스 추가 시 load chunk failed 에러

0. 환경 - AWS EC2 + ELB + auto scaling 그룹은 이미 설정되어 있음 - Nuxt.js 수동으로 auto(?) scaling 인스턴스를 추가해야 했다. auto scaling 인스턴스를 추가하면 자동으로 git에서 소스를 가져와 빌드하고 pm2로 프로세스를 시작하도록 했다. 아래는 인스턴스 시작 시 실행하는 명령어이다. auto scaling 시작 구성의 사용자 데이터 부분에 추가하면 된다. #!/bin/bash sudo -u 사용자 -i git -C 소스경로 --git-dir=소스경로/.git pull sudo -u 사용자 -i npm run build --prefix 소스경로 sudo -u 사용자 -i pm2 start npm --name "이름" -- start --prefix 소스경로 1. 인스턴스 추가 1) EC2 콘솔 > Auto Scaling > Auto Scaling 그룹 메뉴에서 원하는 그룹 우클릭해서 편집 창을 연다. 2) 목표 용량과 최소용량을 최대용량 범위 안에서 원하는 만큼 늘린다. 3) 인스턴스 메뉴에서 확인해보면 자동으로 늘어나있다. 2. git 설정   인스턴스를 처음 추가하면 git 사용자 정보를 설정해줘야 한다. 사용자 정보 설정 후 다시 pull한다. git config --global user.email = 내 이메일 git config --global user.name = 내 이름 3. 프로세스 시작   아래 명령어로 빌드 후 프로세스를 재시작한다. 시작하고 약 1 ~ 2분 정도는 502 에러가 발생할 수 있다. npm run build pm2 stop 이름 pm2 start 이름 4. 오류 발생 시   계속 새로고침해서 load chunk failed가 나오는지 체크한다. 이 오류는 대부분 인스턴스 간 코드가 일치하지 않아서 발생한다. 1) 인스턴스 간 코드가 일치하는지 체크한다. 2) static 파...

Ubuntu 16.04 + Nuxt 2 + Nginx 설정

0. 환경 - ubuntu 16.04 - nuxt 2.10 - node.js 4.6 -> 8.16.2 - npm 3.5 -> 6.4 - nginx 1.10 1. fibers 패키지 설치 오류   nuxt의 dependency인 fibers가 설치가 안돼서 nuxt도 설치되지 않는 문제가 발생했다. fibers 설치 시 node 명령어를 찾아오지 못하는 문제였다. 아래 명령어로 강제로 링크시키면 된다. ln -s /usr/bin/nodejs /usr/bin/node 오류 메시지에 ubuntu 사용자면 apt-get install g++ build-essential 를 실행하라는 메시지가 나오는데 이미 설치되어 있는 것 같다. 2. nuxt를 실행시킬 수 없는 오류   오류 메시지로 node.js를 최신 버전으로 업그레이드하라는 말이 나와서 업그레이드. https://github.com/nodesource/distributions/blob/master/README.md  이 페이지를 참조해서 8.6.12 버전으로 업그레이드했다. 참고로 "curl -sL https://deb.nodesource.com/setup_버전.x | sudo -E bash -" 로 바꾸면 다른 버전도 설치할 수 있다. nvm을 사용해도 되지만 사용자가 여럿일 경우 설치를 진행한 사용자가 아닌 사용자가 nodejs를 사용할 수 없어서 nvm 삭제 후 다시 설치했다. 어떻게(?) 하면 되는 것 같지만 저 위의 방법이 더 편하다. 3. fibers 문제 다시 발생  devDependencies에 있던 fibers를 지우니까 된다... node_modules/를 지우고 전체 패키지를 재설치했다 (sudo npm install) . 4. nginx 설정   사이트 주소로 들어오면 3000포트로 연결하도록 설정하면 된다. nginx경로/sites-enabled/default(파일 이름 변경...

Ubuntu 명령어 정리

1. 전체 파일시스템 사용량    df -h 2. 디렉터리 크기 1) 전체 보기 : du -h [경로] 2) 용량만 보기 : du -hs [경로] 3. 파일 열지 않고 내용 다 지우거나 빈 파일 만들기   > [파일이름] 4. 파일 크기 순 정렬   ls -lahS 5. 우분투 버전 체크   lsb_release -a 6. 파티션 확장   sudo growpart (/dev/)디바이스이름 파티션번호 7. 파일 시스템 확장(ext2/ext3/ext4)   sudo resize2fs 파일시스템 8. 디바이스 목록   lsblk

서버(Ubuntu)/AWS 정리

* Mongodb + python + django + uwsgi   mongodb 서비스는 uwsgi 서비스보다 먼저 시작해야 한다. * net.core.somaxconn   아마존 EC2 인스턴스를 재시작할 때마다 net.core.somaxconn의 값이 초기화된다(기본값은 128인듯). 이 값이 너무 낮으면 uwsgi나 redis가 시작이 안된다.

Postgresql에서 5432 port가 열려있냐는 문제(Ubuntu 기준)

1. 에러 각종 서비스에서 5432 port가 열려있느냐를 묻는 에러가 발생한다. django는 이런 식. Is the server running on host XXX and accepting TCP/IP connections on port 5432? 어쨌든 connection이 안되면 서비스가 실행되는지, port가 열려있는지 확인해보는게 좋다. 2. 확인 1) htop 에서 postgresql이 있는지 본다. 혹은 ps -el. 2) netstat -ntl로 5432가 열려있는지 본다. 3) service postgresql status로 서비스가 active 상태인지 본다. 3. 해결방법 1) postgresql이 실행되어 있지 않다. sudo service postgresql start. 2) 5432 port가 열려있지 않다. - /etc/posgresql/VERSION/main/pg_hba.conf에서 # IPv4 local connections 아래   host    all             all             0.0.0.0/0           md5 를 추가(혹은 수정) - 외부에서 접속하는 경우 방화벽이 막혀있는 경우가 있다. 열어도 되는 서버라면   iptables -I INPUT 1 -p tcp --dport 5432 -j ACCEPT   iptables -I OUTPUT 1 -p tcp --dport 5432 -j ACCEPT AWS EC2는 EC2 콘솔에 가서 열어야 하는 것 같다. 3) 실행도 되어있고 port도 열려있다. 이전 실행에서 비정상적으로 종료된 경우가 가끔 있다. /var/lib/postgresql/VERSION/main/pos...