본문 바로가기
매일코딩/리눅스-우분투

ubuntu 16.04 node js express 설치 후 apache2와 함께 서버 돌리기

by 인생여희 2017. 7. 19.
반응형

ubuntu16.04 node js 패키지 파일 설치



#Node.js v6 설치


curl -sL https://deb.nodesource.com/setup_6.x | sudo -E bash -

sudo apt-get install -y nodejs



#Node.js v7 설치 


curl -sL https://deb.nodesource.com/setup_7.x | sudo -E bash -

sudo apt-get install -y nodejs



#npm에서 네이티브 애드온을 컴파일하고 실행하려면 빌드 도구도 설치


sudo apt-get install -y build-essential



#Express 설치

#(node js를 더 편리하게 사용 할 수 있게 기본 개발 틀을 만들어 주는 도구라고 생각하면됨)

#참고로 -g는 전역 이라는 뜻

#어느 폴더에서든지 express를 사용할 수 있게 한다


sudo npm install -g express


sudo npm install -g express-generator




#이제 generator로 node app을 생성할 수 있다.

#express로 작업 폴더 생성


express nodeApp



#작업폴더로 이동

cd nodeApp


# 관련 express 파일들 설치

npm install


#컴파일 후 node 서버 실행


node ./bin/www



# 웹브라우저에 localhost:3000 입력후 확인하기




#타입스크립트 개발 지원 모듈 설치


#node js 개발할 때 consle. 하면 뒤에 log, 등 자동으로 관련 메소드 찾아주는 기능


sudo npm install tsd -g




ubuntu16.04 에서 node js 웹서버

를 apache 서버와 함께 사용하기! 



#mod_proxy 와 mod_proxy_http 모듈이 있어야 한다.


#아파치2를 깔면 자동으로 설치된다.



sudo apt-get -y install apache2



#직접 가서 확인해보자

cd /etc/apache2/mods-available



#mod_proxy, mod_proxy_http 확인




#관련파일 설치

sudo apt-get install libapache2-mod-proxy-html


#libxml이 안깔렸다면

sudo apt-get install libxml2-dev



#모듈을 로드하기

sudo a2enmod proxy_module proxy_http_module headers_module deflate_module


참고: 박스처리 한부분은 간혹 버전에 따라 안될 수도 있다. 래퍼런스 문서에는 명시되어 있는데 필자는 설치 도중 에러가 떠서 건너 뛰었다. 아직 apche2에 대해서 정확히 알고있지 못하다..



#이제 설정파일을 만들어야 한다

#설정파일이름을 도메인 이름으로 지정해주자


vi /etc/apache2/sites-available/amazeapp.com.conf



#설정파일 안 작성

#프록시 컨텐츠를 추가하기 만하면된다 표준 포트 (80)를 통해 제공되는 모든 요청은 곧 실행될 노드 서버와 자체 포트 (3000)를 통해 라우트되어야한다는 것을 Apache에 알리는 작업


<VirtualHost *:80>

# Admin email, Server Name (domain name), and any aliases

ServerAdmin your@email.com

ServerName  www.amazeapp.com

ServerAlias amazeapp.com


# Index file and Document Root (where the public files are located)

DirectoryIndex index.html index.php

DocumentRoot /var/www/amazeapp.com/public_html


ProxyRequests off

<Proxy *>

Order deny,allow

Allow from all

</Proxy>


#이 부분에 주소 작성~

<Location />

ProxyPass http://localhost:3000/

ProxyPassReverse http://localhost:3000/

</Location>


# Log file locations

LogLevel warn

ErrorLog  /var/www/amazeapp.com/log/error.log

CustomLog /var/www/amazeapp.com/log/access.log combined

</VirtualHost>




#아파치가 새로 추가한 주소를 알 수 있게 지정

sudo a2ensite amazeapp.com.conf(파일명)

sudo service apache2 reload



# 위에서 만든 node 프로젝트 폴더(nodeApp)로 가서 서버 실행

node ./bin/www







#클라이언트(다른 pc.리눅스)에서 접속해 보자 확인

node js 에서 돌아가고 있는 웹



#apache2 서버에서 돌아가고 있는 웹과 node js 에서 돌아가고 있는 웹 모두 정상 작동!


apache2 에서 돌아가고 있는 웹





참고 문서


https://github.com/sindresorhus/guides/blob/master/run-node-server-alongside-apache.md


https://stackoverflow.com/questions/28062159/node-js-https-on-cloudflare


https://code.tutsplus.com/tutorials/going-live-with-node--net-33923


http://httpd.apache.org/docs/2.2/mod/mod_proxy.html


http://httpd.apache.org/docs/2.0/mod/mod_proxy_http.html


https://abhirama.wordpress.com/2008/11/03/apache-mod_proxy-in-ubuntu/



!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!

뭔일인지 어제 까지만 되던..apache2 서버와 node js 가 작동을 안하네... 

apache2 와 node js 서버가 각각 작동하는 것이 아니라

apache2서버 위에서 node js 가 작동되는 상황...

원리를 아직 파악 못해서 어디서 부터 잘 못됐는가도 모르겠고..

다시 포스팅해야겠다..ㅜ

따라 하신 분들 죄송합니다..

node js, express 설치 까지는 문제 없어요..!

우분투에서 node js 서비스 하는거 다시 올릴게요!





https://gist.github.com/adamcbrewer/6060840

반응형

댓글