Задать вопрос
  • Почему не работает расширение lvm раздела при наличии свободного места у VG?

    @sevnet Автор вопроса
    Системный аналитик, бизнес-консультант
    Вот такой вариант проканал
    lvextend -L +51199 backups/sdc1
    , только непонятно в каких единицах эти Юниты считаются, пришлось подбирать их по частям
    Ответ написан
  • Как настроить HTTPS прокси сервер на одном IP, что backend сервера видели IP клиента?

    @sevnet Автор вопроса
    Системный аналитик, бизнес-консультант
    Взлетело, и полёт нормальный.
    Ivan Ustûžanin - подсказал ссылки, там почти всё что нужно, но кое-то было не очевидно, сейчас про это напишу.

    В общем вся конструкция строится на технологии Proxy Protocol специально для этого кейса разработанной.

    Для настройки потребуется настроить 3 вещи:
    1. NGINX сервер frontend (первично принимающий весь трафик от роутера, либо напрямую из интернет).
    2. NGINX или Apache (или другие) сервер backend.
    3. ОБЯЗАТЕЛЬНО! Прописать в файле /etc/hosts на backend серверах сопоставление доменов с frontend сервером (именно frontend!). Если при этом требуется, чтобы сервер мог обращаться ещё и сам к себе по некоторому доменному имени (это надо например push-server в Битрикс), то надо прописать любое выдуманное имя хоста в /etc/hostname, и отдельной записью прописать его на локальный IP в /etc/hosts

    1. Конфиг на стороне NGINX Reverse Proxy (он же frontent):
    NGINX должен быть собран с модулями:
    --with-stream_ssl_module
    --with-stream_ssl_preread_module
    --with-stream_realip_module


    user www-data;
    worker_processes auto;
    worker_rlimit_nofile 10240;
    pid /run/nginx.pid;
    include /etc/nginx/modules-enabled/*.conf;
    
    events {
        use epoll;
    	worker_connections 30720;
    	multi_accept on;
    }
    stream {
        proxy_protocol on; #обязательно включаем, без него IP адреса из приходящего SSL трафика не передать дальше
        map $ssl_preread_server_name $name {
            siteone.ru                  so;
            sitetwo.ru            		st;
            sitetree.ru           		str;
        }
    	#bitrix1
        upstream so80 {
                server 192.168.0.100:80;
                }
        upstream so443 {
                server 192.168.0.100:443;
                }
        upstream so8893 {
                server 192.168.0.100:8893;
                }
        upstream so8894 {
                server 192.168.0.100:8894;
                }
    	#bitrix2
        upstream st80 {
                server 192.168.88.114:80;
                }
        upstream st443 {
                server 192.168.88.114:443;
                }
        upstream st8893 {
                server 192.168.88.114:8893;
                }
        upstream st8894 {
                server 192.168.88.114:8894;
                }
    	#web site
        upstream str80 {
                server 192.168.88.102:80;
                }
        upstream str443 {
                server 192.168.88.102:443;
                }
    			
    	#web traffic		
    	server {
                listen 80;
                proxy_pass ${name}80;
              }
        server {
                listen 443;
                proxy_pass ${name}443;
                ssl_preread on;
             }
    		 
    	#push&pull bitrix
        server {
                listen 8893;
                proxy_pass ${name}8893;
               }
        server {
                listen 8894;
                proxy_pass ${name}8894;
                ssl_preread on;
                }
    }


    2. Конфиг на стороне принимающего сервера (backend).
    1. Для каждого слушаемого порта в директиву listen дописываем proxy_protocol, иначе вообще не заработает.
    Должно получиться что-то типо
    server {
        listen 443 default_server ssl proxy_protocol;
        ...
        proxy_set_header X-Real-IP       $proxy_protocol_addr;
        proxy_set_header X-Forwarded-For $proxy_protocol_addr;
        ...
    }

    2. Для отлова IP адреса клиента прописываем в директиве http
    http {
        set_real_ip_from #IP вашего frontend#;
        real_ip_header proxy_protocol;
    }

    3. Сделать записи в/etc/hosts как описано выше.
    Ответ написан
    Комментировать
  • Почему при наличии системной переменной Debian 12.8 в "/usr/sbin/nginx" - при вводе команды "# nginx -v" ошибка "команда не найдена"?

    @sevnet Автор вопроса
    Системный аналитик, бизнес-консультант
    Входил через su а надо было через sudo -i
    Ответ написан
    Комментировать
  • Как настроить nginx сервер-посредник (прокси сервер) для проксирования https (ssl)?

    @sevnet Автор вопроса
    Системный аналитик, бизнес-консультант
    Необходимо в файле nginx.conf, ну или через связанные конфигурации, заменить нотацию
    http { ... }
    на
    stream {
        map $ssl_preread_server_name $name {
            site1.ru  site1;
            site2.ru  site2;
        }
        upstream site1p80 {
                server 192.168.88.231:80;
                }
        upstream site1p443 {
                server 192.168.88.231:443;
                }
        upstream site1p8893 {
                server 192.168.88.231:8893;
                }
        upstream site1p8894 {
                server 192.168.88.231:8894;
                }
    
        upstream site2p80 {
                server 192.168.88.180:80;
                }
        upstream site2p443 {
                server 192.168.88.180:443;
                }
        upstream site2p8893 {
                server 192.168.88.180:8893;
                }
        upstream site2p8894 {
                server 192.168.88.180:8894;
                }
        server {
                 listen 443;
                 proxy_pass ${name}p443;
                 ssl_preread on;
             }
        server {
                 listen 80;
                 proxy_pass ${name}p80;
              }
        server {
                   listen 8893;
                   proxy_pass ${name}p8893;
               }
        server {
                   listen 8894;
                   proxy_pass ${name}p8894;
                }
    }
    Ответ написан
    Комментировать
  • Как получить название пользовательского поля Битрикс по его коду?

    @sevnet Автор вопроса
    Системный аналитик, бизнес-консультант
    $FieldCode = 'UF_CRM_1728545307';
    $UF_instance = \Bitrix\Crm\UserField\UserFieldManager::getUserFieldEntity(CCrmOwnerType::Company); //entityTypeID
    $UF_arr = $UF_instance->GetFieldById($FieldCode);
    $UF_title = $UF_arr['EDIT_FORM_LABEL'];

    Очень дорогой для БД запрос, но другого я не придумал.
    Ответ написан
    Комментировать
  • Как установить последнюю версию Web UI на ESXi 6.7 хост?

    @sevnet Автор вопроса
    Системный аналитик, бизнес-консультант
    esxcli software vib update -n esx-ui -d https://hostupdate.vmware.com/software/VUM/PRODUCTION/main/vmw-depot-index.xml
    Ответ написан
    Комментировать
  • Как получить пользовательское название поля типа crm_status?

    @sevnet Автор вопроса
    Системный аналитик, бизнес-консультант
    use Bitrix\Crm\Service;
    $instanceOfCRM = Service\Container::getInstance();
    $factoryDeal = $instanceOfCRM->getFactory(2);
    $factoryCompany = $instanceOfCRM->getFactory(4);
    $Deal = $factoryDeal->getItem($DEAL_ID);
    $COMPANY_ID = $Deal->get('COMPANY_ID');
    $Company = $factoryCompany->getItem($COMPANY_ID);
    $Status = new CCrmStatus('INDUSTRY');
    $CompanyINDUSTRY = ($Status->GetStatusByStatusId($Company->get('INDUSTRY')))['NAME'];
    $CompanyINDUSTRY = ($CompanyINDUSTRY) ?: 'Сфера деятельности не указана';
    Ответ написан
    Комментировать
  • Как настроить проброс ARP пакетов (ARP-proxy) через OpenVPN туннель Mikrotik-Mikrotik?

    @sevnet Автор вопроса
    Системный аналитик, бизнес-консультант
    В общем задачу решил сам, спасибо кто помогал, вы частично навели на верные мысли.
    Сразу отвечу на вопрос, зачем оно мне надо.
    Телевизор с вэбкамерой стоит в другом городе у моей бабушки. Цель - звонить ей на телевизор по видео связи.
    Она, как человек престарелый, конечно не в состоянии зайти в меню андройд ТВ и куда-то там переходить.
    Поэтому мне нужен полный контроль за ТВ удалённо.

    Для решения задачи мне потребовалось:
    1. Телевизор с Андройд ТВ (12я версия).
    2. Вебкамера Logitech C270 включенная в USB телика.
    3. Роутер Миркротик hEX (можно любой другой промышленного класса, Cisco например).
    4. Точка доступа, т.к. тянуть кабель по квартире к телику не было возможности, сильно заставлена мебелью, а роутер Микротик у меня без Wi-Fi был. Я использовал самую дешевую TP-LINK TL-WA801N.

    Настройка.
    1. Настроить VPN туннель между Микротиками в режиме Клиент-Сервер, в моём случае OpenVPN, но можно и другой. Статей в интернет как это сделать полно. Обязательно добавьте интерфейсы соединений PPP в ручную, чтобы они были постоянными, т.к. вам придётся на них ссылаться в других местах.
    4lsBzHn.png
    2. Настроить маршруты между сетями Микротиков (но это не обязательно, мне нужно было для пингования и тестирования прочих настроек, а так же для доступа по Web на точку доступа).
    На роутере VPN сервере:
    4lsAaKy.png
    На клиенте:
    4lsAeoZ.png
    3. Настроить ethernet туннель EoIP поверх соединения L3 VPN. Добавляется на обоих микротиках, в поле Remote Address указывается адрес сервера и клиента VPN. Не внешние, а внутренние, которые раздаются VPN сервером.
    4lsyTU6.png
    4. Добавить в Bridge порт интерфейсы нашего L2 туннеля (так же на обоих Микротиках):
    4lsAlfi.png
    5. Чтобы Микротики не начали перекрёстно раздавать друг другу IP адреса через DHCP (т.к. оба DHCP серверы), надо зайти в меню Bridge любого Микротика и во вкладке Filters добавить 2 правила DROP для UDP 67-68 портов, одно где указать интерфейс EoIP как входящий, во втором как исходящий (в одном правиле не проканает) иначе обе сетки Микротиков заглючат, точнее зафлудятся.
    4lsAV94.png
    4lsAWp4.png

    Софт.
    1. Для видеозвонков на телике удалось найти только приложение Google Meets, оно собственно полностью устраивает.
    2. Для удалённого управления теликом RealVNC-NG Server (по настойке надо выдать все права и включить приложение как службу на ТВ, немного потыкаетесь в приложении на телике, поймёте как) на телик и любой VNC клиент на ПК или телефон. Точнее данное приложение пригодилось только просмотра его экрана, т.к. управление курсором не работает, на 4pda проблема известна, однако решения нет((
    3. Для управления телевизором через Andriod телефон приложение Remote ATV (но можно и другие, работают они одинаково). Данное приложение широковещательным запросом по ARP находит телики в одной с телефоном L2 сети, т.е. в них даже написано, что телефон должен быть в той же сети, что и ТВ. Собственно ради реализации этого пункта я и оказался с вопросом на хабре.
    Вот так оно коннектится и ищет телики, тупо по MAC'у. МАС находится сам, ручками его не ввести не изменить невозможно. Ещё что интересно, телик пингуется по MAC
    Reply that 90:98:77:65:9F:33 is 192.168.37.227 in 133.770ms

    А приложение его находит по MAC'у со значением на 1 больше:
    90:98:77:65:9F:34
    4lsyKd9.jpg

    Осуществление звонков.
    1. Подключаюсь с телефона или с ПК к телевизору через RealVNC-Viewer (с ПК удобнее, т.к. не надо переключаться между окнами на телефоне). В режиме просмотра кабельного/антенного ТВ приложение будет показывать чёрный экран.
    2. Начинаю звонить с телефона через приложение Google Meets по email учётки аутентифицированной в Google Mets на ТВ.
    3. Сворачиваю звонок, открываю на телефоне Remote ATV, смотря на экран телика в приложении VNC-Viewer кликаю кнопку Home на пульте, захожу в приложение Google Meets, вижу входящий звонок, снимаю трубку и готово!

    П.С.:
    1. Есть неизвестная для меня проблема, при включенном в бридж L2 туннеле с открытием некоторых сайтов, как например ozon.ru, dns-shop.ru, vk.ru, wildberries.ru - они тупо не открываются, как и многие другие, при этом другая половина сайтов, google, yandex и прочие работают без проблем. Я, догадываясь что идёт какая-то закольцовка трафика из-за тоннеля, пытался через Torch промониторить, в момент обновления страницы неработающих сайтов в браузере, какой трафик идёт через туннель, проверял все протоколы, интерфейсы OpenVPN и EoIP, ничего не отлавливается(( В общем для меня это пока загадка. Так что включаю туннель на время звонка, потом выключаю.
    2. Пробовал использовать как мне советовали режим проброса L2 ARP трафика через сами OpenVPN интерфейсы, переводил их в режим Ethernet, добавлял их интерфейсы как порты в bridge на обоих Микротиках, при этом arp-ping с ПК шел, а приложение Remote ATV не видело телик по его маку(( Судя по всему у телика 2 МАС'а один из которых принимает IP адрес, а другой чисто для подключения всяких подобных приложений. Скорее всего это как-то связано с тем, что у телика разные MAC'и на котором IP и к которому коннектится Remote ATV.
    В общем тут без глубоких специалистов по каждому из поднятых аспектов не разобраться((
    Ответ написан
  • Как из объекта Bitrix\Crm\ItemIdentifier вытащить нужные данные?

    @sevnet Автор вопроса
    Системный аналитик, бизнес-консультант
    Вот такую вот дичь навоял:
    foreach ($parents as $parent) {
        $objArr = (array)$parent;
        foreach ($objArr as $key => $value) {
            $ID[explode("\0",$key)[2]] = $value;
        }
        file_put_contents($_SERVER['DOCUMENT_ROOT'] . '/cust_app/php_applets_for_bp/logRelRes.txt', print_r($ID, 1));
    }

    Вот такой выхлоп:
    Array
    (
        [entityTypeId] => 4
        [entityId] => 115695
        [categoryId] => 
    )
    Не знаю как красивее сделать, нужна помощь экспертов.
    Ответ написан
  • Каким событием ядра D7 PHP Битрикс24 можно отловить входящее письмо?

    @sevnet Автор вопроса
    Системный аналитик, бизнес-консультант
    Плохо искал((
    событие на получение почты onMailMessageNew
    
    <?php
    
    use Bitrix\Main\Diag\Debug;
    use Bitrix\Mail\Helper\Message;
    use \Bitrix\Main\Entity\Event;
    
    CModule::IncludeModule('mail');
    $eventManager = \Bitrix\Main\EventManager::getInstance();
    
    $eventManager->addEventHandler('mail', 'onMailMessageNew', 'onMailMessageNew');
    function onMailMessageNew($event)
    {
       $message = $event->getParameter('message');
       Debug::dumpToFile( $message);
    }
    Ответ написан
    Комментировать
  • Как передать в форму создании элемента списка с значения полей?

    @sevnet Автор вопроса
    Системный аналитик, бизнес-консультант
    Нашел решение сам (подсмотрел как в объекте CRM он сам же подвязывается к спискам, при создании элемента связанного списка из него):
    https://{портал Б24}/services/lists/{ID списка}/element/0/0/?external_context=creatingElementFromCrm&fieldId=PROPERTY_562&defaultValue=D_4062
    Ответ написан
    Комментировать
  • Как правильно скопировать шаблон компонента Битрикс24?

    @sevnet Автор вопроса
    Системный аналитик, бизнес-консультант
    Разобрался сам при помощи debug_backtrace(), его вставил с выводом результата в файл в оригинальный файл
    ./bitrix/components/bitrix/report.view/stexport.ajax.php
    и оказалось, что вызывался он из файла другого компонента:
    Array
    (
        [0] => Array
            (
                [file] => /home/bitrix/www/bitrix/components/bitrix/crm.report.view/stexport.ajax.php
                [line] => 5
                [function] => include_once
            )
    
    )

    перекопировал весь компонент crm.report.view в папку ./local/components/bitrix/report.view, сделал подмену ./bitrix/ на ./local/ во всех файлах компонента crm.report.view (искал grep -rn "/bitrix/com" .) и вуаля, всё взлетело!
    Ответ написан
  • Как записать адрес Контакта Битрикс 24?

    @sevnet Автор вопроса
    Системный аналитик, бизнес-консультант
    Кароче, методом тыка разобрался, всё таки даже если надо добавить только адрес, всё равно надо передавать в массиве поле "NAME", как минимум, правда, если передать только его, потом в реквизиты не зайти, ругается, что не определён шаблон реквизитов, так что его тоже надо передавать, в итоге вот так заработало:

    CModule::IncludeModule("crm");
    $arRQAddr['6'] = [ //1 - Физический адрес, 6 -Юридический адрес
            'ADDRESS_1' => 'ул. Семашко, д.1',
            'ADDRESS_2' => '',
            'POSTAL_CODE' => '355029',
            'PROVINCE' => 'Ставропольский край',
            'CITY' => 'город Ставрополь',
            'COUNTRY' => "Россия"
        ];
        $fields =
            [
                'PRESET_ID' => 1,
                'NAME' => 'Организация',
                'ACTIVE' => 'Y',
                'ENTITY_TYPE_ID' => '3',
                'ENTITY_ID' => '144333',
                'ADDRESS_ONLY' => "Y",
                'RQ_ADDR' => $arRQAddr,
            ];
    
        $requisite = new \Bitrix\Crm\EntityRequisite();
        $res = $requisite->add($fields);
    Ответ написан
  • Как сделать изменение поля из одной таблицы в другую с сопоставлением по другому полю?

    @sevnet Автор вопроса
    Системный аналитик, бизнес-консультант
    UPDATE b_uts_crm_company SET `UF_CRM_1696186645` = (SELECT REVENUE FROM b_crm_company WHERE b_crm_company.ID = b_uts_crm_company.VALUE_ID AND b_crm_company.REVENUE IS NOT NULL);
    Ответ написан
    Комментировать
  • CentOS 7 загружается только в rescue режиме после изменения диска ВМ с IDE на SCSI, как загрузить в обычном режиме?

    @sevnet Автор вопроса
    Системный аналитик, бизнес-консультант
    В общем разобрался сам. Но не как исправить сложившуюся ситуацию, а как её не допустить.
    Проблема оказалась в том, что я перед клонированием диска IDE обновил ВМ Битрикс 24 (выбрав Update все пакеты "all").
    Как решил.
    Я просто залил на ESXi ещё одну копию ВМ Б24, затем склонировал диск. Я клонировал самым коротким путём, в ESXi SSH набрал
    vmkfstools -i disk.vmdk -d zeroedthick disk1.vmdk
    Но можно клонировать и в clonezilla или rDriveImage, как предложил Drno (спасибо, кстати, за такой прекрасный инструмент как clonzilla, раньше его не знал).
    И потом подцепил новый диск в SCSI 0:0, вместо старого IDE.
    И всё взлетело.

    П.с.: почему на обновлённой ВМ это не работало и почему она работала без проблем только в rescue моде, для меня вопрос. Скорее всего где-то в конфигах initramfs (кроме rescue) не было нужного драйвера для контроллера SCSI (virtIO drivers). Но разбираться с этим было бы дольше для меня.
    Ответ написан
  • Как настроить push&pull WebSocket RTC на ВМ Битрикс 24 с обратным проксированием nginx?

    @sevnet Автор вопроса
    Системный аналитик, бизнес-консультант
    Всё таки сам разобрался, с двадцать второй попытки всё взлетело.
    4hRoelc.png
    4hRodMd.png
    Сначала про нюансы и проблемы, с которыми столкнулся конкретно я.
    1. На Б24 ВМ в моём случае порты 8010:8015,9010,9011 прослушивались не на localhost (127.0.0.1), а на IP локальной сети (сетевого интерфейса). Поэтому в моём случае необходимо было добавить в цепочку INPUT iptables правила (на Б24 ВМ):
    iptables -I INPUT -p tcp --match multiport --dport 8010:8015 -j ACCEPT
    iptables -I INPUT -p tcp --match multiport --dport 9010:9011 -j ACCEPT

    Для того чтобы проверить, какие порты и на каких интерфейсах прослушиваем ВМ Б24 вводим:
    netstat -ntulp
    2. Вот в этой инструкции от Б24 всё прекрасно, кроме одного, но очень существенного момента. В ней указывается, что необходимо скачать на реверс-прокси вот этот файл bx/settings/rtc-im_settings.conf и включить его в секцию http nginx.conf. Если сделать так как сказано, у нас в данном файле окажется следующая настройка:
    upstream nodejs_sub {
      ip_hash;
      keepalive 1024;
      server push:8010;
      server push:8011;
      server push:8012;
      server push:8013;
      server push:8014;
      server push:8015;
    }
    upstream nodejs_pub {
      ip_hash;
      keepalive 1024;
      server push:9010;
      server push:9011;
    }

    и даже если вы подмените переменную push на реальный IP ВМ Б24, у вас реверс-прокси в директиве
    location ~* ^/bitrix/subws/ {
        access_log off;
        proxy_pass http://nodejs_sub;
        ...

    будет передавать весть трафик не на 443й порт ВМ Б24, который слушает nginx ВМ Б24, а напрямую на порты push-server'а ВМ Б24, а тот в свою очередь ожидает этот трафик от nginx ВМ Б24, поэтому так работать не будет. Сам по себе push-server это модуль разработки Б24, никаких исчерпывающий инструкций по его работе в интернет просто не существует, поэтому пытаться его настроить на получение трафика от реверс-прокси гиблая идея на корню.
    Следовательно действовать согласно инструкции от Б24 можно и нужно, но в указанной выше части, нужно пропустить обе директивы upstream nodejs_sub в файле bx/settings/rtc-im_settings.conf, оставить надо только обе директивы map.
    3. В этом посте на форуме Б24 в предложенном конфиге для реверс-прокси nginx есть параметр
    proxy_set_header Authorization "" ;
    есть его применить, у вас навсегда разлогинится мобильное приложение, и даже при указании верного пароля вы не сможете залогиниться в него обратно.
    4. Ни где (ни в инструкция ни на форуме Б24) не указано, что необходимо привести в соответствие в директиве http nginx.conf реверс прокси ряд параметров, которые содержатся в аналогичной директиве ВМ Б24. А это логично и соответственно необходимо для корректной работы.

    В итоге вот сборка 100% работающая (быстро и без сбоев) из моих конфигов для реверс-прокси nginx:
    1. Обновляем Nginx на реверс прокси, минимум до такой же версии как и на ВМ Б24, в моём случае это была версия 1.20.2, которая уже содержала необходимые пакеты nginx-extras, необходимые для передачи специальных заголовков websocket.
    2. Настройки реверс-прокси nginx.
    В nginx.conf в директиву http добавляем параметры из nginx.conf ВМ Б24 (у меня они собраны в bx/bx_general_proxy_settings.conf) и директивы map из файла bx/settings/rtc-im_settings.conf:
    include bx/settings/rtc-im_settings.conf;
            include bx/bx_general_proxy_settings.conf;

    bx/bx_general_proxy_settings.conf
    proxy_connect_timeout           300;
            proxy_send_timeout              300;
            proxy_read_timeout              300;
            proxy_buffer_size               64k;
            proxy_buffers                   8 256k;
            proxy_busy_buffers_size         256k;
            proxy_temp_file_write_size      10m;
    
            gzip                            on;
            gzip_proxied                    any;
            gzip_static                     on;
            gzip_http_version               1.0;
            gzip_types                      application/x-javascript application/javascript text/css;
    
            default_type application/force-download;
    
            tcp_nopush                      on;
            tcp_nodelay                     on;
    
            client_max_body_size            1024m;
            client_body_buffer_size         4m;

    bx/settings/rtc-im_settings.conf
    log_format simple '$time_local $status $request';
    
    # if connection ti not set
    map $http_upgrade $connection_upgrade {
      default upgrade;
      '' 'close';
    }
    
    map $http_upgrade  $replace_upgrade {
      default $http_upgrade;
      ''      "websocket";

    Конфиг для DNS Б24:
    server {
        listen       80;
        if ($host = {DNS name}) {
            return 301 https://$host$request_uri;
        } # managed by Certbot
    }
    server {
            listen       443 ssl;
            server_name {DNS name} www.{DNS name};
            access_log /var/www/httpd-logs/{DNS name}.access.log;
            error_log /var/www/httpd-logs/{DNS name}.error.log notice;
            ssl_certificate /etc/letsencrypt/live/{DNS name}/fullchain.pem; # managed by Certbot
            ssl_certificate_key /etc/letsencrypt/live/{DNS name}.su/privkey.pem; # managed by Certbot
            ssl_ciphers EECDH+AESGCM:EDH+AESGCM:AES256+EECDH:AES256+EDH;
            ssl_prefer_server_ciphers on;
            ssl_protocols TLSv1 TLSv1.1 TLSv1.2;
    
            location / {
    
                    proxy_ignore_client_abort on;
                    proxy_pass https://{IP VM B24}:443;
                    proxy_redirect https://{IP VM B24}:443 /;
                    proxy_set_header Host $host;
                    proxy_set_header X-Real-IP $remote_addr;
                    proxy_set_header X-Forwarded-Port $server_port;
                    proxy_set_header X-Forwarded-For $proxy_add_x_forwarded_for;
                    proxy_set_header X-Forwarded-Proto $scheme;
                    proxy_set_header HTTPS YES;
    
                # for Push&Pull
                location /bitrix/subws/ {
                    access_log off;
                    proxy_max_temp_file_size 0;
                    proxy_read_timeout  43800;
                    proxy_http_version 1.1;
                    proxy_pass https://{IP VM B24}:443;
                    proxy_set_header Upgrade $replace_upgrade;
                    proxy_set_header Connection $connection_upgrade;
                    proxy_redirect https://{IP VM B24}:443 /;
                    proxy_set_header Host $host;
                    proxy_set_header X-Real-IP $remote_addr;
                    proxy_set_header X-Forwarded-Port $server_port;
                    proxy_set_header X-Forwarded-For $proxy_add_x_forwarded_for;
                    proxy_set_header X-Forwarded-Proto $scheme;
                    proxy_set_header HTTPS YES;
                }
                location /bitrix/sub/ {
                    access_log off;
                    rewrite ^/bitrix/sub/(.*)$ /bitrix/subws/$1 break;
                    proxy_pass https://{IP VM B24}:443;
                    proxy_max_temp_file_size 0;
                    proxy_read_timeout  43800;
                    proxy_set_header Host $host;
                    proxy_set_header X-Real-IP $remote_addr;
                    proxy_set_header X-Forwarded-Port $server_port;
                    proxy_set_header X-Forwarded-For $proxy_add_x_forwarded_for;
                    proxy_set_header X-Forwarded-Proto $scheme;
                    proxy_set_header HTTPS YES;
                }
    
                location /bitrix/rest/ {
                    access_log off;
                    proxy_pass https://{IP VM B24}:443;
                    proxy_max_temp_file_size 0;
                    proxy_read_timeout  43800;
                    proxy_set_header Host $host;
                    proxy_set_header X-Real-IP $remote_addr;
                    proxy_set_header X-Forwarded-Port $server_port;
                    proxy_set_header X-Forwarded-For $proxy_add_x_forwarded_for;
                    proxy_set_header X-Forwarded-Proto $scheme;
                    proxy_set_header HTTPS YES;
                }
             }

    Для перечитывания конфигов используем
    nginx -s reload
    Для тестирования
    nginx -t
    Для перезагрузки
    systemctl restart nginx
    На ВМ Б24 не забываем включить модуль real_ip в BitrixVM – создаем конфигурационный файл bx/settings/real_ip.conf:
    set_real_ip_from {IP revers-proxy};
    real_ip_header X-Forwarded-For;

    3. ОБЯЗАТЕЛЬНО копируем SSL сертификат и ключ c реверс-прокси на ВМ Б24 и прописываем его в bx/conf/ssl.conf. Без него - не работает! И этого ни в одной инструкции не было! При этом с реверс-прокси, мы весь трафик отправляем на https 443й порт ВМ Б24.
    4. Если всё равно не работает переустановите Push-server на ВМ Б24:
    4hRqc87.png
    4hRqebM.png
    4hRqhdx.png
    Ответ написан
    Комментировать
  • Папка upload/crm и папка upload/mail стали расти в день на 10-20 ГБ?

    @sevnet
    Системный аналитик, бизнес-консультант
    А при резервном копировании у вас папки ./upload и ./bitrix/backup исключены?
    4hMyCAB.png
    И ещё просмотрите какая папка занимает максимум места, а потом смотрите в ней другие папки, и так до файлов:
    введите в командной строке:
    du -hc --max-depth=1
    Сначала в папке
    /home/bitrix/www/
    затем в тех папках которые сильно много весят, затем в их подпапках, и т.д. пока не найдёте чем занято место.
    Ответ написан
    Комментировать
  • Как преобразовать текстовый вид чисел с разделителями порядков (триад) в тип "число" в exel?

    @sevnet Автор вопроса
    Системный аналитик, бизнес-консультант
    В общем, я не знаю, что за символ на месте пробела попадает при экспорте на место разделителя триад, но работает поиск и замена только в том случае, если я именно копирую "пробел" из разделителя триад, а если просто в поиске в поле "Что ищем" ставлю пробел - то он не ищется(((
    Ответ написан
    Комментировать
  • Где взять инсталлер OS X для установки на VMWare?

    @sevnet Автор вопроса
    Системный аналитик, бизнес-консультант
    Да, нашёл уже на rutracker.net
    Ответ написан
  • Как настроить запись с камеры DCS-2103 (fw. 1.24) к серверу Samba (Version 4.13.5-Debian)?

    @sevnet Автор вопроса
    Системный аналитик, бизнес-консультант
    РЕШЕНО!!!
    1. Понизил версию самба на 4.5.6.
    2. Нашел путём последовательного уточнения запросов на просторах интернетов
    zo0mik 10.08.17 16:06:53:
    "Ну вот почему нельзя написать об этом во всех руководствах, что если не написать всего лишь одну эту строчку, то в каких-то случаях хоть голову о клаву разбей, оно может и не заработать вообще?!!! А вообще, желательно: client min protocol = NT1 client max protocol = SMB3 ntlm auth = yes create mask = 0664 directory mask = 0775 acl allow execute always = True и обязательно проверить наличие директории в локальной файловой системе и права на неё!"

    Вот такой конфиг на выходе:
    [global]
    #workgroup = WORKGROUP
    security = user
    map to guest = bad user
    wins support = no
    dns proxy = no
    log level = 3
    client min protocol = NT1
    client max protocol = SMB3
    ntlm auth = yes
    acl allow execute always = True
    log file = /var/log/samba/log.%m
    
    [183]
    path = /home/cams/captures/183
    valid users = cams
    guest ok = no
    browsable = yes
    writable = yes
    read only = no
    create mask = 0665
    directory mask = 0775
    Ответ написан
    Комментировать