openvidu를 docker container로 배포를 하게 되면 다음과 같이 connection failed가 발생한다


openvidu docker container에 내장되어 있는 ssl 인증서가 self-signed라서 신뢰할 수 없어서 발생한 문제인 듯 하다.

그래서 openvidu:4443/dashboard에 접속하여 신뢰성이 없어도 접속한다고 한 다음 로그인한다. 그리고 테스트를 통해 영상이 잘 나오는지 확인한다.

  • 로그인 정보
    • ID : OPENVIDUAPP
    • PW : (default : MY_SECRET)설정한>
  • 4443 port : openvidu 서버의 default port

그리고나서 app을 실행하면 connection failed가 발생하지 않고 잘 동작한다.

모든 유저가 openvidu:4443/dashboard를 접속하게 할 수는 없기 때문에 openvidu:4443의 인증서를 변경해주어야 하는데, nginx를 통해 이를 해결하고자 했다.

우선 기존 docker-compose.yml에서 openvidu의 4443 포트를 host의 4443포트로 매핑시켰었는데, 이를 삭제하고 nginx의 4443포트를 host의 4443포트로 매핑시켰다.

또한, 아래의 설정을 통해 nginx가 4443 포트를 listen하게 하고 4443포트는 openvidu:4443으로 proxy pass를 하게 했다.
location / 항목에 아래처럼 작성하지 않으면 제대로 동작하지 않는다.

upstream openvidu {
	server openvidu:4443;
}

server {
	listen 4443 ssl;
	server_name i5a104.p.ssafy.io

		proxy_connect_timeout 1d;
	proxy_send_timeout 1d;
	proxy_read_timeout 1d;

	location / {
		proxy_pass https://openvidu/;
		proxy_set_header X-Forwarded-For $proxy_add_x_forwarded_for;
		proxy_set_header X-Real-IP $remote_addr;
		proxy_set_header HOST $http_host;
		proxy_http_version 1.1;
		proxy_set_header Upgrade $http_upgrade;
		proxy_set_header Connection "Upgrade";
	}


	ssl_certificate /etc/letsencrypt/live/i5a104.p.ssafy.io/fullchain.pem;
	ssl_certificate_key /etc/letsencrypt/live/i5a104.p.ssafy.io/privkey.pem;
	include /etc/letsencrypt/options-ssl-nginx.conf;
	ssl_dhparam /etc/letsencrypt/ssl-dhparams.pem;

}