آموزش کانفیگ و نصب بیگ بلو باتن
در این مقاله میخوانید
- سرویس دهنده کامل HTML5
- نصب کوکی ها
- حداقل تجهیزات مورد نیاز سرور
- بررسیهای قبل نصب
- ارتقاء از bigbluebutton 2.0
- نصب
- در این مرحله دیگر شما آماده نصب هستید.
- 2. نصب کلید apt get برای مخزن بیگ بلو باتن
- 3. پشتیبان گیری از تنظیمات سفارشی
- 4. نصب bigbluebottun
- 5. نصب نسخه api demos
- 6. سرور خود را مجدداً راه اندازی کنید
- 7. مراحل نهایی
- اختصاص دادن یک نام هاست
- پیکربندی ssl در سرور bigbluebutton خود
- پیکربندی BigBlueButton برای استفاده در نام دامنه
- به دست آوردن گواهی ssl
- nginx را برای استفاده از https پیکربندی کنید
- قدم بعدی نصب فایلها روی سرور است.
- پیکربندی freeswitch برای استفاده از ssl
- BigBlueButton را برای بارگیری session از طریق HTTPS پیکربندی کنید
- استفاده از Let’s Encrypt
- جمع بندی
- سوالات متداول
نصب بیگ بلو باتن؛ این مطلب شما را راهنمایی می کند تا بتوانید نصب bbb نسخه 2.2 را یاد بگیرید. این دستور مخفف شده عبارت BigBlueButton می باشد که به عنوان میانگین وب سایت شما کاربرد ندارد. بلکه این یک اپلیکیشن وب کامل است که از قابلیتهای داخلی مرورگر آن برای مواردی همچون ارسال و یا دریافت صدا و فیلم استفاده می شود. همچنین سرور این برنامه میتواند تماس های ورودی API، پردازش اسلایدهای آپلودشده، کنترل کردن مدیاهای مختلف و تبدیل رسانه های ضبط شده به صورت ثبت شده را اجرا کند.
سرویس دهنده کامل HTML5
BigBlueButton از یک سرویس دهنده کامل HTML5 برای رابط کاربری خود بهره می برد. این بدان معنی است که همان سرویس دهنده روی دسک تاپ ، لپ تاپ ، chromebook و دستگاه های تلفن همراه شما (iOS 12.2+ و Android 6.0+) اجرا می شود. ما برای شما Chrome و FireFox را توصیه می کنیم؛ زیرا این مرورگرها بهترین پشتیبانی را برای webRTC از خود ارائه می دهند.
سرویس دهنده bbb ارائه دهنده موارد زیر میباشد:
- بارگذاری 2 برابر سریع تر از نسخههای قبلی
- اشتراک گذاری صوتی ، فیلم و صفحه با کیفیت بالا (با بهره گیری از WebRTC)
- اشتراک گذاری یادداشت های مشترک برای ویرایش چند کاربر (با استفاده از پروژه عالی EtherPad)
- کاملاً در دسترس بودن آن برای خوانندگان صفحه
- اشتراک گذاری ویدیوهای YouTube در طول session
نصب کوکی ها
برای نصب بیگ بلو باتن دو گزینه کوکی در پیش روی شما قرار دارد:
- bbb-install.sh
- step-by-step
اگر از هر کدام از انتخابهای شما صرف نظر شود، به منظور موفقیت آمیز بودن فرآیند نصب، به موارد زیر احتیاج دارید:
- خرید یک سرور اختصاصی
- اطمینان حاصل کنید که سرور حداقل مجموعه نیازهای BigBlueButton را برآورده می کند.
- نام هاست را برای آن در نظر بگیرید (توصیه می شود تا SSL تنظیم شود).
- اگر احتیاج بود، سرور firewall باید پیکربندی شود.
دو موردی که در نصب کوکی های bbb به آن ها گردید، در ادامه به صورت گسترده به آن پرداخته خواهد شد.
bbb-install.sh
اگر قصد دارید تا سرور bbb را به سرعت راه اندازی کنید (یا قبلا سرورهای آن را تنظیم کردید)، این کوکی میتواند تنها با یک خط فرمان واحد و در عرض 15 دقیقه عملیات اجرا را انجام دهد و آن را به طور کامل راه اندازی کند.
step by step
اگر میخواهید مولفههای بیشتری را در رابطه با بیگ بلو باتن بدانید، می توانید از دستورالعمل step by step استفاده کنید.
نکات قبل از نصب بیگ بلو باتن
برای اینکه یک نصب بیگ بلو باتن موفقیت آمیز را داشته باشید، توصیه می شود که در ابتدا با یک سرور 64 بیتی “Clean” که در اوبنتو 16.04 وجود دارد و برای این دستور اختصاص داده شده است، شروع کنید.
منظور از “Clean” این است که سرور مورد نظر هیچ برنامه وبی را از قبل نصب نکرده باشد. ( مانند plesk ، webadmin یا apache) اینگونه موارد برای پورت 80.443 جزو الزامات به شمار می رود.
همچنین منظور از اختصاص داده شده و یا ‘dedicated’ این است که سرور به غیر از bbb برای هیچ چیز دیگری مورد استفاده قرار نگیرد. برنامه هایی که مربوط به BigBlueButton هستند، در بین این گزینه ها قرار می گیرند و Greenlight نمونهای از آنها میباشد.
حداقل تجهیزات مورد نیاز سرور
حداقل گزینههایی که مورد نیاز سرور BigBlueButton هستند، شامل موارد زیر میباشند:
- Ubuntu 16.04، 64 بیتی سیستم عامل OS در حال اجرا با هسته Linux 4.x
- 8 گیگابایت حافظه با قابلیت تعویض فعال (16 گیگابایت حافظه گزینه بهتری است)
- هسته چهار هستهای (نوع 8 هستهای آن در اولویت قرار دارد)
- پورت های TCP 80 و 443 در دسترس هستند.
- پورت های UDP 16384 – 32768 نیز در دسترس میباشند.
- پورت 80 توسط برنامه دیگری استفاده نمی شود.
برای سرور دیگری که قرار است مورد استفاده قرار گرفته شود، به غیر از موارد ذکرشده، گزینههای زیر نیز توصیه میشوند:
- 500 گیگ فضای دیسک رایگان (یا بیشتر) برای ضبط
- پهنای باند 250 مگابیت در ثانیه (متقارن) یا بیشتر
- سخت افزار اختصاصی
- یک نام میزبان (مانند bbb.example.com) برای تنظیم گواهی SSL
- آدرسهای IPV4 و IPV6
چرا ما یک سرور bare metal پیشنهاد می کنیم؟
bbb برای پردازش بسته های صوتی دریافتی از FreeSWITCH استفاده می کند و FreeSWITCH در یک محیط غیر مجازی بهترین کار را به انجام می رساند.
اگر big blue button را برای توسعه محلی در workstation خود تنظیم کرده اید ، می توانید کمی گزینههای مورد نیاز سرور را فراهم کنید؛ زیرا شما تنها کسی هستید که از سرور استفاده خواهید کرد. شما باید از قابلیت اجرای BigBlueButton با موارد زیر بهره مند باشید:
- CPU دو هستهای
- نصب بر روی یک مخزن محلی VM یا LXC
- تنها آدرس IPV4 (بدون نام میزبان)
با این حال، بدون پیکربندی SSL در سرور، نمی توانید از ارتباطات در زمان واقعی وب (WebRTC) برای به اشتراک گذاشتن میکروفون ، وب کم یا صفحه استفاده کنید. به عبارت دیگر ، همه مرورگرها قبل از اینکه بتوانند به یک برنامه HTML5 اجازه دسترسی به اشتراک گذاری مدیاهای مختلف را بدهند، نیاز دارند که صفحه آنها از طریق HTTPS لود شوند.
اگر می خواهید بیگ بلو باتن را بر روی Amazon EC2 نصب کنید، توصیه ما به شما این است که bbb را با نمونه c5.xlarge (یا CPU بهتر) اجرا کنید. این نمونه های جدید محاسباتی، عملکرد بسیار نزدیکی را به baremetal ارائه می دهند.
برای حداقل نیاز کاربران نهایی ، آخرین نسخه Firefox یا Chrome با حداقل نیازهای پهنای باند زیر را توصیه می کنیم.
بررسیهای قبل نصب
آیا سرور 64 بیتی اوبنتو نسخه 16.04 شما آماده نصب شده است؟
قبل از اینکه عملیات نصب را شروع کنید، چند بررسی مربوط به پیکربندی را انجام دهید تا مطمئن شوید سرور شما می تواند کمترین شرایط لازم را برآورده کند. وقت گذاشتن چند لحظه برای اینکار، باعث کاهش قابل توجه در تغییراتی خواهد شد که هنگام نصب میتوانید با آنها رو به رو شوید.
در مرحله اول بررسی کنید که محل سرور شما en_US.UTF-8 باشد. برای اینکار نیاز است تا دستور زیر را وارد کنید:
$ cat /etc/default/locale LANG="en_US.UTF-8"
اگر نمیتوانید دستور LANG=”en_US.UTF-8″ را پیدا کنید و یا ببینید، دستورات زیر را وارد کنید تا محل مناسبی برای آن تنظیم شود.
$ sudo apt-get install language-pack-en $ sudo update-locale LANG=en_US.UTF-8
در مرحله بعد یک بار از سیستم خارج شده و دوباره به session در SSH وارد شوید. این کار پیکربندی محلی را برای session شما، بار دیگر لود میکند. از این رو یک بار دیگر دستور بالا یعنی /etc/default/locale again را بار دیگر وارد کنید و به اجرا برسانید. پس از تایید میتوانید تنها خط واحد LANG=”en_US.UTF-8″ را مشاهده کنید.
نکته مهم:
نکته مهمی که در این باره وجود دارد، مربوط به یک خط می باشد. اگر خط اضافی LC_ALL=en_US.UTF-8 را میبینید، ورودی LC_ALL را از /etc/default/locale حذف کنید و logout شوید. بعد از این کار دوباره وارد سیستم شوید.
در مرحله بعد باید sudo systemctl show-environment را انجام دهید و اطمینان حاصل کنید که LANG = en_US.UTF-8 را در خروجی میبینید. برای اینکار کافیست تا دستور زیر را وارد کنید:
$ sudo systemctl show-environment LANG=en_US.UTF-8 PATH=/usr/local/sbin:/usr/local/bin:/usr/sbin:/usr/bin:/sbin:/bin
اگر دوباره نمی توانید این گزینه را مشاهده کنید، sudo systemctl set-environment LANG=en_US.UTF-8 را به انجام برسانید و دستور بالا یعنی sudo systemctl show-environment را دوباره اجرا کنید و سپس تایید کنید که LANG=en_US.UTF-8 را در خروجی میبینید.
از دیگر کارهایی که قبل از نصب بیگ بلو باتن باید انجام دهید این است که سرورتان را چک کنید تا ببینید که از دستور free -h پیروی میکند و 4 گیگابایت حافظه داخلی دارد.
مثال
به عنوان مثال در اینجا میتوانید خروجی یکی از سرورهای تست شده ما را ببینید:
$ free -h total used free shared buff/cache available Mem: 31G 5.9G 314M 1.8G 25G 21G Swap: 31G 360M 31G
در اینجا 31 گیگ حافظه نشان داده شده است. ( این یک سروری است که با 32 گیگابایت حافظه طراحی شده است.
اگر مقداری را برای Mem مشاهده میکنید: در ستون کل کمتر از 4 گیگ (مثال بالا نشان دهنده 31 گیگ است)، در نهایت سرور شما فضای کافی برای اجرای بیگ بلو باتن را ندارد. از این رو باید حافظه سرور را حداقل به 4G افزایش دهید.
از دیگر مراحل بررسی کردن این موضوع میباشد که اوبنتو نسخه 16.04 را دارد یا خیر. برای اینکار باید دستور زیر را وارد کنید:
$ cat /etc/lsb-release DISTRIB_ID=Ubuntu DISTRIB_RELEASE=16.04 DISTRIB_CODENAME=xenial DISTRIB_DESCRIPTION="Ubuntu 16.04.x LTS"
در مرحله بعدی نوبت آن است تا چک کنید که آیا نسخه 64 بیتی اوبنتو 16.04 در سرور شما اجرا می شود یا نه. دستور زیر برای اینکار مورد استفاده قرار می گیرد:
$ uname -m x86_64
بعد بررسی کنید که سرور شما از IPV6 پشتیبانی می کند. برای اینکار نیاز به وارد کردن دستور زیر دارید:
$ ip addr | grep inet6 inet6 ::1/128 scope host ...
اگر خط inet6 :: 1/128 دامنه میزبان را نمی بینید ، پس از نصب bigbluebutton، باید تنظیمات مربوط به FreeSWITCH را تغییر دهید تا بتوانید پشتیبانی از IPV6 را غیرفعال کنید.
بعد بررسی کنید که سرور شما هسته لینوکس 4.x را اجرا می کند که برای اینکار هم به دستور زیر نیاز است:
$ uname -r 4.15.0-38-generic
بعد باید بررسی کنید که سرور شما (حداقل) 4 هسته CPU داشته باشد. برای اینکار نیز باید از دستور زیر استفاده کنید:
$ cat /proc/cpuinfo | awk '/^processor/{print $3}' | wc -l 4
توجه:
BigBlueButton روی هسته 2.6 هسته ای اجرا نمی شود (مانند لینوکس 2.6.32-042stab133.2 در x86_64 در OpenVZ VPS).
بعضی اوقات از ما سؤال می شود “چرا شما فقط از نسخه 64 بیتی اوبونتو 16.04 پشتیبانی می کنید؟”. پاسخ ما برای اینتخاب کردن این بوده که کیفیت بیش از کمیت است. مدتها پیش نتیجه گرفتیم که بهتر است این پروژه دارای نصب مستحکم و آزمایش شده و مستند برای نسخه خاصی از لینوکس باشد که واقعا کار می کند، واقعاً با تلاش ها و پشتیبانیهایی که انجام شد، هیچکدام نتوانستند به خوبی کار کنند و آنطور که باید از خود عملکرد نشان دهند.
یک نام میزبان و یک گوهی ssl داشته باشید
در این باره توصیه ما به شما این است که برای سرور BigBlueButton خود یک نام دامنه کاملاً واجد شرایط (مانند FQDN) مانند bigbluebutton.example.com را اختصاص دهید و پیکربندی سرور را با گواهی لایه سوکت های امن (SSL) تنظیم نمایید. با انجام این کار، nginx، سرور وب که با BigBlueButton نصب می شود را قادر می سازد تا محتوا را از طریق پروتکل انتقال ابر متن امن (HTTPS) ارائه دهد. بدون استفاده از HTTPS ، مرورگرها اجازه نخواهند داد که وبکمها یا میکروفون خود را به اشتراک بگذارند. همچنین، بدون فعال کردن HTTPS، برخی از مرورگرها از محتوای ناامن شکایت می کنند و نارضایتی خود را اعلام می کنند.
به طور خلاصه ، روی هر سرور مورد استفاده، تنظیم نام دامنه و گواهی SSL معتبر ضروری است.
برای به دست آوردن نام دامنه، تعداد زیادی registrars دامنه خوب مانند GoDadday و Solutions Network وجود دارند.
همچنین برای دریافت گواهینامه SSL گزینه های زیادی وجود دارند که به علت گستردگی آن نمیتوان در این مطلب به آن پرداخت.
پیکربندی فایروال در صورت نیاز
اگر بین خودتان و کاربرانتان فایروال دارید، بهترین گزینه مورد نظر این است که پیکربندی های مربوط به آن را ببینید.
به روز رسانی
قبل از اینکه به روز رسانی را شروع کنید، اگر از طریق پروندهها و فایلهای پیکربندی تغییراتی را در بیگ بلو باتن به وجود آوردهاید، باید از این اصلاحات نسخه پشتیبان تهیه کنید تا بعد از به روز رسانی مجدد، تمامی آنها را دوباره اعمال کنید.
ارتقاء از bigbluebutton 2.2
اگر شما در حال به روزرسانی و ارتقا BigBlueButton 2.2 هستید و برای تنظیم گواهی SSL / TLS از Let Encrypt استفاده کردهاید و هیچ تغییر سفارشی در پیکربندی انجام نداده اید، پس باید بتوانید تا اسکریپت bbb-install.sh را اجرا کنید. هدف از اینکار رسیدن تا به جدیدترین نسخه از BigBlueButto 2.2 دست پیدا کنید و آن را ارتقا ببخشید.
اگر نسخه قبلی BigBlueButton 2.2 را با استفاده از دستورالعمل های step-by-step نصب کردهاید، باید از هرگونه تغییر در تنظیمات سفارشی پشتیبان گیری انجام داده و سپس با استفاده از دستورات زیر به روزرسانی را شروع کنید. ابتدا همه بسته ها را با استفاده از dist-upgrade از بین ببرید. اینکار باعث خواهد شد تا آخرین نسخه از پکیج BigBlueButton 2.2 نصب شود.
ما برای این عملیات PPA را به ffmpeg تغییر دادهایم. اگر قبلاً این کار را نکرده اید، کافیست دستورات زیر را وارد کنید:
$ sudo rm -f /etc/apt/sources.list.d/jonathonf-ubuntu-ffmpeg-4-xenial.list $ sudo add-apt-repository ppa:bigbluebutton/support
بعد، بسته ها را با بهره گیری از دستورات زیر به روز و آپدیت کنید:
$ sudo apt-get update $ sudo apt-get dist-upgrade
در مرحله بعد ، از bbb-conf –setip برای اختصاص دادن دوباره آدرس آی پی سرور یا نام هاست به فایلهای پیکربندی BigBlueButton بهره ببرید که دستور واردشده به صورت زیر خواهد بود:
$ sudo bbb-conf --setip <IP_or_hostname> $ sudo bbb-conf --check
مثال
به عنوان مثال، اگر سرور خود را با نام میزبان bbb.example.com پیکربندی کرده بودید باید این کار را می کردید:
$ sudo bbb-conf --setip bbb.example.com $ sudo bbb-conf --check
ارتقاء از bigbluebutton 2.0
اگر نسخه قبلی BigBlueButton 2.0 را نصب کردهاید و سپس تغییرات سفارشی را ایجاد نمودهاید ، ابتدا باید از تغییرات خود نسخه پشتیبان تهیه کنید. بعد از تهیه بکاپ از تغییرات، می توانید از bbb-install.sh برای به روزرسانی و یا انجام مراحل زیر استفاده کنید. پس از اتمام به روزرسانی ، تغییرات خود را دوباره اعمال کنید.
ابتدا باید bbb-client را از نصب در بیاورید:
$ sudo apt-get purge -y bbb-client
و بسته های قدیمی تر Kurento را با دستور زیر پاک کنید:
$ sudo apt-get purge -yq kms-core-6.0 kms-elements-6.0 kurento-media-server-6.0 $ sudo bbb-conf --restart
سپس می توانید از بین دو کوکی نصب برای به روزرسانی به BigBlueButton 2.2 یکی را انتخاب کنید. پس از اتمام به روزرسانی، میتوانید دوباره تغییرات سفارشی را اعمال کنید.
توجه:
اگر از bbb-install.sh برای به روزرسانی BigBlueButton 2.0 استفاده می کنید، دیگر نیازی به پاک کردن پکیجهای bbb-client و Kurento نیست؛ زیرا اسکریپت مربوط به روزرسانی، ارتقاء شما را از BigBlueButton 2.0 تشخیص داده و به طور خودکار آن را برای شما انجام می دهد.
نصب
آماده نصب هستید؟ در اینجا یک لیست سریع از کارهایی که قبل از نصب باید انجام دهید، وجود دارد:
- شما یک سرور 64 بیتی Ubuntu 16.04 دارید که حداقل انتظارات را برآورده میکند.
- اگر سرور در پشت فایروال قرار دارد، شما باید فایروال خود را تنظیم کنید تا بتوانید پورتهای مناسب را به سرور BigBlueButton منتقل کنید (و از طریق یک رایانه خارجی آزمایش کنید که اتصالات از طریق فایروال به سرور BigBlueButton شما منتقل می شوند).
- شما یک نام دامنه کاملاً واجد شرایط (مانند bigbluebutton.example.com) دارید که آدرس IP سرور BigBlueButton شما (یا آدرس IP فایروال شما) را برطرف میکند.
- همچنین شما یک گواهی SSL معتبر برای نام هاست دارید (یا قصد دارید با استفاده از Letry Encrypt، که در این اسناد وجود دارد، یکی از آنها را دریافت کنید)
اگر یک توسعه دهنده برای تنظیم BigBlueButton هستید و آن را برای توسعه یا آزمایش در یک VM محلی ایجاد کردهاید و قصد استفاده از FireFox را دارید ، می توانید از مراحل بالاتر بهره مند شوید.
در این مرحله دیگر شما آماده نصب هستید.
1. سرور خود را به روز کنید
ابتدا مطمئن شوید که سرور شما با جدیدترین پکیجها و به روزرسانیهای امنیتی آپدیت شدهاند.
از طریق SSH به سرور خود وارد شوید. شما باید حسابی داشته باشید که بتواند دستورات را به صورت root (از طریق sudo) اجرا کند. پس از ورود به سیستم، ابتدا با انجام موارد زیر اطمینان حاصل کنید که multiverse xenail را در لیست /etc/apt/source.list خود دارید.
$ grep "multiverse" /etc/apt/source.list
پس از وارد کردن دستور فوق باید خط تعریف نشده را برای مخزن multiverse مشاهده کنید که ممکن است شبیه مورد زیر باشد:
deb http://archive.ubuntu.com/ubuntu xenial multiverse
و یا این:
deb http://archive.ubuntu.com/ubuntu xenial main restricted universe multiverse
نگران نباشید اگر نام میزبان شما در URL با موارد بالا متفاوت باشد، مهم این است که شما یک پیوند غیرقابل تعریف شده را مشاهده می کنید که شامل چندگانگی است. اگر این کار را نکردید ، دستور زیر را اجرا کنید تا مخزن چند هسته ای را به پرونده /etc/apt/source.list خود اضافه کنید.
$ echo "deb http://archive.ubuntu.com/ubuntu/ xenial multiverse" | sudo tee -a /etc/apt/source.list
اگر شما یک سازنده و طراحی هستید که BigBlueButton را برای آزمایش و توسعه بر روی VM نصب میکنید ، برخی از مؤلفه های BigBlueButton مانند Tomcat هنگام راه اندازی به منبع entropy احتیاج دارند. در یک VM، entropy موجود می تواند کم اجرا شود، Tomcat می تواند برای مدت زمان طولانی قبل از راه اندازی مسدود شود. (گاهی اوقات چند دقیقه)
برای دادن مقادیر زیادی VM به entropy، یک پکیجی را تحت عنوان haveged نصب کنید. مانند دستور زیر:
$ sudo apt-get install haveged
دو برنامه مورد نیاز BigBlueButton وجود دارد:
ffmpeg (ایجاد ضبط) و yq (به روزرسانی فایل های YAML).
نسخه پیش فرض ffmpeg در اوبونتو 16.04 قدیمی است و yq در مخازن پیش فرض وجود ندارد. بنابراین، قبل از نصب BigBlueButton، برای اطمینان از نصب نسخه های مناسب، باید بایگانیهای بسته شخصی زیر (PPA) را به سرور خود اضافه کنید.
$ sudo add-apt-repository ppa: bigbluebutton / support -y $ sudo add-apt-repository ppa: rmescandon / yq -y
بعد، سرور خود را به آخرین پکیجهای موجود (و رفع مشکلات امنیتی) ارتقا دهید.
$ sudo apt-get update $ sudo apt-get dist-upgrade
اگر مدتی به روز رسانیهای خود را انجام ندادهاید ، ممکن است apt-get پیشنهاد reboot کردن سرورتان را بعد از اتمام dist-upgradeبدهد. قبل از رفتن به مرحله بعدی و پردازش آن، reboot را انجام دهید.
مشتری BigBlueButton HTML5 از MongoDB که از یک پایگاه داده بسیار کارآمد استفاده میکند، برای همگام سازی وضعیت مشتریها استفاده می شود. برای نصب MongoDB موارد زیر را انجام دهید:
$ wget -qO - https://www.mongodb.org/static/pgp/server-3.4.asc | sudo apt-key add - $ echo "deb [ arch=amd64,arm64 ] http://repo.mongodb.org/apt/ubuntu xenial/mongodb-org/3.4 multiverse" | sudo tee /etc/apt/sources.list.d/mongodb-org-3.4.list $ sudo apt-get update $ sudo apt-get install -y mongodb-org curl
سرویس دهنده BigBlueButton HTML5 به یک سرور nodejs نیاز دارد. برای نصب nodej ها، موارد زیر را انجام دهید:
curl -sL https://deb.nodesource.com/setup_8.x | sudo -E bash - sudo apt-get install -y nodejs
2. نصب کلید apt get برای مخزن بیگ بلو باتن
همه بسته های bbb به صورت دیجیتالی با کلید عمومی پروژه امضا میشوند. قبل از نصب بیگ بلو باتن، باید کلید عمومی پروژه را به زنجیره کلید سرور خود اضافه کنید. برای این کار دستور زیر را وارد کنید:
$ wget https://ubuntu.bigbluebutton.org/repo/bigbluebutton.asc -O- | sudo apt-key add -
اگر سرور خود را با BigBlueButton 2.0 (یا نسخه قبلی) به روز می کنید ، ابتدا باید بسته bbb-client را حذف کنید. طبق دستور زیر:
$ sudo bbb-conf --stop $ sudo apt-get purge -y bbb-client
این بدان دلیل است که برخی از پروندههای متعلق به bbb-client ، به bbb-web انتقال داده میشوند. حذف بسته bbb-client قبل از به روزرسانی با BigBlueButton 2.2 به bbb-web امکان می دهد تا این فایلها را بدون تناقض و یا نقصی از نسخه قدیمی bbb-client ایجاد کند.
در مرحله بعد، سرور شما باید بداند که بسته های BigBlueButton 2.2 را کجا دانلود کند. برای پیکربندی مخزن پکیج، دستور زیر را وارد کنید:
$ echo "deb https://ubuntu.bigbluebutton.org/xenial-22/ bigbluebutton-xenial main" | sudo tee /etc/apt/source.list.d/bigbluebutton.list
سپس apt-get را برای پایین آوردن پیوندها به آخرین پکیجهای bbb، به اجرا برسانید. مانند دستور زیر:
$ sudo apt-get update
3. پشتیبان گیری از تنظیمات سفارشی
اگر این یک نصب جدید باشد، میتوانید از این مرحله صرف نظر کنید.
اگر با استفاده از BigBlueButon2.0 یا نسخه قبلی BigBlueButton 2.2 به روزرسانی را انجام میدهید، تغییرات سفارشی ایجاد کردهاید، مانند:
- گواهی SSL خود را در / etc / nginx / sites-available / bigbluebutton تنظیم کنید.
- FreeSWITCH را برای پذیرش تماسهای تلفنی دریافتی پیکربندی کنید.
- پرونده پیش فرض /var/www/bigbluebutton-default/default.pdf را تغییر دهید.
4. نصب bigbluebottun
توجه: اگر از BigBlueButton 2.0 برای به روزرسانی بهره میبرید (یا قبل از آن)، از sudo apt-get purbb-client برای از نصب خارج کردن و یا حذف bbb-client استفاده کنید. این مورد برای وقتی است که بخواهید ورژن جدید از bbb را نصب کنید.
اکنون ما آماده نصب bbb هستیم. دو دستور زیر را وارد کنید:
$ sudo apt-get install bigbluebutton $ sudo apt-get install bbb-html5
برای هر دستور، هنگامی که از شما خواسته شد تا عملیات را به انجام برسانید، “Y” را تایپ کنید و سپس ENTER را فشار دهید.
نکته 1:
شما می توانید هرگونه خطای “عدم بارگیری پرونده های داده اضافی” در بسته نصب ttf-mscorefonts-installer را نادیده بگیرید. این مشکل با ابونتو 16.04 کاملا شناخته شده است.
نکته 2:
گر فرآیند نصب کردن قبل از اتمام با خطایی مواجه شد ، مراحل را دوباره مورد بررسی قرار دهید. اگر خطاهای پیکربندی را پیدا کرده و آنها را برطرف کردید، می توانید با استفاده از دستور sudo apt-get install -f، نصب را تمام کنید.
نکته 3:
گر بعد از نصب sudo apt-get -f هنوز خطایی دارید ، همین جا توقف کنید. نصب تمام نشده است و bbb اجرا نخواهد شد. برای کمک به راهنمایی عیب یابی و گزینه های دیگر مراجعه کنید.
پس از اتمام نصب، می توانید HTML5 را به صورت پیش فرض مشتری قرار دهید (همین مورد توصیه میشود مگر اینکه به مشتری Flash نیاز داشته باشید).
سرانجام ، برای اطمینان از به روز بودن همه بستهها، در آخر dist-upgrade را انجام دهید. مانند دستور زیر:
$ sudo apt-get dist-upgrade
پس از اتمام نصب، می توانید HTML5 را به صورت پیش فرض (توصیه) قرار دهید.
سپس bbb را ری استارت کنید:
$ sudo bbb-conf --restart
با این کار تمامی اجزای سرور bbb به ترتیب مجدداً راه اندازی میشوند.
توجه:
نگران نباشید اگر در ابتدا خطای
# Not running: tomcat7 or grails و یا Error: Could not connect to the configured hostname/IP address
را مشاهده کردید. چرا که راه اندازی مدتی طول میکشد.
پس از اتمام ری استارت شدن ، تنظیمات را با استفاده از bbb-conf –check بررسی کنید. هنگام اجرای این دستور، باید خروجی مشابه موارد زیر را مشاهده کنید:
$ sudo bbb-conf --check BigBlueButton Server 2.2.0 (1571) Kernel version: 4.4.0-142-generic Distribution: Ubuntu 16.04.6 LTS (64-bit) Memory: 16432 MB /usr/share/bbb-web/WEB-INF/classes/bigbluebutton.properties (bbb-web) bigbluebutton.web.serverURL: http://178.128.233.105 defaultGuestPolicy: ALWAYS_ACCEPT /etc/nginx/sites-available/bigbluebutton (nginx) server name: 178.128.233.105 port: 80, [::]:80 bbb-client dir: /var/www/bigbluebutton /var/www/bigbluebutton/client/conf/config.xml (bbb-client) Port test (tunnel): rtmp://178.128.233.105 red5: 178.128.233.105 useWebrtcIfAvailable: true /opt/freeswitch/etc/freeswitch/vars.xml (FreeSWITCH) local_ip_v4: 178.128.233.105 external_rtp_ip: stun:stun.freeswitch.org external_sip_ip: stun:stun.freeswitch.org /opt/freeswitch/etc/freeswitch/sip_profiles/external.xml (FreeSWITCH) ext-rtp-ip: $${local_ip_v4} ext-sip-ip: $${local_ip_v4} ws-binding: :5066 wss-binding: :7443 /usr/local/bigbluebutton/core/scripts/bigbluebutton.yml (record and playback) playback_host: 178.128.233.105 playback_protocol: http ffmpeg: 4.1.1-0york1~16.04 /etc/bigbluebutton/nginx/sip.nginx (sip.nginx) proxy_pass: http://178.128.233.105:5066 ** Potential problems described below **
هر خروجیای که به دنبال مشکلات احتمالی باشد، ممکن است خطاهای پیکربندی یا خطاهای نصب را نشان دهد. در بسیاری از موارد ، پیام ها به شما توصیه می کنند که چگونه با استفاده از راه حلهای موجود مسئله را حل کنید.
همچنین می توانید از sudo bbb-conf –status استفاده کنید تا بررسی کنید که تمام مراحل بیگ بلو باتن شروع شده و در حال اجرا هستند.
$ sudo bbb-conf --status red5 ——————————————————► [✔ - active] nginx —————————————————► [✔ - active] freeswitch ————————————► [✔ - active] redis-server ——————————► [✔ - active] bbb-apps-akka —————————► [✔ - active] bbb-transcode-akka ————► [✔ - active] bbb-fsesl-akka ————————► [✔ - active] tomcat7 ———————————————► [✔ - active] mongod ————————————————► [✔ - active] bbb-html5 —————————————► [✔ - active] bbb-webrtc-sfu ————————► [✔ - active] kurento-media-server ——► [✔ - active] etherpad ——————————————► [✔ - active] bbb-web ———————————————► [✔ - active] bbb-lti ———————————————► [✔ - active]
در این مرحله، سرور بیگ بلو باتن شما به آدرس IPV4 توجه میکند. به عنوان مثال، اگر سرور شما در آدرس IP 178.128.233.105 است، میتوانید http://178.128.233.105/ را باز کنید و صفحه welcome را ببینید.
با این وجود نمی توانید وارد صفحه شوید، مگر اینکه نسخه API demos را نصب کرده باشید. (اگر بخواهید این دستور را امتحان کنید، با خطای احتمالی 404 رو به رو خواهید شد)
اگر قصد استفاده از این سرور را با front-end دارید، به نسخههای API demos نیازی نیست. شما میتوانید bbb را با یکی از موارد شخص ثالث ادغام کنید و در جهت یکپارچه سازی آدرس سرور به جلو بروید. همچنین شما می توانید از bbb-conf برای نشان دادن اطلاعاتی استفاده کنید که از bbb-conf –secret بهره مند هستند. مانند دستور زیر:
$ sudo bbb-conf --secret URL: http://178.128.233.105/bigbluebutton/ Secret: 330a8b08c3b4c61533e1d0c5ce1ac88f Link to the API-Mate: http://mconf.github.io/api-mate/#server=http://178.128.233.105/bigbluebutton/&sharedSecret=330a8b08c3b4c61533e1d0c5ce1ac88f
5. نصب نسخه api demos
نسخههای api demos مجموعه ای از صفحات Java Server (JSP) هستند که یک واسط مبتنی بر وب را برای آزمایش API bbb پیاده سازی میکنند.
برای نصب نمونه های API، دستور زیر را وارد کنید:
$ sudo apt-get install bbb-demo
پس از نصب، میتوانید نام خود را در صفحه اصلی وارد کرده و روی “عضویت” کلیک کنید.
این شما را به جلسه پیش فرض موسوم به “Demo meeting” پیوند میدهد. در اینجا میتوانید از صفحه با استفاده از FireFox، باز کردن پانل Shared Notes ، کشیدن روی تخته سفید و اشتراک گذاری یک وب کم عکس بگیرید.
هنگامی که نمونههای API تمام شد، میتوانید برای حدف آنها اقدام کنید:
$ sudo apt-get remove bbb-demo
6. سرور خود را مجدداً راه اندازی کنید
می توانید سرور BigBlueButton را در هر زمان و با استفاده از دستورات مجدداً راه اندازی کرده و بررسی کنید.
$ sudo bbb-conf --restart $ sudo bbb-conf --check
bbb-conf –check برخی از پروندههای گزارش را برای برخی پیامهای خطا اسکن میکند. باز هم اگر هر خروجیای که به دنبال مشکلات احتمالی بوده ، ممکن است نشان دهنده خطاهای پیکربندی یا خطاهای نصب باشند. در بسیاری از موارد، پیامهای موجود به شما توصیه می کنند که چگونه مسئله را حل کنید.
توجه کنید که sudo bbb-conf –check به شما هشدار میدهد که نسخههای API demos نصب شدهاند و این امکان را برای همه فراهم می کند که به سرور به منظور اجرای session دسترسی پیدا کنند. (حذف نسخههای API demos)
اگر پیامهای هشدار دهنده دیگری را مشاهده کردید ، به بررسی نصب troubleshooting بپردازید.
7. مراحل نهایی
اگر این سرور برای تولید در نظر گرفته شود، باید:
- برای سرور یک نام میزبان در نظر بگیرید
- برای پشتیبانی از HTTPS اقدام به خرید ssl و نصب آن کنید.
- سیستم خود را ایمن کنید – دسترسی به پورتهای خاص را محدود کنید.
- پیکربندی سرور برای کار در پشت فایروال (در صورت لزوم)
- سخههای API demos را حذف کنید (اگر آنها را برای آزمایش کردن نصب کردهاید)
- یک سرور TURN را تنظیم کنید (اگر سرور شما در اینترنت است و کاربرانی دارید که از پشت فایروالهای محدود کننده به آن دسترسی دارند)
اختصاص دادن یک نام هاست
برای هر سرور BigBlueButton تولیدی ، باید آن را به یک نام میزبان اختصاص دهید.
اگر قبلاً این کار را نکرده اید ، باید یک نام دامنه را از ارائه دهنده سرویس نام دامنه (DNS) خریداری کنید و با استفاده از رابط وب ارائه دهنده، A record را پیکربندی کنید. بدین صورت که به آدرس IP سرور خود اشاره کند.
پس از تنظیم A record، دستور زیر و EXTERNAL_HOST_NAME را با نام میزبان سرور BigBlueButton خود وارد کنید:
$ ping EXTERNAL_HOST_NAME
در اینجا مثالی از خروجی با استفاده از demo.bigbluebutton.org آورده شده است:
$ ping demo.bigbluebutton.org PING demo.bigbluebutton.org (146.20.105.32) 56(84) bytes of data. 64 bytes from 146.20.105.32: icmp_seq=1 ttl=44 time=27.5 ms
توجه: اگر سرور شما اجازه عبور ICMP را نمی دهد ، هیچ بایتی برنگردانده نمی شود، اما باید آدرس IP سرور خود را در داخل براکت ها () بعد از نام میزبان ببینید.
اگر نام میزبان به آدرس IP سرور (یا آدرس IP فایروال) در حال حل کردن مشکل خود است، در مرحله بعدی از ابزار تنظیمات پیکربندی bbb یعنی bbb-conf برای به روزرسانی پروندههای پیکربندی بندی شده bbb بهره ببرید تا در hostname مورد استفاده قرار بگیرد.
$ sudo bbb-conf --setip HOSTNAME
به عنوان مثال ، اگر نام میزبان شما bigbluebutton.example.com بود، ئستور به صورت زیر میباشد:
$ sudo bbb-conf --setip bigbluebutton.example.com
در این مرحله ، شما باید سرور BigBlueButton را به آدرس IP (یا نام میزبان) توجه کنید و به درخواستهای API پاسخ دهید. با این حال اگر سعی کردید به صفحه پیش فرض سرور با یک مرورگر وارد شوید، خطای زیر را دریافت میکنید:
HTTP Status 404 - /demo/demo1.jsp
چرا؟ سرور BigBlueButton برای لیست تماس های API خود را آماده میکند، اما front-end به صورت پیش فرض نصب نشده است. به راحتی می توانید نسخههای API demos را برای آزمایش سرور نصب کنید. ما در مرحله بعد نمایه های API را نصب خواهیم کرد.
با این حال، اگر قصد استفاده از front-end را برای سرور BigBlueButton دارید، به API demos احتیاج ندارید ، به عنوان مثال ، اگر شما یک سرور Moodle دارید و می خواهید پلاگین بیگ بلو باتن را برای Moodle را پیکربندی کنید باید به سرور BigBlueButton دسترسی پیدا کنید.
پیکربندی ssl در سرور bigbluebutton خود
برای امنیت بیشتر باید پشتیبانی SSL را به سرور BigBlueButton خود اضافه کنید. همچنین، مانند Chrome 47 ، کاربران Chrome نمی توانند میکروفون خود را از طریق WebRTC به اشتراک بگذارند، مگر اینکه BigBlueButton از طریق HTTPS لود شود.
پیکربندی BigBlueButton برای استفاده در نام دامنه
لطفاً تمام دستورات موجود در این بخش را به عنوان root اجرا کنید.
برای به دست آوردن گواهی SSL معتبر برای سرور خود، باید از قبل نام سرور را به سرور BigBlueButton اختصاص داده باشید.
برای اهداف داکیومنت سازی، از نام دامنه “shembull.com”، با یک سرور BigBlueButton میزبان در “bigbluebutton.example.com” استفاده خواهیم کرد.
هنگامی که نام یک دامنه دارید و آن را با یک میزبان DNS پیکربندی کردهاید، A record را به آن اضافه کنید که به سرور شما اشاره دارد. سپس میتوانید از bbb-conf setip command برای پیکربندی BigBlueButton بهره ببرید که از نام دامنه استفاده خواهد کرد، برای مثال:
$ sudo bbb-conf --setip bigbluebutton.example.com
به دست آوردن گواهی ssl
قبل از اینکه بتوانید nginx را در BigBlueButton در محتوای سرور از طریق HTTPS پیکربندی کنید، باید یک گواهی SSL معتبر داشته باشید. دامنه معتبر (گاهی اوقات به نام “کلاس 1”) با استفاده از 4096 bit RSA key و SHA-256 checksum گواهی بندی میشوند که حداقل پیشنهادی فعلی است و باید کارآمد باشد.
تعدادی از ارائه دهندگان وجود دارند که میتوانید از آنها گواهی دریافت کنید. بسیاری از شرکتهای فروش نام دامنه نیز دارای گواهینامه هستند.
برخی از ارائه دهندگان بزرگ گواهینامه های SSL مشهور عبارتند از Comodo ، Symantec ، GoDaddy ، GlobalSign و DigiCert. بعلاوه، گواهینامههای SSL رایگان از StartSSL و CACert در دسترس هستند و برخی از اطلاعات آن نیز وجود دارند: گواهینامه های StartSSL بدون پرداخت هزینه خدمات قابل لغو نیستند و بیشتر افراد root مورد نیاز CACert را در مرورگر وب خود نصب نکرده اند.
هر ارائه دهنده یک سری از مراحل را برای تولید گواهینامه به شما ارائه میدهد، اما آنها به طور معمول شامل تولید یک کلید خصوصی و درخواست گواهی در محل، ارسال درخواست گواهی برای امضاء و ارسال مجدد گواهینامه امضا شده پس از انجام هرگونه تاییدیه لازم هستند.
برای نصب گواهینامه در BigBlueButton، باید پروندههایی برای گواهی، کلید خصوصی و هرگونه گواهی واسطه در قالب PEM داشته باشید.
اگر هنوز مجوز SSL ندارید و سرور شما در اینترنت است، میتوانید از Lets Encrypt برای به دست آوردن مجوز SSL رایگان تجدیدپذیر استفاده کنید (بعد از 90 روز منقضی میشود ، اما به طور خودکار قابل تجدید هستند). اگر برای زمانی است که میخواهید از رمزگذاری Let استفاده کنید، سپس با استفاده از Let’s Encrypt آن را راه اندازی نمایید.
nginx را برای استفاده از https پیکربندی کنید
بسته به اختیار گواهینامه خود (CA)، اکنون باید 2 یا به تعداد بیشتر پرونده به شرح زیر داشته باشید:
- گواهی
- کلید خصوصی
- گواهینامه واسط (ممکن است بیش از یک وجود داشته باشد)
قدم بعدی نصب فایلها روی سرور است.
دایرکتوری / etc / nginx / ssl را ایجاد کنید. مطابق دستور زیر:
$sudo mkdir / etc / nginx / ssl
و اکنون فایل کلید خصوصی را برای استفاده nginx ایجاد کنید (hostname را در filename با نام خودتان جایگزین کنید). علاوه بر این، مجوزها را برطرف کنید تا فقط root بتواند کلید خصوصی را بخواند. مانند آنچه در زیر میبینید:
# cat >/etc/nginx/ssl/bigbluebutton.example.com.key <<'END' Paste the contents of your key file here END chmod 0600 /etc/nginx/ssl/bigbluebutton.example.com.key
و پرونده گواهی. توجه داشته باشید که nginx به گواهی سرور شما و لیست گواهینامههای واسطه در کنار هم و در یک فایل نیاز دارد (hostname را در filename با نام خودتان جایگزین کنید). همانند زیر:
# cat >/etc/nginx/ssl/bigbluebutton.example.com.crt <<'END' Paste (in order) the contents of the following files: 1. The signed certificate from the CA 2. In order, each intermediate certificate provided by the CA (but do not include the root). END
علاوه بر این، ما مجموعه ای از پارامترهای 4096-bit diffie-hellman را برای بهبود امنیت برخی از انواع رمزها تولید خواهیم کرد. این مرحله میتواند چندین دقیقه طول بکشد، به خصوص در صورت اجرای آن در یک ماشین مجازی. مثل دستوری که در ادامه وجود دارد:
sudo mkdir -p / etc / nginx / ssl sudo opensl dhparam -out /etc/nginx/ssl/dhp-4096.pem 4096
اکنون می توانیم پیکربندی nginx را برای استفاده از SSL ویرایش و ادیت کنیم. برای اضافه کردن خطوط مشخص شده، پرونده / etc / nginx / sites-available / bigbluebutton را ویرایش کنید. سپس اطمینان حاصل کنید که از نامهای صحیح برای مطابقت با گواهینامه و پروندههای کلیدیای که ایجاد شدهاند در بالا استفاده میکنید. به دستور زیر به خوبی توجه کنید:
server { server_name bigbluebutton.example.com; listen 80; listen [::]:80; listen 443 ssl; listen [::]:443 ssl; ssl_certificate /etc/nginx/ssl/bigbluebutton.example.com.crt; ssl_certificate_key /etc/nginx/ssl/bigbluebutton.example.com.key; ssl_session_cache shared:SSL:10m; ssl_session_timeout 10m; ssl_protocols TLSv1 TLSv1.1 TLSv1.2; ssl_ciphers "ECDH+AESGCM:DH+AESGCM:ECDH+AES256:DH+AES256:ECDH+AES128:DH+AES:ECDH+3DES:DH+3DES:RSA+AESGCM:RSA+AES:RSA+3DES:!aNULL:!MD5:!DSS:!AES256"; ssl_prefer_server_ciphers on; ssl_dhparam /etc/nginx/ssl/dhp-4096.pem;
برای ارجاع، توجه داشته باشید كه تنظیمات SSL مورد استفاده در بالا براساس موارد پیشنهادی در https://hynek.me/articles/hardening-your-web-servers-ssl-ciphers/ میباشد و پشتیبانی از همه مرورگرهای مدرن (از جمله IE8) را ارائه میدهد. (نه IE6 ، در ویندوز XP). لطفا توجه داشته باشید که تنظیمات SSL توصیه شده با پیدا شدن آسیب پذیریهای جدید، در معرض تغییرات بسیاری قرار میگیرند.
پیکربندی freeswitch برای استفاده از ssl
اگر فایروال را بر روی سرور خود دارید و پورت 5066 را باز کردهاید ، این قانون را تغییر دهید تا به جای آن پورت 7443 را باز کنید.
همچنین، اگر سرور BigBlueButton شما در پشت فایروال قرار دارد، برای جلوگیری از بروز خطای 1002 در مشتری، ممکن است لازم باشد مقدار آن را با یک آدرس IP خارجی EXTERNAL_IP_ADDRESS: 7443 مشخص کنید.
در مرحله بعد، websocket به آدرس ngnix انتقال پیدا میکند.
پرونده /etc/bigbluebutton/nginx/sip.nginx را ویرایش کرده و پروتکل و پورت را بر روی خط proxy_pass تغییر دهید. مانند چیزی که نشان داده شده است:
location /ws { proxy_pass https://203.0.113.1:7443; proxy_http_version 1.1; proxy_set_header Upgrade $http_upgrade; proxy_set_header Connection "Upgrade"; proxy_read_timeout 6h; proxy_send_timeout 6h; client_body_timeout 6h; send_timeout 6h;
BigBlueButton را برای بارگیری session از طریق HTTPS پیکربندی کنید
با nginx که حالا برای استفاده SSL پیکربندی شده است، مرحله بعدی این میباشد که FreeSWITCH را برای استفاده HTTPS پیکربندی کنید. این کار برای این است که یک اتصال صوتی را آغاز نمایید. مانند چیزی که در دستور زیر میبینید:
Edit
/usr/share/bbb-web/WEB-INF/classes/bigbluebutton.properties
and update the property
bigbluebutton.web.serverURL
to use HTTPS:
#---------------------------------------------------- # This URL is where the BBB client is accessible. When a user successfully # enters a name and password, she is redirected here to load the client. bigbluebutton.web.serverURL=https://bigbluebutton.example.com
در مرحله بعدی پرونده /usr/share/red5/webapps/screenshare/WEB-INF/screenshare.properties را ویرایش کرده و ویژگی jnlpUrl و jnlpFile را در HTTPS آپدیت کنید.
streamBaseUrl=rtmp://bigbluebutton.example.com/screenshare jnlpUrl=https://bigbluebutton.example.com/screenshare jnlpFile=https://bigbluebutton.example.com/screenshare/screenshare.jnlp
همچنین فایل
/var/www/bigbluebutton/client/conf/config.xml
باید آپدیت شود تا به مشتری bbb بگوید که اجزای خود را با استفاده از HTTPS بارگیری کند. به روز رسانی میتواند تنها با استفاده از یک فرمان واحد انجام گیرد:
$ sudo sed -e 's|http://|https://|g' -i /var/www/bigbluebutton/client/conf/config.xml
همچنین اگر به برگرداندن این دستورات نیاز دارید، میتوانید اسکریپت ذکرشده را معکوس اجرا کنید:
$ sudo sed -e 's|https://|http://|g' -i /var/www/bigbluebutton/client/conf/config.xml
را برای ویرایش دادن و اعمال تغییرات باز کنید:
kurento: wsUrl: ws://bbb.example.com/bbb-webrtc-sfu
به:
kurento: wsUrl: wss://bbb.example.com/bbb-webrtc-sfu
همچنین برای اعمال تغییرات به صورت زیر عمل کنید:
note: enabled: true url: http://bbb.example.com/pad
به
note: enabled: true url: https://bbb.example.com/pad
در مرحله بعد، ضبطهای ایجادشده را اصلاح کنید تا توسط HTTPS سرو شوند.
/usr/local/bigbluebutton/core/scripts/bigbluebutton.yml را ویرایش کنید و مقدار playback_protocol را همانطور که در ادامه میبینید، تغییر دهید:
playback_protocol: https
اگر API demos را در مرحله 5 نصب کردهاید، /var/lib/tomcat7/webapps/demo/bbb_api_conf.jsp را ویرایش کرده و مقدار BigBlueButtonURL را با استفاده از HTTPS تغییر دهید:
// This is the URL for the BigBlueButton server String BigBlueButtonURL = "https://bigbluebutton.example.com/bigbluebutton/";
در نهایت برای اینکه تمامی تغییرات اعمال شوند، کلیه مولفههای bbb باید دوباره راه اندازی شوند. مانند زیر:
$ sudo bbb-conf --restart
استفاده از Let’s Encrypt
اگر یک نام دامنه به سرور BigBlueButton (یعنی bigbluebutton.example.com) اختصاص داده شده است و سرور در اینترنت است ، می توانید از Encrypt (رمزگذاری) برای به دست آوردن گواهی نامه SSL رایگان استفاده کنید.
ابتدا ابزار پیکربندی Let’s Encrypt را نصب کنید. لطفاً تمام دستورات را در این بخش root اجرا نمایید. مانند زیر:
$ sudo apt-get update $ sudo apt-get install software-properties-common $ sudo add-apt-repository universe $ sudo add-apt-repository ppa:certbot/certbot $ sudo apt-get install certbot
در مرحله بعدی، مجموعهای از پارامترهای Diffie-Hellman 4096 بیتی را ایجاد کنید تا امنیت برخی از انواع رمزها ارتقا پیدا کنند.
sudo mkdir -p /etc/nginx/ssl sudo openssl dhparam -out /etc/nginx/ssl/dhp-4096.pem 4096
قبل از تولید گواهی بر روی سرور خود ، باید BigBlueButton را پیکربندی کنید تا از نام میزبان مورد نظر استفاده شود. اگر قبلاً این کار را نکردهاید، از دستور زیر استفاده کرده (bigbluebutton.example.com را با نام DNS خود جایگزین کنید) و در نهایت سرور BigBlueButton را با نام میزبان خود پیکربندی کنید:
$ sudo bbb-conf --setip bigbluebutton.example.com
در مرحله بعد، با استفاده از ابزار certbot، گواهی SSL را از Let’s Encrypt درخواست کنید. دوباره bigbluebutton.example.com را با نام میزبان خود جایگزین کنید.
$ sudo certbot --webroot -w /var/www/bigbluebutton-default/ -d bigbluebutton.example.com certonly IMPORTANT NOTES: - Congratulations! Your certificate and chain have been saved at /etc/letsencrypt/live/bigbluebutton.example.com/fullchain.pem. Your cert will expire on 20XX-YY-ZZ. To obtain a new version of the certificate in the future, simply run Let's Encrypt again. - If you like Let's Encrypt, please consider supporting our work by: Donating to ISRG / Let's Encrypt: https://letsencrypt.org/donate Donating to EFF: https://eff.org/donate-le
این دستورات باعث ایجاد پروندههای زیر میشوند:
$ ls /etc/letsencrypt/live/bigbluebutton.example.com/ cert.pem chain.pem fullchain.pem privkey.pem
حال باید فایل پیکربندی شده /etc/nginx/sites-available/bigbluebutton را ویرایش کنید و خطوط مشخص شده زیر به را به آن اضافه نمایید. اطمینان حاصل کنید که از نام های صحیح برای مطابقت با گواهینامه و پروندههای کلیدی که در بالا ایجاد کردهاید استفاده میکنید (و دوباره bigbluebutton.example.com را با نام میزبان خود جایگزین کنید).
server { server_name bigbluebutton.example.com; listen 80; listen [::]:80; listen 443 ssl; listen [::]:443 ssl; ssl_certificate /etc/letsencrypt/live/bigbluebutton.example.com/fullchain.pem; ssl_certificate_key /etc/letsencrypt/live/bigbluebutton.example.com/privkey.pem; ssl_session_cache shared:SSL:10m; ssl_session_timeout 10m; ssl_protocols TLSv1 TLSv1.1 TLSv1.2; ssl_ciphers "ECDH+AESGCM:DH+AESGCM:ECDH+AES256:DH+AES256:ECDH+AES128:DH+AES:ECDH+3DES:DH+3DES:RSA+AESGCM:RSA+AES:RSA+3DES:!aNULL:!MD5:!DSS:!AES256"; ssl_prefer_server_ciphers on; ssl_dhparam /etc/nginx/ssl/dhp-4096.pem;
گواهینامههایی که برای Let’s Encrypte هستند، تنها به مدت 90 روز کارکرد ویژه دارند و میتوانند به صورت خودکار تمدید شوند. برای اینکه بتوانید این درخواست خودکار را به صورت هفتهای تمدید کنید، پرونده crontab را در root ویرایش کنید. مانند زیر:
$ sudo crontab -e
و دو خط زیر را نیز در انتها اضافه کنید:
30 2 * * 1 /usr/bin/certbot renew >> /var/log/le-renew.log 35 2 * * 1 /bin/systemctl reload nginx
دو دستورالعمل ذکرشده هر روز دوشنبه، ساعت 2:30 بامداد دستور تمدید certbot را اجرا میکنند و سپس nginx را در ساعت 2:35 بامداد مجددا بارگزاری کنید. ( بنابراین از گواهی تجدیدشده استفاده میشود)
برای تمام کردن پیکربندی SSL، کار زیر را انجام دهید:
- FreeSWITCH را در WebRTC کاربر پیکربندی کنید.
- BigBlueButton را برای بارگیری session از طریق HTTPS پیکربندی نمایید.
- پیکربندی HTTPS خود را تست نهایی کنید.
نصب bbb پیچیدگیهای بسیاری را به خود اختصاص داده است؛ ولی اگر بتوان تمامی آنها را فرا گرفت، میتواند به کاربردهای عمیق آن دست یافت.
جمع بندی
در این مقاله به بررسی نصب بیگ بلو باتن پرداخته شد. برای اینکه بتوانید این فرآیند را با موفقیت پشت سر بگذارید، نیاز است تا تمامی مراحل گفته شده را با دقت و ترتیب زیاد طی کنید و آنها را مرحله به مرحله به انجام برسانید.
سوالات متداول
سوالات رایجی در رابطه با نصب bbb وجود دارند که برای داشتن اطلاعات در رابطه با آنها کافیست موارد زیر را دنبال کنید.
1. چند کوکی در نصب bbb وجود دارند؟
برای اینکه بتوانید فرآیند bbb را به انجام برسانید، میتوانید از دو کوکی استفاده کنید که هر کدام از آنها از ویژگیهای خاصی برخوردار هستند.
2. در صورت موفقیت آمیز بودن نصب کوکیها انجام چه کاری در اولیت قرار دارد؟
در صورت رو به رو شدن با موفقیت باید یک سرور اختصاصی را به دست بیاورید.
3. برای اینکه بدانیدمحل سرور شما en_US.UTF-8 است، چه دستوری باید وارد شود؟
برای اینکار نیاز است تا دستور زیر را وارد کنید:
$ cat /etc/default/locale LANG="en_US.UTF-8"
4. برای bbb چند برنامه مورد نیاز است؟
دو برنامه مورد نیاز BigBlueButton وجود دارد:
ffmpeg (ایجاد ضبط) و yq (به روزرسانی فایل های YAML).