서버

[AWS] Lightsail Bitnami Nodejs 서버세팅방법

for2gles 2020. 9. 15. 15:27

일단 Lightsail Nodejs 서버는 Apache 를 사용한다.

 

접속 순서는 유저 -> 아파치 -> nodejs 서버

방법을 정리하자면

abc.com 으로 접속을 하면 아파치에서 vhost 에서 프록시로 주소를 전달한다.(Like 공유기 DMZ 설정) 예) localhost:3000

3000 번 포트로 실행되고있던 nodejs 서버를 실행한다.

 

이 방식을 사용하면 nodejs 에서 http, https 모듈을 사용 할 필요가 없는 것 같다.

 

위와같이 작동하는 기능을 리버스프록시라고 하는것같다.

설명 : www.lesstif.com/system-admin/forward-proxy-reverse-proxy-21430345.html

NGINX로도 쓸수있는데 EC2

velog.io/@jakeseo_me/Node에서-NGINX를-리버스-프록시로-사용하기-번역

NGINX 를 쓰고싶지만 Lightsail 서버에서 기본 설정은 Apache를 사용한다.

 

 

아파치 vhost 위치

/opt/bitnami/apache/conf/vhosts/00_status-vhost.conf

<VirtualHost _default_:80>
  ServerName 주소
  # ServerAlias *
  DocumentRoot "/opt/bitnami/apache/htdocs/src"
  <Directory "/opt/bitnami/apache/htdocs/src">
        Require all granted
  </Directory>
  ProxyPass / http://localhost:3000/
  ProxyPassReverse / http://localhost:3000/
</VirtualHost>
<VirtualHost *:443>
  ServerName 주소
  SSLEngine on
  SSLCertificateFile "/etc/letsencrypt/live/주소/fullchain.pem"
  SSLCertificateKeyFile "/etc/letsencrypt/live/주소/privkey.pem"
  DocumentRoot "/home/bitnami/경로"
  <Directory "/home/bitnami/경로">
        Require all granted
  </Directory>
  ProxyPass / http://localhost:2999/
  ProxyPassReverse / http://localhost:2999/
</VirtualHost>
"/opt/bitnami/apache/conf/vhosts/00_status-vhost.conf" 24L, 805C                                      23,26         Bot

ssl 적용할 때 프록시에서는 http로 적혀있지만 ssl 적용에는 문제가 없다.

 

vhost conf 파일 이름이 마음에 들지 않다면

 

/opt/bitnami/apache/conf/httpd.conf /vhost 검색 후

IncludeOptional "/opt/bitnami/apache/conf/vhosts/*.conf" -> 특정 이름으로 바꾸던지 00_status-vhost.conf 파일 이름을 수정해준다.

 

수정 후에 /opt/bitnami/ctlscript restart 필수

 

테스트 환경 js

const koa = require("koa");

const app = new koa();
const HTTP_PORT = 3000;

app.use(async (ctx) => {
	ctx.body = "Hello World";
});

app.listen(HTTP_PORT, () => console.log(`Example app listening on port ${HTTP_PORT}!`));

 

express 대신 express 개발자가 만들었다는 가볍다고 하는 koa 를 사용해보았다.

 

이후 koa 세팅방법은 dev.ewq.kr/29 를 참고한다.