nginx
를 앞에두고 next 웹서버를 뒤에두게끔 설정을 해보자.
sudo apt-get update
sudo apt-get install nginx
cd /
// 설정파일위치찾기
find . -name nginx.conf //./etc/nginx/nginx.conf
// nginx설정파일 위치로 이동
sudo vi /etc/nginx/nginx.conf
// /etc/nginx/nginx.conf
http {
...
server {
# 서버 도메인을 작성해주자. 그럼 let's encript가 알아서 해당 도메인을 찾아서 설정을 도와준다.
server_name api.broccolidb.com;
# reverse proxy를 위한 설정. nginx의 root를 localhost:3065포트로 지정함.
# proxy_redirect, proxy_set_header 의 대한 설정의 개념은 아직 잘 모르겠음. reverse proxy에는 proxy_pass만 있으면 됨.
location / {
proxy_set_header HOST $host;
proxy_pass http://127.0.0.1:3065;
proxy_redirect off;
}
}
}
let's encript는 크롬브라우저에 등록된 기관인증서를 무료로 발금해준다.
아래 예제는 하나의 서버인스턴스에 하나의 웹서버로 하나의 인증서만 발급되면 된다는 상황임.
만약 하나의 서버인스턴스에 두개이상의 웹서버가 존재해서 두개이상의 인증서가 발급이 필요한 경우는 좀 다름.
* 인증서는 route53에서 txt레코드 설정이 필요하다고 함. 나중에 시도해보고 추가로 작성할 예정
일반적으로 certbot은 80포트를 통해서 인증서를 받지만 2번째 웹서버는 80번 포트로 받지 못하고 dns로 인증서를 받아야 한다.
* 도메인으로 인증서를 받으면, www.abc.com, api.abc.com ...등 모든 서브도메인도 다 인증서를 받은것이 됨.
이곳에 가면 현재 접속한 서버가 snapd의 설치여부를 알 수 있는데, ubuntu20.04
는 이미 설치가 되어있으므로 다음단계로 넘어간다.
snapd
의 설치여부를 확인할 수 있다.dpkg --list | grep snapd
sudo snap install core; sudo snap refresh core
과거에는 apt-get으로 certbot을 설치했기 때문에 이때 설치를 진행했다면 아래같은 명령어로 삭제한다.
// apt-get으로 설치시
sudo apt-get remove certbot, sudo dnf remove certbot
// snap으로 설치시
sudo snap remove certbot
//설치
sudo snap install --classic certbot
//설치 확인
snap list | grep certbot
sudo ln -s /snap/bin/certbot /usr/bin/certbot
link 가 걸린것을 확인 할 수 있다.
sudo rm /usr/bin/certbot
nginx
에 할것이기 때문에 예제대로 진행함
sudo certbot --nginx
이메일을 적어주면 갱신시(3개월후)에 메일이 옴.
진행 마지막 단계에 보면 https를 원하는 도메인이 자동으로 후보리스트에 올라온것을 확인 할 수 있는데 api.broccolidb.com
이것은 nginx.conf
에 server_name
을 등록해줬기 때문이다.
완료후에 다시 nginx.conf
로 이동해보면 아래처럼 certbot
가 nginx
설정을 작성한것을 확인 할 수 있다. 띄어쓰기는 좀 안맞음;;
// /etc/nginx/nginx.conf
http {
...
server {
...
listen 443 ssl; # managed by Certbot
...
}
server {
if ($host = api.broccolidb.com) {
return 301 https://$host$request_uri;
} # managed by Certbot
server_name api.broccolidb.com;
listen 80;
return 404; # managed by Certbot
}
}
// /snap
certbot renew