Перейти к контенту
Форум о видеонаблюдении

Рекомендуемые сообщения

Подскажите, может кто сталкивался с такой проблемой:

При проксировании трафика через nginx стандартный web-интерфейс грузится, но далее список камер не загружается (Сообщение: "Не удалось загрузить список камер"). При этом https://server/cameras/ и stream-потоки в web-плеере работают без проблем.

Как запроксировать стандартный web-интерфейс?

Поделиться этим сообщением


Ссылка на сообщение
Поделиться на других сайтах

Здравствуйте!
1. http://demo.devline.ru/ на этом ПК открывается нормально?
2. На других ПК в этой сети всё нормально работает или вопрос относится ко всем компьютерам в этой сети?
3. Сервер в этой же LAN или подключение через интернет?
4. Попробуйте очистить настройки "Панель управления\Система и безопасность\Flash Player"
5. Что в логах NGINX ?  
Какую задачу Вы пытаетесь решить используя NGINX ? 

Поделиться этим сообщением


Ссылка на сообщение
Поделиться на других сайтах

1. Все открывается
2. http://line.adm.tver.ru/  - интерфейс грузится, а список камер не загружается
3. Сервер в отдельной подсети, доступ осуществляется через nginx proxy_pass. При этом http://line.adm.tver.ru/cameras/ доступен, через приложение на android так же все ок.
4. Не помогло
5. Nginx access.log

Формат лога:

                 '$host $remote_addr - $remote_user [$time_local] '
                '"$request" $status $bytes_sent '
                '"$http_referer" "$http_user_agent" '
                '"$gzip_ratio" "$request_body" "$upstream_addr"';

10.10.101.229 - адрес line сервера (OS Windows Server 2008)
172.30.128.100 - мой локальный IP
line.adm.tver.ru (77.94.172.230) - nginx proxy (OS ubuntu server 16.04 LTS)

 

line.adm.tver.ru 172.30.128.100 - - [18/May/2018:09:00:25 +0300] "GET / HTTP/1.1" 200 2893 "-" "Mozilla/5.0 (Windows NT 6.1; WOW64; Trident/7.0; rv:11.0) like Gecko" "-" "-" "10.10.101.229:9786"
line.adm.tver.ru 172.30.128.100 - - [18/May/2018:09:00:25 +0300] "GET / HTTP/1.1" 200 1515 "-" "Mozilla/5.0 (Windows NT 6.1; WOW64; Trident/7.0; rv:11.0) like Gecko" "2.19" "-" "127.0.0.1:8080"
line.adm.tver.ru 172.30.128.100 - - [18/May/2018:09:00:25 +0300] "GET /js/swfobject.js HTTP/1.1" 200 10473 "http://line.adm.tver.ru/" "Mozilla/5.0 (Windows NT 6.1; WOW64; Trident/7.0; rv:11.0) like Gecko" "-" "-" "10.10.101.229:9786"
line.adm.tver.ru 172.30.128.100 - - [18/May/2018:09:00:25 +0300] "GET /js/swfobject.js HTTP/1.1" 200 4261 "http://line.adm.tver.ru/" "Mozilla/5.0 (Windows NT 6.1; WOW64; Trident/7.0; rv:11.0) like Gecko" "2.59" "-" "127.0.0.1:8080"
line.adm.tver.ru 172.30.128.100 - - [18/May/2018:09:00:25 +0300] "GET /favicon.ico HTTP/1.1" 200 1379 "-" "Mozilla/5.0 (Windows NT 6.1; WOW64; Trident/7.0; rv:11.0) like Gecko" "-" "-" "10.10.101.229:9786"
line.adm.tver.ru 172.30.128.100 - - [18/May/2018:09:00:25 +0300] "GET /favicon.ico HTTP/1.1" 200 1379 "-" "Mozilla/5.0 (Windows NT 6.1; WOW64; Trident/7.0; rv:11.0) like Gecko" "-" "-" "127.0.0.1:8080"
line.adm.tver.ru 172.30.128.100 - - [18/May/2018:09:00:25 +0300] "GET /flash.swf HTTP/1.1" 200 214826 "http://line.adm.tver.ru/" "Mozilla/5.0 (Windows NT 6.1; WOW64; Trident/7.0; rv:11.0) like Gecko" "-" "-" "10.10.101.229:9786"
line.adm.tver.ru 172.30.128.100 - - [18/May/2018:09:00:25 +0300] "GET /flash.swf HTTP/1.1" 200 214826 "http://line.adm.tver.ru/" "Mozilla/5.0 (Windows NT 6.1; WOW64; Trident/7.0; rv:11.0) like Gecko" "-" "-" "127.0.0.1:8080"
line.adm.tver.ru 172.30.128.100 - - [18/May/2018:09:00:26 +0300] "GET /lang.json HTTP/1.1" 200 3289 "http://line.adm.tver.ru/flash.swf" "Mozilla/5.0 (Windows NT 6.1; WOW64; Trident/7.0; rv:11.0) like Gecko" "-" "-" "10.10.101.229:9786"
line.adm.tver.ru 172.30.128.100 - - [18/May/2018:09:00:26 +0300] "GET /lang.json HTTP/1.1" 200 3289 "http://line.adm.tver.ru/flash.swf" "Mozilla/5.0 (Windows NT 6.1; WOW64; Trident/7.0; rv:11.0) like Gecko" "-" "-" "127.0.0.1:8080"

