Задать вопрос
  • Как комбинировать работу с протоколами websocket и http?

    @kr_ilya
    Если коротко
    http сервер запускаешь на одном порту.
    socket.io сервер запускаешь на другом порту.
    Потом через nginx например, проксируешь их на разные адреса

    Например
    server.js

    //http
    const express = require('express');
    const server = require('http')
    var app = express();
    var server = server.Server(app);
    server.listen(3000);
    
    //socket
    Socket.io = require('socket.io')(3001, { path: '/', });


    Секция server конфига nginx

    # Для стандартных пост гет запросов (запросы, естественно, будут на site/api/)
    location /api/ {
        expires $expires;
    
        proxy_redirect                      off;
        proxy_set_header Host               $host;
        proxy_set_header X-Real-IP          $remote_addr;
        proxy_set_header X-Forwarded-For    $proxy_add_x_forwarded_for;
        proxy_set_header X-Forwarded-Proto  $scheme;
        proxy_read_timeout          30m;
        proxy_connect_timeout       30m;
        send_timeout                30m;
        proxy_pass                          http://127.0.0.1:3000/; # set the adress of the Node.js instance here
    }
    
    # Для сокетов
    location /socket/ {
    
        expires $expires;
    
        proxy_redirect                      off;
        proxy_set_header Host               $host;
        proxy_set_header X-Real-IP          $remote_addr;
        proxy_set_header X-Forwarded-For    $proxy_add_x_forwarded_for;
        proxy_set_header X-Forwarded-Proto  $scheme;
        proxy_set_header                    Upgrade $http_upgrade; #для сокетов
        proxy_set_header                    Connection "upgrade"; #для сокетов
        proxy_http_version 1.1;
        proxy_read_timeout          30m;
        proxy_connect_timeout       30m;
        send_timeout                30m;
        proxy_pass                          http://127.0.0.1:3001; # set the adress of the Node.js instance here
        
    
        
        # proxy_ssl_server_name on;
    }
    Ответ написан
    Комментировать
  • Стоит ли обновлять старый мак до последней версии?

    DevMan
    @DevMan
    сделайте образ диска и сохраните на отдельный диск.
    накатите свежак и тестируйте.
    понравилось? отлично!
    не понравилось? раскатали образ назад.
    Ответ написан
  • Как работает веб-сервер и node js в связке? Зачем нужен Nginx?

    alexey-m-ukolov
    @alexey-m-ukolov Куратор тега Веб-разработка
    Самое простое - nginx отдаёт статику. На больших объёмах делать это через Ноду неэффективно.
    Посложнее - nginx позволяет управлять ходом запроса. Например, редиректить на https.
    Ещё сложнее - можно настроить nginx, чтобы он умно балансировал запросы между несколькими бэкендами и автоматом блокировал слишком частые попытки подключения.

    Nginx очень хорошо в промышленных масштабах делает определённую часть работы, связанной с http-запросом, поэтому ему эту часть работы и делегируют.
    Ответ написан
    Комментировать
  • Насколько стабильна RouterOS 7.1 beta6?

    @Tabletko
    никого не трогаю, починяю примус
    Это бета, используйте на свой страх и риск. Стабильность никто не гарантирует и даже не обещает.
    Ответ написан
    1 комментарий
  • Какую панель управления хостингом на VPS выбрать в 2021?

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

    Cyberpanel - веб-дизайн панели очень плох, но с точки зрения принципов построения панели для сервера который хостит разные сайты - этой панели нет равных среди всех опробованных мною панелей описанных выше. И open_basedir, и разграничение каждого сайта под отдельным пользователем, и приятная структура хранения сайтов аля: /home/пользователь/public_html,log,backup
    И приятные бекапы, и возможность подкрутить всякие штуки по типу Lets Encrypt без проблем, либо ограничение доступа, либо WAF из коробки, либо файловый менеджер, и так далее.

    Но за несколько лет меня эта панель достала. Во-первых, она крайне забагована. Её неоднократно ломали, и ломали мои хобби проекты (статичные сайты). Во вторых - у них через версию баги с обновлениями, которые полностью ломают всю панель и возможность входа внутрь. Причем ломается напрочь без возможности починить, только чистая переустановка. Неоднократно сообщал об этом - никакой помощи нет. В третьих - это баги OpenLiteSpeed, либо баги конфигурации веб-сервера. Когда за 1 месяц собирается сессий на 19 гигов в папке lsphp - это вообще не ок, что аж сервер крашит и inodes все заняты. И это один из багов. Были баги с их кешированием которое включено по умолчанию, и приходилось принудительно в каждом .htaccess отключать для доменов. И баги с бекапами были. Т.е. по принципу созданию в абстрактном понимании - панель топ, классная, молодцы, очень хорошо сделано в плане архитектуры. Но вот баги дурацкие, просто выбешивают.
    Нравилось с ols что все работало относительно хорошо с любым проектом, любыми реврайтами, кешированиями, разными версиями php, и занимало существенно меньше ресурсов чем апач, либо апач и nginx. Но увы - порекомендовать именно эту панель не могу. Я не знаю что должно произойти что бы её допили до нормального состояния.

    VestaCP - долго пользовался этим огрызком. Просто дичайшее отвращение к их темплейтам и конфигам веб-серверов. Какой идиот это писал? И под какие нужды? Огромное количество раз ломали эту панель как в общем, так и лично мне. Но визуально и в плане юзабилити одна из самых беспроблемных и простых и удобных панелей на рынке. В 2021 она мертва. Последние какие-то подвижки и обновления и работа над панелью завершились в году так 2017-2018. Всё остальное делают когда есть свободное время.

    HestiaCP - кусок г. базирующийся на VestaCP, после того как последние забили на разработку.
    Автор этой панели не вытягивает количество проблем и багов в этой панеле и сообщество. Не компетентен, плохо тестирует. Но с точки зрения безопасности в плане админки - он хорошо поработал. Всё остальное - очень плохо. Может даже инсталятор не установить с первого раза панель. Не полноценно поддерживаются разные конфиги установки без апача например на nginx+php-fpm. Крайне убогие наследуемые шаблоны от весты со всеми косяками и проблемами.
    Регулярные баги и проблемы с LetsEncrypt. Жрёт очень много озу. Но визуально хорошо сделано в плане внешнего вида. Под капотом - бред и анархия, но есть куда хуже панельки.
    Этой панели так же как и cyberpanel не хватает крепкого сообщества и волонтеров по допилу панели до нужной кондиции. Увы - очень сырая. Но критических багов как в CyberPanel среди веб-компонентов не было выявлено. Регулярно нужно что-то допиливать в панели.

    FastPanel - лично для меня это какое-то недоразумение. Снова принципы и архитектура вроде хорошая, но все как-то сыро, и иннертно.

    DirectAdmin - скорее мертв, чем жив. Хоть и используется массово на хостерах, но с безопасностью у этой панели швах полный. Если речь идет о шаред хостинге, то взлом одного сайта почти с 100% вероятностью повлечет за собой взлом всех сайтов, так как никаких ограничений в рамках одного аккаунта в плане ACL (разного рода) у панели нет. Из коробки куча абсурда и дегенеративных решений аля блок mysql порта, либо блок других портов через csf. Либо лимиты на размеров файлов. Ранее года 2-3 назад панель была полным днищем. Но после изменений ценовой политики cPanel - нарастили базу, и приняли пулреквесты и предложения, что бы как-то перехватить поток пользователей которые начали мигрировать на другие панели. Я не могу сказать что DirectAdmin в моем личном опыте эксплуатации была хорошей панелью. Мне не понравился опыт взаимодействия, и озвученные выше проблемы особенно с php. В 2021 году интерфейс панели и фичи панели наконец-то удобно расположили, и улучшили для удобства пользователей. Но я бы на этой панеле не сидел. Ну не нравится мне такой подход к панелям в плане архитектуры. Я считаю его не безопасным, убогим.

    ispconfig - тяжеловесный монстр со скрытыми платежами аля: "купить нашу документацию, что бы нормально все настроить, иначе из коробки будут неприятные проблемы с производительностью сервера". Пользовался - не зашло вообще ниразу. Не плохая, особых багов не было замечено, но тяжеловесная панель.

    centminmod - это даже не панель, это скрипты, и автор eva2000 - очень хорошо поработал над ними, и конфигами nginx, myslq, php, и так далее. Это пример того, как должно быть в любой панели из коробки. Конфиги хорошо отточены, допилены, протестированы, и разраб испытывает страсть к серверам и своей панельке, но у него не хватает скилов создать веб-панельку, которой ой как не хватает этому проекту. Одна из лучших панелей в плане стабильности работы и конфигов серверов, из списка озвученного выше. Но не удобная в использовании. Но конфиги - прям конфетка. Но не для мультисайта вообще ниразу, хоть и опции есть. Эта панель для меня некий фундамент, который до меня настроили хорошо, и дали на эксплуатацию. Ручками придется поработать немного в зависимости от веб-приложения (если специфичное), но не так много как в весте. Обычно пару строк измененний в конфигах, не более. Но не работает нормально с множеством сайтов на одном сервере.

    CentOS Web Panel - я вообще не понял что это такое, и зачем оно нужно, и почему оно имеет какую-то популярность.

    Froxlor - не продолжительно использовал, неплохо. Какие-то базовые принципы работы с веб-серверов с множеством сайтов соблюдены. Но есть история о ранних взломах этой панели. Поэтому к сожалению этот факт отягощал и заставил метнуться на другую панель. Ничего особенного, но легковесная, простая панелька. Но доверия чуть больше, чем к vestaCP.

    Остальные не опубликованные панели так же использовал, но не продолжительно.
    Поэтому лень писать о них, и не помню недочеты.

    Одна из самых удобных для меня и простых панелей были: cPanel, Plesk, ISPManager но все платные, и дорогие.
    Сейчас сижу на самописных скриптах и своих nginx конфигах. Ибо достало каждую панель ручками допиливать, либо получать уведомления что сайт не работает, потому что баг в модуле очередной панели.

    И да, в моем "ответе" опыт с 2012 по 2021 год.
    И все панели выше я проверял в 2021 году так же, и у кого-то были существенные изменения, а у кого-то вообще их нет. Т.е. отзыв актуален, но субъективен. Возможно у кого-то был другой опыт, но мой таков, каков он есть.
    Ответ написан
    5 комментариев
  • Когда допустим Jquery, а когда native JavaScript?

    Zoominger
    @Zoominger
    System Integrator
    jQuery мёртв уже несколько лет, а нативный JS никому не нужен, потому что зачем, если можно быстрее и проще без него?
    Ответ написан
    8 комментариев
  • Имеет ли смысл изучать Azure Active Directory в наших реалиях?

    @Tabletko
    никого не трогаю, починяю примус
    От того что вы о нём узнаете, хуже не станет.
    Ответ написан
    Комментировать
  • Имеет ли смысл изучать Azure Active Directory в наших реалиях?

    CityCat4
    @CityCat4
    Дома с переломом ноги
    В плане общего знакомства лишним не будет - лицензирование например его требует даже при локальном AD
    Ответ написан
    Комментировать
  • Почему говорит что хук не в функциональном компоненте?

    WblCHA
    @WblCHA
    Потому что он не в функциональном компоненте?
    import React, {useState, useEffect, Fragment} from 'react';
    const [OperationsList, setOperationsList] = useState([]); // ← ← ←
    import {apiGetOperationsLoan} from '../api/Api';
    Ответ написан
    Комментировать
  • Как правильно подключить плагин Vue.js ( Nuxt )?

    yarkov
    @yarkov Куратор тега JavaScript
    Помог ответ? Отметь решением.
    В папке plugins создаёшь файл, в нём подключаешь что надо, вызываешь Vue.use(/*...*/) и в конфиге, в секции plugnis, добавляешь путь к файлу.
    Начните с доков к наксту, там всё описано.
    Ответ написан
    Комментировать
  • Почему при открытии Aida64 или диспетчера задач температура и вольтаж ЦП падает?

    Zoominger
    @Zoominger Куратор тега Windows
    System Integrator
    Вы поймали майнер.
    Качайте Live USB Касперского, Доктора Веба и сканируйте ПК.
    Ответ написан
    2 комментария
  • Почему Service Locator это зло и что использовать вместо?

    FanatPHP
    @FanatPHP
    Чебуратор тега РНР
    Все эти страшные слова - они на самом деле всегда про одно и то же - про связность. Когда ты хардкодишь внутри класса вызов какого-то конкретного сервиса - ты намертво к нему привязываешься. И чтобы поменять сервис на другой, ты будешь вынужден поменять код класса. Окей, поменял. И тут же в другом месте, где этот же класс использовался, что-то сломалось! И что теперь? Делать два класса, которые различаются одной строчкой? Нет конечно. А как тогда использовать один и тот же класс для обработки разных входящих данных (или одних и тех же данных, но разными способами)? Сделать его поведение изменяемым. То есть сделать изменяемыми те инструменты, которыми он пользуется - т.е. его зависимости.

    Поэтому все зависимости обычно передаются через конструктор (и поэтому и называются инъекция зависимостей.)

    Таким образом мы можем менять поведение класса, не меняя его код

    Но тут надо понимать, что всё это работает только при правильном применении ООП. А точнее просто при применении ООП. Потому что 98% "ООП" кода, который пишется на РНР - это голимая процедурщина, даже если она обёрнута в классы и методы. Если у тебя метод класса представляет из себя стену кода, которую ты тупо перенёс из файла, инклюдившегося в любимое похапешное спагетти - то это не ООП. Это та же процедурщина, вид сбоку. И смысл использования dependency injection ты с ним не почуствуешь. Будешь конечно применять, но в качестве карго культа - потому что тебе это на тостере написали.
    А вот когда твой код начнет становиться действительно объектным - тогда стразу станет понятнее.


    Похожим на сервис локатор является сервис- или DI-контейнер. Используемый вручную, он является тем же самым сервис локатором. Поэтому вручную его никогда не надо вызывать - что и запрещается в симфоневских конроллерах - а только для автоматического создания классов. В МВЦ у тебя ведь очень многие объекты создаются автоматом - сущности, контроллеры. И вот для того, чтобы при автоматическом создании экземпляра класса у тебя были на руках все требуемые сервисы - и нужен контейнер.

    Соотвтственно, ответ на вопрос "что использовать?" очень простой:
    - при ручном создании экземпляра объекта, все зависимости передавать в него через конструктор, а не получать "из воздуха" в коде.
    - при автоматическом создании экземпляра объекта, использовать dependency injection container

    В этим смысле очень полезно освоить Симфони - строгий фрейворк, в котором нет сервис локатора и в котором запрещено пользоваться контейнером напрямую.
    Ответ написан
    4 комментария
  • Как принимать оплату на сайте анонимно?

    samodum
    @samodum
    Какой вопрос - такой и ответ
    Сесть в тюрьму. Там тебя научат делать фейковые банковские колл-центры
    Ответ написан
    Комментировать
  • Как принимать оплату на сайте анонимно?

    sergey-gornostaev
    @sergey-gornostaev
    Седой и строгий
    Это невозможно и более того противозаконно.
    Ответ написан
    10 комментариев
  • Перспективно ли становиться Android-разработчком?

    sergey-gornostaev
    @sergey-gornostaev
    Седой и строгий
    За мобильностью будущее, но место в нём есть только для тех разработчиков, которые могут самостоятельно об этом узнать.
    Ответ написан
    1 комментарий
  • Какой почтовый сервис/smtp выбрать для рассылки имейлов от интернет магазина(150к писем в месяц)?

    jamessvetsky
    @jamessvetsky
    Специалист по почтам и рассылкам
    Все SMTP следят за репутацией своих IP адресов. И при превышении норм по кликам на спам тут же блокируют. Нормы у всех разные, от 0,1% до 0,65%. А если рассылка идет по базам, собранным в интернете, количество кликов сейчас 2-5%. Поэтому все зависит от базы. Но если база белая, варианты есть. Почитайте, в свое время кратко разбирал все варианты
    https://7fk.ru/nastroyka-smtp/
    Ответ написан
    6 комментариев
  • Как вынести storage не потеряв производительность?

    ThunderCat
    @ThunderCat
    {PHP, MySql, HTML, JS, CSS} developer
    Сторэйж вынести отдельно и подмонтировать к обоим серверам как папку. Проще бэкапить, проще обслуживать, проще настраивать каждый серв под свои задачи. Ну и про разделение железа на более спецефичное под задачу не забываем.
    Ответ написан
    Комментировать
  • Где взять хороший материал для изучения видов оптики?

    mixatronik
    @mixatronik
    mixatronik.ru
    Недавно была похожая задача. Не один объект сделан на оптике, но с GPON не сталкивался и когда стал погружаться в тему, очень удивился, что такое существует, а я об этом не слышал вообще ничего! Основной вопрос был тот же - в чём отличие от обычного соединения точка-точка посредством SFP. Как оказалось, всё просто. Смысл GPON в том, что применяются оптические сплиттеры, например такие: https://shop.nag.ru/catalog/03493.opticheskie-deli..., которые делят одно волокно на несколько, причём такой фокус можно повторять, т.е. поделить одно волокно на 4, потом каждое из четырёх ещё на 8 или на 16 и т.д., но не бесконечно, само собой. Минус в том, что пропускная способность тоже делится. Самое главное - на концах такой линии используется специальное оборудование. Лучше показать на примере. В начале линии, например, такой девайс: https://shop.nag.ru/catalog/03903.gpon--gepon/3375... и на концах, вот такие: https://shop.nag.ru/catalog/03903.gpon--gepon/3375.... Но, возможны варианты в зависимости от поставленной задачи.
    Менеджер посоветовал ещё посмотреть вебинар: https://youtu.be/gGmhPnstp8k. Там много воды про коммерческую составляющую и для меня это было лишним, но и полезной инфы хватает.
    Ответ написан
    2 комментария
  • Как опубликовать анонимное фото?

    Zoominger
    @Zoominger
    System Integrator
    Удалите информацию EXIF.
    Можно в Linux через exiftools, можно в Windows через свойства картинки.
    Там пишутся ваши координаты, информация об устройтсве и прочее.

    Удачи с выкладыванием запрещённого контента и мягкой бутылки вам.
    Ответ написан
    2 комментария