들어가며
Nginx 이해와 활용 방법에 이어 환경 구성하는 방법을 정리한다.
먼저 운영체제는 Windows 환경에서 진행하였고 우분투와 같이 다른 운영체제에서 사용하시는 분들은 설치 방법등만 차이가 있으니 큰틀의 흐름에 따라 진행하면 된다.
node.js 환경 갖추기
제일 먼저 node.js에 환경 먼저 구성한다. 아래에 링크 참고를 하여 진행해준다.
https://sjparkk-dev1og.tistory.com/38?category=1025699
https://sjparkk-dev1og.tistory.com/44?category=1025699
자 여기까지 설정이 되었다면 들어가기 앞서 전체적인 실행 환경 테스트 구성도를 정리해보았다.
그럼 먼저 테스트를 위한 server.js 파일을 만들어 준다.
웹페이지에서 테스트를 위해 다음 코드를 작성해준다.
var http = require("http");
http
.createServer(function (req, res) {
res.writeHead(200, { "Content-Type": "text/plain" });
res.end("Hello\n");
})
.listen(8888, "127.0.0.1");
http
.createServer(function (req, res) {
res.writeHead(200, { "Content-Type": "text/plain" });
res.end("World\n");
})
.listen(7777, "127.0.0.1");
잘 응답하는지 확인을 위해 로컬에서 먼저 테스트를 해본다. 잘나온다.
그럼 노드 구성은 마쳤으니 Nginx를 설치하여 주자.
아래에 링크에 들어가 다운을 받아준다. 윈도우 환경이 아닌 사람들은 각 환경에 맞는 설치 방법을 검색하면 터미널 명령어들이 나올 것이다.
http://nginx.org/en/download.html
압축을 푼 후 해당 파일에 exe 설치 파일을 실행해준다.
따로 설치 완료가 됐다는 창은 안뜨고 작업 관리자에 백그라운드 프로세스에 들어가보면 다음과 같이 Nginx가 실행되고 있으면 잘 된거다.
이때 설치가 안되는 경우가 있는데 iis등을 사용해서 80포트를 사용하고 있다면 설치가 안된다. 왜냐하면 Nginx에 기본 컨피그 설정이 80포트로 잡혀있기 때문이다. 이때는 80포트를 죽이거나 아니면 Nginx에 기본 컨피그 설정을 바꿔준다.
conf 폴더 안에 nginx.conf 파일에 들어가 listen 부분을 변경해준다.
이렇게 설치가 완료가 됐다면 Nginx 접속 테스트를 해보자. 현제 Nginx 에 포트를 8087 로 설정해두었기 때문에 local에 8087로 접속했을때 아래와 같은 화면이 나오면 된다.
이제 로컬환경에서는 잘되는 것을 확인했으니 외부 접속 테스트를 진행해보자.
구성도에서 봤듯이 현재 테스트 환경이 ipTime이 있기 때문에 포트포워드를 설정을 해주어야 한다.
iptime이 아닌 방화벽 장비가 있어도 포트포워드를 걸어줘야한다. 아래 고급설정에 포트포워드 기능이 있다.
현재 Nginx의 포트가 8087번이기 때문에 외부에서 접속시 외부IP:8087로 요청을 들어왔을때 ipTime에서는 포트번호 8087과 연결해줄 내부 ip 및 내부 포트 번호를 적어준다. 이렇게 설정을 추가했다면 꼭 저장을 해줘야한다!
이처럼 설정을 했다면 외부아이피:10000 으로 접속했을때 위에서 Nginx페이지가 보인다면 제대로 설정이 된것이다.
이제 여기까지 성공했다면 외부 - Nginx & Nginx - Node가 연결이 완료된 것이다.
이제 마지막으로 외부에서 Node로 요청에 대한 설정을 해보자. 눈치챘겠지만 이 설정은 Nginx에 설정을 해주면 된다.
위에서 잠시 봤었던 nginx.conf 컨피그 파일에 들어간다.
다음과 같이 location을 추가해준다. /hello 로 요청시 로컬에 8888로 요청이 들어가게 된다. /world도 마찬가지이다.
이때 주의할점은 컨피그 파일에 내용을 수정했을시 reload가 꼭 필요하다.
cmd를 이용해 해당 파일로 이동 후 아래에 명령어를 입력해준다. (nginx -s reload)
아래에 화면과 같이 아무 글이 안나온다면 제대로 수정된 것이다.
만약 에러가 있다면 아래와 같이 친절하게 라인넘버를 알려주니 수정을 하면 된다.
이제 외부에서 접속하여 hello와 world가 제대로 나오는지 확인을 해보자.
정리를 해보자면 외부에서 해당 서버의 외부아이피:포트/패스 로 요청을 보내면 포트에 맞는 포트포워드 설정으로 인해 Nginx로 가게 되고 Nginx에서 패스를 보고 내부 node로 요청을 보낸다.
"이 포스팅은 쿠팡 파트너스 활동의 일환으로, 이에 따른 일정액의 수수료를 제공받습니다."
'DevOps' 카테고리의 다른 글
JMeter 를 이용한 API 성능 테스트 (0) | 2022.11.11 |
---|---|
Jenkins - Build Periodically 옵션을 이용한 스케줄러 사용 방법 (0) | 2022.05.15 |
Nginx - 윈도우 명령어 정리 (0) | 2021.08.18 |
Nginx - Nginx에 대한 이해와 활용 방법 (프록시 서버 만들기 & Node.js) (0) | 2021.06.24 |
Server - IIS 설치 방법 (0) | 2021.06.18 |
댓글