Задачи две:
1. Через стандартный web-интерфейс (на flash) предоставить доступ к камерам - тут как раз проблема;
2. Вывод видео с камер на сайте (HTML5 плеер) - тут все ок, все работает.

Изменено пользователем andresys
мелкие правки

Поделиться этим сообщением


Ссылка на сообщение
Поделиться на других сайтах
Цитата

1. Через стандартный web-интерфейс (на flash) предоставить доступ к камерам - тут как раз проблема;

Вот как раз не проблем  в нормальных ситуациях. Я только не понял, на серваке веб работает нормально же? И самого правила не вижу, а в логе ничего не понятно (откуда вылезает "127.0.0.1:8080" ??? ).  Если на сервере работает - настройте прозрачное проксирование и будет счастье. Если не получается - обратитесь к местному садмину,  пусть уделить пару минут. 

Чтиво:
https://habr.com/post/158393/
http://nginx.org/ru/docs/http/ngx_http_proxy_module.html#proxy_pass
http://nginx.org/ru/docs/stream/ngx_stream_proxy_module.html
https://forum.nginx.org/read.php?21,266706,266706#msg-266706

ИМХО - обратного доступа нет, т.е. настройки не верные. Но я совершенно не уверен, что вообще можно настроить. Что мешает просто пробросить порт 9786 TCP и оставить в покое этот прокси? 

Поделиться этим сообщением


Ссылка на сообщение
Поделиться на других сайтах

1. покажите location c proxy_pass

2 . скорее всего проблема с flashpolicy.xml

https://www.adobe.com/devnet/flashplayer/articles/socket_policy_files.html

по русски http://www.itlessons.info/actionscript/flash-policy-file-server/

у меня есть реализация для  freebsd

Изменено пользователем Yarushkin

Поделиться этим сообщением


Ссылка на сообщение
Поделиться на других сайтах

Снял tcpdump на proxy сервере и вижу что flash-клиент помимо 80 порта, так же пытается подключиться на 843 порт и на 9786. Поменял в настройках сервера порт 9786 на 80 и перезагрузился. Теперь порта 9786 в tcpdump нет, визуальный результат тот же, но а в логах nginx появилась новая запись:

172.30.128.100 - - [18/May/2018:11:00:53 +0300] "<policy-file-request/>\x00" 400 343 "-" "-" "-" "-" "-"

127.0.0.1:8080 - это внутренний прокси. HTTP и HTTPS трафик заворачивается сначала на него, а он потом раскидывает его по backend'ам. Пишется все в один access.log поэтому все строчки дублируются. Убрал 127.0.0.1:8080 из цепочки результат пока не поменялся.

12 минут назад, Yarushkin сказал:

1. покажите location c proxy_pass

2 . скорее всего проблема с flashpolicy.xml

https://www.adobe.com/devnet/flashplayer/articles/socket_policy_files.html

по русски http://www.itlessons.info/actionscript/flash-policy-file-server/

у меня есть реализация для  freebsd

По сообщению выше видно что проблема с flashpolicy.xml, но пока не разобрался

