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를 실행하라는 메시지가 나오는데 이미 설치되어 있는 것 같다.
5. vue-client-only module이 없는 문제
왜 없는지는 모르겠는데 npm으로 설치해주면 된다.
- 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 삭제 후 다시 설치했다.
어떻게(?) 하면 되는 것 같지만 저 위의 방법이 더 편하다.
참고로 "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(파일 이름 변경 가능)에 아래 내용을 추가/수정했다.
listen 80 default_server;
listen [::]:80 default_server;
server_name 서버이름;
charset utf-8;
add_header Access-Control-Allow-Headers Origin,X-Requested-With,Content-Type,Accept;
devDependencies에 있던 fibers를 지우니까 된다...
node_modules/를 지우고 전체 패키지를 재설치했다(sudo npm install).
4. nginx 설정
사이트 주소로 들어오면 3000포트로 연결하도록 설정하면 된다.
nginx경로/sites-enabled/default(파일 이름 변경 가능)에 아래 내용을 추가/수정했다.
listen 80 default_server;
listen [::]:80 default_server;
server_name 서버이름;
charset utf-8;
add_header Access-Control-Allow-Headers Origin,X-Requested-With,Content-Type,Accept;
location / {
# First attempt to serve request as file, then
# as directory, then fall back to displaying a 404.
proxy_pass http://localhost: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;
}
# First attempt to serve request as file, then
# as directory, then fall back to displaying a 404.
proxy_pass http://localhost: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;
}
5. vue-client-only module이 없는 문제
왜 없는지는 모르겠는데 npm으로 설치해주면 된다.