반응형
nodejs -- https, http 서버 만들기
서버 환경 : Let's Encrypt 인증서 설치한 네이버 클라우드 플랫폼 무료 서버, Ubuntu 18.04 LTS OS 사용.
** 주의; Let's Encrypt 인증서 설치한, 경로는 본인의 인증서 설치 경로로 바꾸어 사용하자.
** Express 에서 다중 포트 서버 만들자.
-- 80 포트는 http 서버
-- 3000 포트는 https 서버
'use strict';
const fs = require("fs");
const http = require("http");
const https = require("https");
const express = require("express");
const app = express(); // https
const app2 = express(); // http
// yourdomain.com 은 실제로 사용중인 도메인으로 바꿔야함. -- Let's Encrypt 인증서 설치시 위치 사용.
const privateKey = fs.readFileSync("/etc/letsencrypt/live/yourdomain.com/privkey.pem", "utf8");
const certificate = fs.readFileSync("/etc/letsencrypt/live/yourdomain.com/cert.pem", "utf8")
const ca = fs.readFileSync("/etc/letsencrypt/live/yourdomain.com/chain.pem", "utf8")
const credentials = {
key: privateKey,
cert: certificate,
ca: ca
};
const httpServer = http.createServer(app2);
const httpsServer = https.createServer(credentials, app);
// 80 port -- http
app2.get("/", (req, res) => {
console.log("------ http get / -----" + (new Date()).toLocaleString());
console.log("req.ip => " + req.ip);
console.log("req.hostname => " + req.hostname);
console.log(req.url);
console.log(req.originalUrl);
res.send("<h1>HTTP Server running on port 80</h1>");
})
// 3000 port -- https
app.get("/", (req, res) => {
console.log("------ https get / -----" + (new Date()).toLocaleString());
console.log("req.ip => " + req.ip);
console.log("req.hostname => " + req.hostname);
console.log(req.url);
console.log(req.originalUrl);
res.send("<h1>HTTPS Server running on port 3000</h1>");
})
httpServer.listen(80, () => {
console.log((new Date()).toLocaleString());
console.log('HTTP Server running on port 80');
})
httpsServer.listen(3000, ()=>{
console.log((new Date()).toLocaleString());
console.log(`HTTPS -- listening on port 3000 ...`);
})
** node 로 실행한 화면
$ sudo node app.js
** local 로 설치한, nodemon 으로 실행한 화면
$ sudo npx nodemon app.js
** browser 에서 접속 성공한 화면
반응형
'nodejs' 카테고리의 다른 글
nodejs -- http -> https 변환 ( redirect ) (0) | 2021.01.02 |
---|---|
nodejs -- res.header 설정 (0) | 2020.12.26 |
nodejs -- Express 기초 (0) | 2016.05.13 |
nodejs -- npm 최신 버전으로 변경하기, 옵션 (0) | 2016.05.12 |
nodejs -- Formidable 사용하여 multiple file upload 하기 (0) | 2016.03.21 |