Ответы пользователя по тегу Nginx
  • Как правильно привязать два домена к одному ip?

    @rPman
    Совмести конфиг http и https в одной секции server
    http {
        server {
            listen 80;
            listen 443 ssl;
            server_name example1.com;
            root /var/www/example1;
            index index.html;
    
            ssl_certificate /etc/letsencrypt/live/example1.com/fullchain.pem;
            ssl_certificate_key /etc/letsencrypt/live/example1.com/privkey.pem;
    
            # Перенаправление HTTP на HTTPS
            if ($scheme != "https") {
                return 301 https://$server_name$request_uri;
            }
        }
    
        server {
            listen 80;
            listen 443 ssl;
            server_name example2.com;
            root /var/www/example2;
            index index.html;
    
            ssl_certificate /etc/letsencrypt/live/example2.com/fullchain.pem;
            ssl_certificate_key /etc/letsencrypt/live/example2.com/privkey.pem;
    
            # Перенаправление HTTP на HTTPS
            if ($scheme != "https") {
                return 301 https://$server_name$request_uri;
            }
        }
    }
    Ответ написан
    Комментировать
  • Как передать реальный ip клиента через openwrt на nginx?

    @rPman
    Установи на роутере веб сервер nginx и настрой проксирование запросов в твой основной веб сервер в виртуалке, добавив x-forwarded-for заголовок (можно еще что добавить)
    https://forum.openwrt.org/t/uhttpd-x-forwarded-for...
    Ответ написан
  • Как настроить push&pull WebSocket RTC на ВМ Битрикс 24 с обратным проксированием nginx?

    @rPman
    Совершенно не понимаю, зачем эти порты пробрасывать, возможно это специфика битрикс.

    Websocket - это расширение http протокола, т.е. буквально это постоянно висящее http соединение от браузера до клиента, в котором можно слать данные в обе стороны.

    С точки зрения nginx прокси, это обычный http запрос, настройки там минимальны

    Но у тебя внутри твоей сети должен быть поднять этот websocket сервер. Т.е. какое то приложение, которое и является этим сервером, умеющим обрабатывать не http rest а именно непрерывное подключение.
    -----------------------------------------------
    Либо модуль веб сервера!

    Я не совсем уверен, в документации есть только пара строчек об этом
    Включает использование Веб-сокетов. Активна только при использовании nginx-push-stream-module в версии 0.4.0

    Используется этот модуль https://github.com/wandenberg/nginx-push-stream-module
    Читай инструкции как его настраивать

    т.е. веб сервер становится посредником, где уже бакэнд сможет слать к нему запросы в http rest стиле и управлять открытыми websocket каналами (и читать к примеру старые сообщения, этот момент меня огорчил, так как не нашел как бакэнд будет получать сообщения о новых данных в канале ws)
    Ответ написан
  • Как сделать https в локальной сети?

    @rPman
    SSL Cloudflare отдает сертификат? или замыкает только на себя?
    если отдает то можно настроить dns (или локально на машине /etc/hosts) на свой локальный веб сервер, который этим сертификатом будет обеспечивать https
    Ответ написан
    2 комментария
  • Что расходует ресурс диска?

    @rPman
    https://habr.com/ru/post/476414/
    собирай статистику работы с диском по процессам

    сам nginx только пишет логи, но что делают сайты на php 'одному богу известно', выявляй, анализируй
    Ответ написан
  • Несколько вопросов по линуксу от новичка?

    @rPman
    кто сказал что место закончилось если df -h говорит что оно есть?

    если лог файл не открыт постоянно на запись (кстати зависит от того как именно программа туда пишет данные, может и получится) его можно обрезать штатной утилитой
    truncate -s 0 logfile
    а на будущее, нужно настроить чтобы логи писались не в один и тот же файл а по интервалу в новый (например имя файла с текущей датой, делит логи по суткам), чистить такие логи проще всего по крону
    Ответ написан
  • Корректна ли будет такая организация Docker-контейнеров?

    @rPman
    Зачем ты разделяешь части приложения по доккер образам?

    докер образ это считай виртуальная машина на минималках, состояние которого можно (нужно) сбрасывать, и которое логически объединяет функционал, который будет работать как есть... чтобы тупо было удобно разворачивать и обновлять приложение

    я ее пойму базу данных отделить, хотя это отдельный философский разговор, нужно ли ее в принципе в докер образ засовывать, но вот все остальное должно быть одним целым

    так что ответ, хватит одного максимум двух образов
    Ответ написан
  • Как защитить контент от парсинга с помощью Nginx?

    @rPman
    Основная защита от парсинга - только при доступе к данным по авторизации и установка лимитов на данные (объем, доступный пользователю либо за какой то период времени, например сутки/месяц).

    Анонимно доступные данные, в общем случае, защитить от выгрузки пользователями - невозможно. Все что пользователь видит на экране можно тупо скопировать и проанализировать.

    В некоторых случаях, если собирать качественный отпечаток браузера, можно присвоить анонимным пользователям некий идентификатор и уже на его основе выставить на бакэнде лимиты доступа к данным, но как всегда трудности в мелочах и если перестараться, можно помешать работе легитимных пользователей.

    Можно поставить 'палки в колеса', сделав этот процесс сложнее (и дороже), в основном это запутывание/шифрование данных, доступных напрямую (по api) с бакэнда и обфускация кода, его преобразования в видимый пользователю контент, чтобы классические (дешевые) инструменты не работали. Как всегда стоимость защиты (затрат на разработку) должна быть сравнима затрат граберов на получение данных (обычно им проще).
    К сожалению вместе с контент-грабером, в заблуждение будут введены роботы поисковых систем, ведь их основная работа - грабить контент.
    spoiler
    * api не должен быть простым и интуитивно понятным, идентификаторы могут вообще не быть постоянными (их можно преобразовывать на бакэнде на основе данных в сессии)
    * код javascipt, например получения ссылки на объект должен быть нетривиальным, т.е. чтобы получить следующую ссылку на требуемый граберу объект, потребовалось бы использовать сам браузер (а не простенький скрипт парсер html)
    * верстка может быть непостоянной, изменяющиеся, простые гуляющие наименования классов и идентификаторов уже могут создать кучу проблем (я такое встречал), а уж постоянное изменение структуры должно совсем запудрить голову даже опытным граберам (не встречал)
    * шрифт может не являться правильным (видимые символы могут не соответствовать их кодам), при этом генерируемый каждый раз новый под конкретную сессию пользователя. Простая подстановка, сильно усложнит (но не сделает невозможной) получение данных через буфер или document.innerText в консоли браузера, оставив граберу только вариант распознавание экрана скринридером (а не тривиальная верстка потребует от пользователя сложную настройку и автоматизацию и эти инструменты)
    * типовые javascript методы браузера должны быть замещены на 'неправильно работающие', чтобы граберу пришлось использовать внешние скрипты а не простой инжект javascript (обычно это сильно упрощает).
    Ответ написан
    3 комментария
  • Почему такая разница между Nginx и Apache в метрике "Content Download"?

    @rPman
    Скорее всего все зависит от того как приложения отдают http заголовки.

    Когда работает через apache, TTFB ждет долго потому что пока приложение не отработает до конца, даже заголовки не будут отправлены, т.е. время, которое занимает работа приложения это TTFB+content download

    Когда же работает через php fpm, за заголовки отправляются тут же, nginx не ждет когда закончится работа приложения для этого, а значит TTFB маленький (кстати 122мс это ДОЛГО что там происходит?) а уже генерация контента происходит пока идет content download
    Ответ написан
    3 комментария
  • Как сделать ssl для другого порта на сервере?

    @rPman
    Хз что не так, nginx точно позволяет на нескольких портах поднимать сервера с https протоколом, первый же результат из гугла
    Ответ написан
    Комментировать
  • Почему может быть такое что vps как бы уходит в спячку после простоя?

    @rPman
    Пинайте хостера, если панель администрирования сервера лагает то это уже не ваша вина

    p.s. не включен ли своп и нет ли сильных трат оперативной памяти что тот своп используется по полной?
    Ответ написан
    2 комментария
  • Не видит файл JS который существует, почему так происходит?

    @rPman
    Посмотри очень внимательно на пути, вполне возможно что nginx указан не тот каталог, к примеру старая копия где то лежит, забыл конфиг перенастроить

    Вон на скрине видно что в терминале каталог _nuxt/dist/... а в логах nginx _nuxt/
    Ответ написан
    Комментировать
  • NGINX + LUA = Benchmark. У кого есть опыт?

    @rPman
    Увеличивай количество потоков тестирования, очевидно же что основные тормоза у тебя из-за сетевой латенси
    Локальный nginx на совсем убитой машине дает гигабайты на hello world статике и тысячи запросов в секунду.

    В доказательство, попробуй запустить тесты локально на сервере.
    Ответ написан
    2 комментария
  • Почему собственный хостинг долго открывает сайты?

    @rPman
    Нажимаешь в браузере F12, закладка networks, потребуется нажать на круг/reload чтобы запустить аналитику, оно перезагрузит сайт и покажет подробно какой элемент как долго и в каком порядке загружается с миллисекундной точностью

    Гадать что именно тормозит бессмысленно.
    30 секунд это выглядит как таймаут на доступ к какому то ресурсу, вот и определите что недоступно.
    Ответ написан
    Комментировать
  • Есть у кого пример настройки либо кеширующего сервера либо SSD кеш на самом сервер?

    @rPman
    linux имеет несколько инструментов по использовании ssd как кеш для диска на уровне файловой системы, вот пример с упоминаниями остальных
    Ответ написан
    2 комментария
  • Возможно ли закидывать 4 мбайт видео (начало файла) в кеш озу?

    @rPman
    Вам надо заранее?

    Отдельным приложением которое будет пробегать по нужным файлам и считывать нужный кусок (советую не только начало но и конец, в avi например там индексы, они тоже читаются сразу). Вы даже можете читать несколько раз (в т.ч. периодически), чтобы убедить умный кеш считающий статистику (если есть таковой, обычно там просто fifo очередь) что эти данные вас интересуют больше и дольше оставались бы в кеше.

    Правда не ясно как вы будете заранее определять, какие файлы нужно подружать а какие нет, а если все - то может оперативной памяти не хватить.
    Ответ написан
    Комментировать
  • Не хватает ширины канала для трансляции?

    @rPman
    Как представлю этот кошмар, обеспечение стриминга 5к пользователей в одно и то же время, сразу кошельку становится грустно грустно.

    Ладно если бы речь шла о 2010г. и ранее, тогда действительно был единственный вариант заливать сетевые каналы баблом, но теперь у нас есть https://webtorrent.io на базе webrtc и p2p, попробуйте, конечно, возможно технология все еще сыровата, но у вас корпоративные клиенты, где сети не такие сломанные как мобильные (все за nat и/или p2p трафик так или иначе ограничивается) и главное, потратьте эти деньги на допиливание ее, в результате выиграют все а не только амазон (поддержка таких монополистов деньгой фактически преступление для человечества).
    Ответ написан
    Комментировать
  • PHP проблема при заливке файлов размеров более 2GB?

    @rPman
    2гб - выглядит так будто попали в лимит 32-битной адресации (т.е. размер файла в signed int), в php целые числа при превышении 2^31 преобразуются в double, со всеми вытекающими от сюда глюками.

    попробуйте 64-битную реализацию на тестовом железе, если я прав.
    Ответ написан
    2 комментария
  • Призводительность rasspberry PI для сайта?

    @rPman
    RPI дает на порядок меньше производительность, чем тот intel celeron j1800, который интегрируют в mitx и не только платы, на основе них можно собрать машину порядка 6-8т.р. (смешно выглядит плата в ATX корпусе), т.е. цена того же порядка.

    Мало того, устройство хранения вы подключить сможете к RPI только через USB2 (картридер там тоже на USB висит) со всеми вытекающими от сюда ограничениями в 30мб/с в сумме на r/w. Мало и не расширяемая оперативка это окончательный гвоздь в гроб использования RPI как веб-сервер.

    RPI это не тот инструмент что вам нужен, он подходит там где нужен миниатюрный размер, малое энергопотребление, buildin порты ввода-вывода для подключения DYI перефирии и т.п. в общем рай для самоделкиных.
    Ответ написан
    Комментировать