note
ubuntu 24.04
https reverse proxy 를 사용하여 subdomain 으로 사이트 제공
setup
sudo apt-get update
sudo apt-get install certbot
sudo apt-get install nginx
certbot
https 인증서 발급용이며 nginx 가 선행으로 설치 되어야 함
현재 인증서 확인
sudo certbot certificates
기존 인증서 삭제
sudo certbot delete
인증서 발급/갱신
sudo systemctl stop nginx
sudo certbot certonly --standalone \
-d skelton.cc -d www.skelton.cc \
-d subdomain_1.skelton.cc -d subdomain_2/skelton.cc
sudo systemctl start nginx
nginx
reverse proxy 로 사용하기 위한 설정
sudo vi /etc/nginx/sites-enabled/skelton.cc
위 경로에 reverse proxy 를 위한 sites 파일을 구성 하였다면
sudo ln -s /etc/nginx/sites-enabled/skelton.cc /etc/nginx/sites-available/
sites-available 에 symbolic link 를 통해 sites 를 활성화 해 줌
sudo nginx -t
이 후 위 command 를 사용해 nginx 의 sites 구성에 문제가 없다면
sudo systemctl restart nginx
sudo systemctl status nginx
nginx 재시작 및 상태 확인하면 됨
개인적으로 사용하는 sites 파일의 샘플은 아래와 같음
# skelton.cc
server {
listen 80;
listen [::]:80;
server_name skelton.cc *.skelton.cc;
location / {
return 301 https://$host$request_uri;
}
}
server {
listen 443 ssl;
listen [::]:443 ssl;
server_name *.skelton.cc;
ssl_certificate /etc/letsencrypt/live/skelton.cc/fullchain.pem;
ssl_certificate_key /etc/letsencrypt/live/skelton.cc/privkey.pem;
location / {
return 404;
}
}
server {
listen 443 ssl;
listen [::]:443 ssl;
server_name skelton.cc www.skelton.cc;
ssl_certificate /etc/letsencrypt/live/skelton.cc/fullchain.pem;
ssl_certificate_key /etc/letsencrypt/live/skelton.cc/privkey.pem;
location / {
#return 404;
client_max_body_size 64M;
proxy_pass http://127.0.0.1:9999;
proxy_set_header Host $host;
proxy_set_header X-Real-IP $remote_addr;
proxy_set_header X-Forwarded-For $proxy_add_x_forwarded_for;
proxy_set_header X-Forwarded-Proto $scheme;
proxy_http_version 1.1;
proxy_set_header Upgrade "websocket";
proxy_set_header Connection "Upgrade";
proxy_read_timeout 86400;
}
}
... 