일 | 월 | 화 | 수 | 목 | 금 | 토 |
---|---|---|---|---|---|---|
1 | 2 | |||||
3 | 4 | 5 | 6 | 7 | 8 | 9 |
10 | 11 | 12 | 13 | 14 | 15 | 16 |
17 | 18 | 19 | 20 | 21 | 22 | 23 |
24 | 25 | 26 | 27 | 28 | 29 | 30 |
Tags
- 인프런
- Code-coverage
- ATOM
- AWS
- 개인정보수정
- sinopia
- nginx
- node.js
- Gitbook
- REST
- PowerMock
- Linux
- {}
- JaCoCo
- javascript
- java
- dict
- Lodash
- python
- Coveralls
- Travis CI
- sanghaklee
- Unit-test
- ECMAScript2015
- ubuntu
- GIT
- RESTful
- API
- primitive type
- NPM
Archives
- Today
- Total
이상학의 개발블로그
[NGINX] NGINX를 nodejs express의 reverse proxy로 사용하기 본문
reverse proxy란 ~
프록시는 일반적으로 원활하게 여러 서버간에 부하를 분산 다른 웹 사이트의 콘텐츠를 표시하거나 HTTP 이
외의 프로토콜을 통해 응용 프로그램 서버에 처리 요청을 전달하는 데 사용된다.
NGINX에 요청을 프록시로하면, 지정된 프록시 서버에 요청을 보내고 응답하고, 클라이언트에게 전송한다.
참고 : NGINX 공식 홈페이지 https://www.nginx.com/resources/admin-guide/reverse-proxy/
전제 조건
- Node.js 와 Npm이 설치 되어있어야한다.
- pm2 설치
- express-generator 로 프로젝트 만들기
- NGINX 설치
만얀 ~/test 라는 프로젝트를 만들었다면
$ cd test
$ pm2 start bin/www 로 pm2를 실행한다.
여기서 bin/www로 실행하는 것이 중요하다 test/app.js로 실행해도 가능하나 NGINX를 reverse proxy로 사용할 때는 502 bad gateway 에러가 난다. 이유는 더 찾아봐야겠다.
$ sudo vi /etc/nginx/sites-available/default 를 입력해서 default 파일을 수정한다.
수정전에 기본 default 파일은 따로 이름을 바꿔 저장해두는 것이 좋다. 원본은 유지하자!!
/etc/nginx/sites-available/default
내용을 모두 날리고 다음과 같이 입력한다.
server {
listen 80;
server_name 도메인;
location / {
proxy_pass http://127.0.0.1:3000;
#proxy_pass http://naver.com;
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;
}
}
도메인 이라고 된 부분이 중요하다. 이곳에 사용할 서버의 도메인을 입력한다.
ex) server_name gachon.ga www.gachon.ga;
만약 현재 express 앱의 포트가 3000번이 아니면 그 것으로 변경한다.
ex) proxy_pass http://127.0.0.1:8080;
vi를 저장 종료한다.
default 파일이 바뀌었다고 바로 NGINX 서버에 반영되지 않는다.
$ sudo /etc/init.d/nginx restart
명령어를 입려서 NGINX를 재시작한다.
OK가 뜨면 브라우저에 도메인을 입력해본다.
성공했다면 기본 NGINX defualt 페이지가 아닌 express default 페이지가 나온다.
'프로젝트' 카테고리의 다른 글
[AWS] RDS 생성하기 (0) | 2016.04.01 |
---|---|
[Ionic] Ionic 개발환경 구성하기 iOS (0) | 2016.03.30 |
[졸업 프로젝트] freenom 무료 국가 최상위 도메인 얻기 (0) | 2016.03.28 |
[졸업 프로젝트] cu.cc 무료 도메인 얻기 (0) | 2016.03.27 |
[NGINX] NGINX 설치하기 (0) | 2016.03.27 |
Comments