server {
        listen 80;
        listen 443 ssl;
        server_name line.adm.tver.ru;

        ssl_certificate /etc/letsencrypt/live/line.adm.tver.ru/fullchain.pem;
        ssl_certificate_key /etc/letsencrypt/live/line.adm.tver.ru/privkey.pem;

        location / { proxy_pass http://10.10.101.229:80; }

        error_page 400 /crossdomain.xml;

        location = /crossdomain.xml {
                root /var/www/crossdomain.xml;
        }

        location ~ ^/cam([0-9]+)\.jpg$ {
                image_filter resize 320 200;
                image_filter crop 320 200;
                add_header Cache-Control no-cache;

                error_page   415 = /empty;

                proxy_pass http://10.10.101.229:80/cameras/$1/image?authorization=Basic%20d2ViOndlYg%3D%3D;
        }

        location = /empty {
                empty_gif;
        }
}

Пробую подпихивать crossdomain.xml взятый с line сервера, но пока не работает.

Поделиться этим сообщением


Ссылка на сообщение
Поделиться на других сайтах

Люди добрые,

прокидывал кто Web морду через nginx ?

Хочу вывести морду в общий доступ, но с конфигом беда  - понятие не имею как правильно настроить прокси,

Поделитесь конфигом.

Поделиться этим сообщением


Ссылка на сообщение
Поделиться на других сайтах

Здравствуйте!

По умолчанию используются порты:
    9780 – приложения «Наблюдательный пост» и «Просмотр архива».
    9786 – мобильные клиенты Android , iOS и веб-интерфейс.
Порты TCP.

Настройка зависит от конфигурации сети и настроек NGINX. 

Обратитесь, пожалуйста, к системному администратору этой сети.

Поделиться этим сообщением


Ссылка на сообщение
Поделиться на других сайтах

Создайте аккаунт или авторизуйтесь, чтобы оставить комментарий

Комментарии могут оставлять только зарегистрированные пользователи

Создать аккаунт

Зарегистрировать новый аккаунт в нашем сообществе. Это несложно!

Зарегистрировать новый аккаунт

Войти

Есть аккаунт? Войти.

Войти

  • Похожий контент

    • Автор: Павел М.
      Возникла задача организовать закрытую трансляцию камер на сайте. Ни один из стандартных вариантов (https://devline.ru/translation/) не подошёл, предложенные на форуме способы тоже не устроили. На скорую руку было набросано решение на nginx (нужен для корректной работы по HTTPS) и Video.js (собственно сам плеер).
      Плюсы:
      Полноценное HTML5 видео со всеми вытекающими. Поддерживается Internet Explorer (по меньшей мере Windows 7/IE11 или новее, на более старых не проверял). Поддержка работы по HTTPS без каких-либо предупреждений. Скрыт реальный адрес сервера с «Линия IP». Не используются сторонние сайты. Разграничение доступа по пользователям. Минусы:
      Весь трафик идёт через ваш сервер.  
      В конфиг nginx надо будет добавить:
      server { listen 443 ssl http2; root /usr/local/www/video; server_name video.example.com; ssl_certificate fullchain.pem; ssl_certificate_key privkey.pem; location / { auth_basic "My video server"; auth_basic_user_file htpasswd; } location /cameras/ { proxy_pass http://devline.server.local:9786/cameras/; } } Вместо devline.server.local указываем имя или IP-адрес вашего сервер «Линия IP». В файле htpasswd необходимо прописать имена пользователей и пароли (по паролям читаем документацию), которые совпадают с соответствующими пользователями на сервере «Линия IP» и которым необходимо дать доступ к трансляции.
      Для работы потокового вещания потребуется библиотека HLS для Video.js. Пример кода:
      <!doctype html> <html lang="ru"> <head> <meta charset="utf-8"> <title>Видеонаблюдение</title> <link href="css/video-js.min.css" rel="stylesheet"> <script src="js/videojs-ie8.min.js"></script> <script src="js/video.js"></script> <script src="js/lang/ru.js"></script> <script src="js/videojs-flash.min.js"></script> <script src="js/videojs-http-streaming.min.js"></script> </head> <body> <video id="video" class="video-js vjs-default-skin" width="640" height="360" poster="//video.example.com/cameras/0/image?resolution=640x360" preload="none" controls data-setup='{"language": "ru"}'> <source src="//video.example.com/cameras/0/streaming/main.m3u8" type="application/x-mpegURL" /> <p class="vjs-no-js">Для просмотра этого видео, пожалуйста, включите JavaScript и убедитесь, что ваш браузер поддерживает HTML5-видео.</p> </video> </body> </html>  
×