[AWS] Lightsail Bitnami Nodejs 서버세팅방법
일단 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 를 참고한다.