По вашему запросу ничего не найдено :(
Убедитесь, что запрос написан правильно, или посмотрите другие
наши статьи:
Nginx - это веб-сервер на базе Linux и прокси-приложение. Nginx - это мощный инструмент для перенаправления и управления веб-трафиком. Его можно легко настроить для перенаправления незашифрованного веб-трафика HTTP на зашифрованный HTTPS-сервер.
Это руководство покажет вам, как перенаправить HTTP на HTTPS с помощью Nginx.
Что нам потребуется
Сервер Linux под управлением Nginx
Учетная запись пользователя с привилегиями sudo
Удаленный вход на веб-сервер (необязательно, требуется только в том случае, если вы не работаете непосредственно с веб-сервером)
Доступ к терминалу/командной строке (Ctrl-Alt-T или Ctrl-Alt-F2)
Редирект с HTTP на HTTPS
Для принудительного перенаправления HTTP на HTTPS вам необходимо отредактировать файл конфигурации Nginx.
В большинстве случаев вы можете найти этот файл в каталоге /etc/nginx/sites-available. Если не найдено, найдите его здесь: /etc/nginx/nginx.conf, /usr/local/nginx/conf или /usr/local/etc/nginx.
Найдя файл конфигурации Nginx, откройте его в текстовом редакторе с помощью команды:
sudo nano /etc/nginx/sites-available/server.conf
Замените местоположение фактическим местоположением и именем вашего файла конфигурации.
Когда файл конфигурации будет открыт для редактирования, вставьте один из блоков кода ниже. Как только вы закончите редактирование, сохраните файл и выйдите. Затем перезапустите службу Nginx с помощью следующей команды:
sudo service nginx restart
Перенаправить весь HTTP-трафик на HTTPS
Откройте файл конфигурации Nginx для редактирования, затем вставьте следующий код:
server {
listen 80 default_server;
server_name _;
return 301 https://$host$request_uri;
}
Вот разбивка команд:
Listen 80: Это дает команду системе перехватывать весь HTTP-трафик через порт 80
Server_name _ ;: Это будет соответствовать любому имени хоста
Return 301: Это говорит браузеру и поисковым системам, что это постоянное перенаправление
https://$host$request_uri: Это короткий код для указания версии HTTPS того, что набрал пользователь
После редактирования весь трафик сервера HTTP по умолчанию перенаправляется на HTTPS.
Примечание: Это должен быть единственный блок сервера, прослушивающий порт 80. Блок сервера - это единица кода конфигурации в Nginx. Он помечен именем и фигурными скобками.
Перенаправить определенный сайт
У вас может быть несколько серверов, но только некоторые из них могут требовать HTTPS. Укажите имя сервера в блоке сервера для перенаправления выбранного трафика:
server {
listen 80 default_server;
server_name my_app.com;
return 301 https://my_app.com$request_uri;
}
Замените имя my_app.com на имя сервера, который вы собираетесь перенаправить. Вы также можете добавить дополнительные сайты, добавив еще один блок сервера. Просто скопируйте код и измените имя сервера.
Принимать только SSL-соединения
Добавьте этот код, чтобы убедиться, что сервер будет принимать только SSL-соединения через порт 443:
server {
listen 443 ssl default_server;
server_name my_app.com;
}
server {
listen 443 ssl;
server_name my_website.com;
}
Этот блок кода настроит два веб-сайта, my_app.com и my_website.com, на прием только SSL-соединений. Вы можете добавить дополнительные сайты, используя дополнительные блоки серверов.
Редирект страниц
Вы можете использовать rewrite для быстрого управления 301 (постоянным) или 302 (временным) перенаправлением:
Location /index.html {
rewrite ^/oldURL$ https://www.your_domain.com/newURL redirect;
}
В большинстве случаев это будет index.html, но вы можете указать любой путь или шаблон.
Обратите внимание, что команда rewrite должна использоваться только с перенаправлениями 301 или 302.
Как перенаправить домен с помощью Nginx
Это полезно, если вы сменили домен (например с .org на .com). Nginx также можно использовать для перенаправления со старого доменного имени на новое доменное имя.
server {
listen 80;
listen 443 ssl;
server_name www.old_company.com;
return 301 $scheme://www.new_company.com$request_uri;
}
В большинстве случаев команда return предпочтительнее команды rewrite.
Редирект с сайта www на сайт без www
Этот процесс аналогичен стандартному перенаправлению страницы:
server {
server_name www.new_company.com;
return 301 $scheme://new_company.com$request_uri;
}
Причины для перенаправления трафика
Есть несколько причин для перенаправления HTTP-трафика на HTTPS:
Принудительное установление более безопасного зашифрованного соединения.
Сохранение страницы с хорошим SEO-рейтингом, но перенаправление своего трафика на новую страницу.
Уведомлять и временно отправлять трафик на страницу «на обслуживании».
Постоянно отправлять трафик с одного сайта на другой, например после корпоративного слияния.
Заключение
Теперь вы знаете, как перенаправить HTTP на HTTPS в Nginx. Редактируя файл конфигурации, вы можете отправлять трафик из определенного места назначения на другой сайт и принудительно использовать сертификаты SSL. Это поможет вам безопасно управлять изменениями на вашем сайте, не нарушая пользовательский опыт.
Спешим поделиться тем, как с помощью IP-АТС Asterisk можно провести двусторонний видео - звонок. В качестве терминалов, которые будут участвовать в данном соединении, мы выбрали программный open - sourсe клиент IP-телефонии на базе протокола SIP - Linphone (Linux Phone) версии 3.10.2 для Windows и приложение Linphone для Android версии 3.1.1. Настройки произведем с помощью графического интерфейса FreePBX 13.
Конфигурация FreePBX
Приступим к настройке. Для начала необходимо создать на сервере два внутренних номера (Extension).
Важно: обязательно создавайте номера с типом CHAN_SIP.
Теперь новым внутренним номерам нужно включить поддержку видео. Для этого переходим во вкладку Advanced:
И напротив строки Video Support выбираем Yes. Такую процедуру проделываем для всех номеров, которым хотим разрешить пользоваться видео - вызовами.
Теперь необходимо включить глобальную поддержку видео. Для этого переходим по следующему пути: Settings -> Asterisk SIP Settings и открываем вкладку Chan SIP Settings:
По умолчанию, в разделе Video Codecs поддержка видео отключена. Для того, чтобы её выключить, нажимаем Enabled:
Откроется список поддерживаемых видео кодеков. По умолчанию, Asterisk поддерживает следующие кодеки: H.261, mpeg4, H.263, H.263+, H.264 и последний кодек, который мы будем использовать далее - VP8.
Чтобы исключить возможные проблемы с подключением SIP-терминалов в дальнейшем, можно изменить ещё один параметр. Дело в том, что практически все SIP-терминалы используют 5060 порт для отправки запросов регистрации, а в FreePBX 13 для технологии CHAN_SIP используется порт 5160, соответственно, на этапе регистрации Endpoint’а могут возникнуть проблемы. Что бы этого избежать, в строке Bind Port поставим 5060. Не забудьте предварительно поменять порт для CHAN_PJSIP, может возникнуть внутренний конфликт.
На этом настройка FreePBX завершена, теперь необходимо настраивать терминалы.
Настройка видео - терминалов
Как было сказано в начале, для теста будем использовать Linphone (Linux Phone) версии 3.10.2.
После установки дистрибутива, нас встречает помощник настройки учётной записи SIP:
Вводим данные для ранее созданного внутреннего номера, например - 1022, и жмём Применить.
Если всё было сделано верно, то мы увидим наш полный идентификатор и зелёный круг, свидетельствующий о том, что регистрация была успешной.
Далее переходим в настройки, выбираем требуемые параметры видео (разрешение и частоту кадров)
В разделе кодеки, следует обязательно убедиться в том, что кодек VP8 – разрешен к использованию.
На этом настройка десктопного клиента для Windows закончена.
Теперь сконфигурируем Linphone Android клиент. После установки приложения, нужно выбрать USE SIP ACCOUNT
Ввести данные учетной записи в соответствии с данными, которые мы вводили на сервере. В качестве транспорт укажите UDP.
В разделе Settings устанавливаем требуемые параметры по видео (разрешение, частоту кадров, максимальную пропускную способность) и обязательно разрешаем использование кодека VP8.
Если всё было сделано правильно, то мы увидим статус Registered. Софтфон готов к использованию.
Теперь можно проводить вызовы с трансляцией видео. Набираем номер нужного абонента и жмём на значок трубки.
Нажав на значок Видео начнётся двусторонняя видеотрансляция.
Ниже пример как это выглядит на десктопной версии:
И пример того, как это выглядит в мобильном приложении:
Привет! В статье расскажем о бесплатном способе передачи информации о звонящем в момент звонка из Битрикс24. Проверять мы будем лид и контакт. В качестве системы, куда мы будет отправлять данные будет уютный Telegram :) Погнали.
Создаем Вебхук в Битрикс24
Переходим в Битрикс24 и открываем раскрывающееся меню в верхнем левом углу. Далее, выбираем «Вебхуки»:
Добавляем Входящий вебхук, нажав на зеленую кнопку в правом верхнем углу Добавить вебхук. Делаем следующие настройки:
Название - дайте имя. Например «Внешний доступ к REST API»;
Описание - «cоответствие номера клиента и его имени»;
Права доступа - необходимо выбрать «CRM (crm)»;
Нажимаем «Сохранить». Для нас будет сгенерирован Вебхук. Переходим к настройке скрипта.
Telegram - бот
Перед продолжение настройки, вам необходимо создать Telegram – бота. О том, как это сделать читайте по кнопке:
Создание бота
Скрипт интеграции
Из предыдущего шага, у вас должен быть идентификатор чата в Telegram, токен бота, вебхук и доменное имя вашего Битрикс24. Все, остальное дело скрипта:
#!/usr/bin/php -q
<?php
#подключаем AGI - библиотеку;
require('phpagi.php');
$agi = new AGI();
$cid = $agi->request['agi_callerid'];
#от провайдера, номер на нашу АТС прилетает в формате 79ХХХХХХХХХ. В CRM номера записаны как 89ХХХХХХХХХ. Поэтому, мы стрипаем цифру спереди и подставлем 8ку;
$phone = substr($cid, 1);
$phone = "8$phone";
$phoneFieldset = "Коллеги, входящий звонок. Звонящий: ";
#укажите служебные параметры: токен бота, идентификатор чата, хостовое имя CRM (то, что между https:// и до .bitrix24.ru) и вебхук, который мы получили ранее;
$token = "333333333:MMMMMEEEEE_RRRIIIIOOOO_NNNNEEEETTTT";
$chat_id = "-1001001001001";
$crm_id = "имя_вашего_Битрикс24";
$webhook = "wblhahgytuwrnwer";
#проверяем существование лида по номеру;
$bitrix_lead_url = "https://$crm_id.bitrix24.ru/rest/2/$webhook/crm.lead.list.json?filter[PHONE]=$phone&select[]=TITLE&select[]=NAME&select[]=LAST_NAME";
$btl = curl_init();
curl_setopt ($btl, CURLOPT_URL,$bitrix_lead_url);
curl_setopt ($btl, CURLOPT_USERAGENT, "Mozilla/5.0 (Windows; U; Windows NT 5.1; en-US; rv:1.8.1.6) Gecko/20070725 Firefox/2.0.0.6");
curl_setopt ($btl, CURLOPT_TIMEOUT, 60);
curl_setopt ($btl, CURLOPT_FOLLOWLOCATION, 1);
curl_setopt ($btl, CURLOPT_RETURNTRANSFER, 1);
$bitrix_lead = curl_exec ($btl);
curl_close($btl);
$bitrix_lead_o = json_decode($bitrix_lead, true);
$l_total = $bitrix_lead_o['total'];
#проверяем существование контакта по номеру;
$bitrix_contact_url = "https://$crm_id.bitrix24.ru/rest/2/$webhook/crm.contact.list.json?filter[PHONE]=$phone&select[]=TITLE&select[]=NAME&select[]=LAST_NAME";
$btc = curl_init();
curl_setopt ($btc, CURLOPT_URL,$bitrix_contact_url);
curl_setopt ($btc, CURLOPT_USERAGENT, "Mozilla/5.0 (Windows; U; Windows NT 5.1; en-US; rv:1.8.1.6) Gecko/20070725 Firefox/2.0.0.6");
curl_setopt ($btc, CURLOPT_TIMEOUT, 60);
curl_setopt ($btc, CURLOPT_FOLLOWLOCATION, 1);
curl_setopt ($btc, CURLOPT_RETURNTRANSFER, 1);
$bitrix_contact = curl_exec ($btc);
curl_close($btc);
$bitrix_contact_o = json_decode($bitrix_contact, true);
$c_total = $bitrix_contact_o ['total'];
#если найден лид, то: формируем массив и кидаем в сторону Telegram: имя, фамилия и идентификатор лида;
if ($l_total >= 1) {
$l_name = $bitrix_lead_o['result'][0]['NAME'];
$l_title = $bitrix_lead_o['result'][0]['TITLE'];
$l_l_name = $bitrix_lead_o['result'][0]['LAST_NAME'];
$l_id = $bitrix_lead_o['result'][0]['ID'];
$l_titleFieldset = "Входящий звонок от лида - ";
$l_FnameFieldset = "Его имя - ";
$l_linkFieldset = "Ссылка на лид - ";
$l_fullname = "$l_name $l_l_name";
$l_link = "https://$crm_id.bitrix24.ru/crm/lead/show/$l_id/";
$arr = array(
$l_titleFieldset => $l_title,
$l_FnameFieldset => $l_fullname,
$l_linkFieldset => $l_link,
);
foreach($arr as $key => $value) {
$txt .= "".$key." ".$value."%0A";
};
fopen("https://api.telegram.org/bot{$token}/sendMessage?chat_id={$chat_id}&parse_mode=html&text={$txt}","r");
}
#если найден контакт, то: формируем массив и кидаем в сторону Telegram: имя, фамилия и идентификатор контакта;
elseif ($c_total >= 1) {
$c_name = $bitrix_contact_o ['result'][0]['NAME'];
$c_c_name = $bitrix_contact_o ['result'][0]['LAST_NAME'];
$c_id = $bitrix_contact_o ['result'][0]['ID'];
$c_FnameFieldset = "Входящий звонок от контакта - ";
$c_linkFieldset = "Ссылка на контакт - ";
$c_fullname = "$c_name $c_c_name";
$c_link = "https://$crm_id.bitrix24.ru/crm/contact/show/$c_id/";
$arr = array(
$c_FnameFieldset => $c_fullname,
$c_linkFieldset => $c_link,
);
foreach($arr as $key => $value) {
$txt .= "".$key." ".$value."%0A";
};
fopen("https://api.telegram.org/bot{$token}/sendMessage?chat_id={$chat_id}&parse_mode=html&text={$txt}","r");
}
else {};
Скачать скрипт
По факту, от вас требуется изменить следующие переменные:
$token - токен вашего бота. Как его получить указано в стате по ссылке «Создание телеграм бота» выше;
$chat_id - идентификатор чата, в котором находится бот. Генерация так же указана в статье;
$crm_id - хостовая часть вашего Битрикс24. Если у вас URL CRM company.bitrix24.ru, то указать нужно company;
$webhook - вебхук. Мы показывали ранее, как его получить в Битрикс24 (у нас wblhahgytuwrnwer);
Сохраняем скрипт как b24.php закидываем его в директорию /var/lib/asterisk/agi-bin.
Адаптируем скрипт в unix – среде:
dos2unix /var/lib/asterisk/agi-bin/b24.php
chown asterisk:asterisk /var/lib/asterisk/agi-bin/b24.php
chmod 775 /var/lib/asterisk/agi-bin/b24.php
В диалплане (вставьте исполнение скрипта в транке, например):
exten => _.,n,AGI(b24.php)
Добавив в скрипт конструкцию вида $agi->set_variable("lookupcid", "$c_fullname"); для контакта или $agi->set_variable("lookupcid", "$l_fullname"); для лида, в диалплане мы сможем сделать следующее: Set(CALLERID(name)=${lookupcid}) мы получим имя звонящего в виде CallerID Name – например, на дисплее телефона.
Можете создать тестового лида (или контакт) со своим номером телефона или дождаться звонка клиента. Наслаждаемся :)