백엔드도 https 변경 → 성공? 아직 모름
이게 localhost에서는 cookie 가 잘 와리가리 되서 찾아봤더니 같은 도메인이어야 쿠키가 저장된다 함.
일단 백엔드랑 프론트랑 같은 도메인으로 연결해봤음. → 안됨
찾아보니 백엔드는 http인데 프론트는 https였음 그래서 안됨
그래서 백엔드도 https로 바꿨음
https://github.com/wmnnd/nginx-certbot
위의 거를 서버에 git clone함
하고 하라는 대로 다함 또 안됨 ㅜㅜ
2023/11/30 16:12:28 [emerg] 38#38: host not found in upstream "host.docker.internal" in /etc/nginx/conf.d/default.conf:24
nginx: [emerg] host not found in upstream "host.docker.internal" in /etc/nginx/conf.d/default.conf:24
로컬에선 host.docker.internal 도메인으로 호스트에 접근이 가능한데 클라우드 서버에서는 위 에러가 발생했다.
이유를 검색해보니 Mac
또는 Windows
에서는 host.docker.internal 도메인으로 접근이 가능하지만 Linux
에서 이 도메인을 사용하기 위해서는 아래와 같이 컨테이너를 실행할 때 --add-host=host.docker.internal:host-gateway
를 추가해줘야 한다.
docker run -it --add-host=host.docker.internal:host-gateway nginx
# etc/nginx/conf.d/default.conf
server {
listen 80;
server_name api.gbs-live.site;
server_tokens off;
location /.well-known/acme-challenge/ {
root /var/www/certbot;
}
location / {
return 301 https://$host$request_uri;
}
}
server {
listen 443 ssl;
server_name api.gbs-live.site;
server_tokens off;
ssl_certificate /fullchain1.pem;
ssl_certificate_key /privkey1.pem;
location / {
proxy_pass <http://host.docker.internal:3000>;
proxy_set_header Host $http_host;
proxy_set_header X-Real-IP $remote_addr;
proxy_set_header X-Forwarded-For $proxy_add_x_forwarded_for;
}
}
docker cp ./default.conf [컨테이너 ID]:/etc/nginx/conf.d/default.conf
docker cp /etc/letsencrypt/archive/api.gbs-live.site/privkey1.pem [컨테이너 ID]:/
docker cp /etc/letsencrypt/archive/api.gbs-live.site/fullchain1.pem [컨테이너 ID]:/
docker exec [컨테이너 ID] nginx -s reload