얼음꽃의 일지

Nginx + https연결 사용법 본문

항해 일지

Nginx + https연결 사용법

얼음꽃 2022. 11. 2. 19:20
728x90

Nginx는 로드 밸런스 처리에 특화된 경량 웹 서버 프로그램이다. Nginx를 서버 앞 단에 두어 Express가 사용하는 실제 포트를 숨기고 Nginx의 80번 포트를 통해 Reverse proxing 함으로써 보안 이슈를 방지하고, Nginx의 여러 기능도 사용할 수 있다.

클라이언트로부터 요청을 받았을 때 요청에 맞는 정적 파일을 응답해 주는 HTTP Web Server로 활용되기도 하고,  Reverse Proxy Server로 활용하여 WAS 서버의 부하를 줄일 수 있는 로드 밸런서로 활용되기도 한다.

 

Nginx는 Event-Driven 구조로 동작하기 때문에 한 개 또는 고정된 프로세스만 생성하여 사용하고, 비동기 방식으로 요청들을 Concurrency 하게 처리할 수 있다.

Nginx는 새로운 요청이 들어오더라도 새로운 프로세스와 스레드를 생성하지 않기 때문에 프로세스와 스레드 생성 비용이 존재하지 않고, 적은 자원으로도 효율적인 운용이 가능하다. 이러한 Nginx의 장점 덕분에 단일 서버에서도 동시에 많은 연결을 처리할 수 있다. 즉, Nginx는 트래픽이 많은 웹사이트의 확장성을 위해 설계한 비동기 이벤트 기반 구조의 웹서버 소프트웨어이다.

Nginx는 비동기식 이벤트 처리 중심의 아키텍처를 사용한다. 
Front-end 서비스가 크게 성장하면서 웹 기반의 동시 처리가 매우 중요하게 되었다. 
Nginx는 경량의 자원 활용과 물리적인 하드웨어로 쉽게 확장할 수 있다. 정적인 컨텐츠들을 빠르게 처리하며, 
동적 처리를 별도로 담당하는 소프트웨어 스택들과 연계해서 고성능 서버를 제공하는 데 적합하다고 알려졌다. 
또한 Nginx는 프록시 서버 기능도 제공한다.

 

0. 도메인 주소가 필요

-> 도메인 주소가 없으면 준비를 하셔야합니다. ex) 가비아

 

1. 설치

-> sudo apt-get update

-> sudo apt-get install nginx

 

이거하고 localhost 켰을 시 welcome nginx 나와야합니다.

 

2. 프록시 설정

 

-> cd /etc/nginx/sites-available/

-> vi 만들고자하는 이름

 

-> vi 안에 넣을 내용은 다음과 같습니다.

 

server {
        listen 80;
        server_name 도메인주소 www.도메인주소;
        location / {
                  proxy_pass http://127.0.0.1:3000;
        }
}

-> 포트 번호는 사용하고있는 포트에 맞춰야합니다.

 

3. 연결

-> sudo ln -s /etc/nginx/sites-available/[만든 vi이름] /etc/nginx/sites-enabled/

-> 위의 코드를 쓰실때 만든 이름과 /etc 사이에 공백이 한칸 필요합니다.

 

4. ngnix 시작

-> sudo service nginx restart

 

5. https를 적용하기 위한 cerbot ( 이전꺼가 있다고 생각했을 시 )

-> sudo snap install core

-> sudo snap refresh core

-> sudo apt remove certbot

-> sudo snap install --classic certbot

-> ln -s /snap/bin/certbot /usr/bin/certbot

-> sudo certbot --nginx

 

6. 위 까지 실행시키면 이제 동의하는거 물어봅니다 다 Y 눌러줍니다

 

7. 그리고 두개의 주소를 다 쓸꺼냐고 물어보는데 1 2 이렇게 해주시면 됩니다.

 

8. 그리고 aws에서 https를 열어주시고 사용하면 완료입니다.

728x90