Nginx 뒤에서 coTurn 실행
소개
리버스 프록시를 사용하여 내WebRTC application와 같이 Nginx 뒤에서 coTurn을 실행해 보겠습니다.
와이어샤크
Wireshark를 설치하여 지정된 포트가 지정된 프로토콜(TCP 또는 UDP)로 액세스되는지 확인합니다.
sudo apt install wireshark
내 계정에는 기본적으로 "/usr/bin/dumpcap"에 액세스할 수 있는 권한이 없기 때문에 캡처를 시작할 수 없습니다.
sudo chmod +x /usr/bin/dumpcap
로드 밸런서
this issue comment에 따르면 Nginx의 로드 밸런싱 기능으로 Nginx 뒤에서 coTurn을 실행할 수 있습니다.
nginx.conf를 편집하기 전에 "/etc/hosts"에 로컬 도메인을 추가했습니다.
192.168.XX.YYY local-webrtc.jp
192.168.XX.YYY local-turn.jp
그리고 coTurn의 turnserver.conf에서 UDP와 TCP 수신 포트를 하나로 결합합니다.
turnserver.conf
...
# TURN listener port for UDP and TCP (Default: 3478).
# Note: actually, TLS & DTLS sessions can connect to the
# "plain" TCP & UDP port(s), too - if allowed by configuration.
#
listening-port=3478
# TURN listener port for TLS (Default: 5349).
# Note: actually, "plain" TCP & UDP sessions can connect to the TLS & DTLS
# port(s), too - if allowed by configuration. The TURN server
# "automatically" recognizes the type of traffic. Actually, two listening
# endpoints (the "plain" one and the "tls" one) are equivalent in terms of
# functionality; but Coturn keeps both endpoints to satisfy the RFC 5766 specs.
# For secure TCP connections, Coturn currently supports
# TLS version 1.0, 1.1 and 1.2.
# For secure UDP connections, Coturn supports DTLS version 1.
#
#tls-listening-port=5349
...
nginx.conf
user nginx;
worker_processes auto;
error_log /var/log/nginx/error.log notice;
pid /var/run/nginx.pid;
events {
worker_connections 1024;
}
stream {
map $ssl_preread_server_name $name {
local-webrtc.jp url_backend;
local-turn.jp turn_server;
}
upstream url_backend {
server 127.0.0.1:4444;
}
upstream turn_server {
server 192.168.XX.YYY:3478;
}
server {
listen 443;
ssl_preread on;
proxy_pass $name;
proxy_buffer_size 10m;
}
}
http {
include /etc/nginx/mime.types;
default_type application/octet-stream;
log_format main '$remote_addr - $remote_user [$time_local] "$request" '
'$status $body_bytes_sent "$http_referer" '
'"$http_user_agent" "$http_x_forwarded_for"';
access_log /var/log/nginx/access.log main;
sendfile on;
keepalive_timeout 65;
include /etc/nginx/conf.d/*.conf;
}
webrtcapp.conf
map $http_origin $cors {
'http://localhost:8080' $http_origin;
'https://127.0.0.1:4444' $http_origin;
'https://local-webrtc.jp:443' $http_origin;
}
...
server {
listen 4444 ssl;
server_name localhost;
...
}
443 포트는 웹 어플리케이션과 coTurn이 공유하기 때문에 coTurn과의 통신은 TCP 프로토콜을 사용하며,
Reference
이 문제에 관하여(Nginx 뒤에서 coTurn 실행), 우리는 이곳에서 더 많은 자료를 발견하고 링크를 클릭하여 보았다 https://dev.to/masanori_msl/run-coturn-behind-nginx-8fc텍스트를 자유롭게 공유하거나 복사할 수 있습니다.하지만 이 문서의 URL은 참조 URL로 남겨 두십시오.
우수한 개발자 콘텐츠 발견에 전념 (Collection and Share based on the CC Protocol.)