• Как лучше указать хост БД?

    alexey-m-ukolov
    @alexey-m-ukolov Куратор тега MySQL
    Может возникнуть вот такое: Почему PDO::__construct время от времени выполняется 5 секунд?
    Но если всё настроено корректно, то значимых задержек не будет.
    Ответ написан
    1 комментарий
  • Какими знаниями о http/https должен обладать web-разработчик?

    aRegius
    @aRegius
    Python Enthusiast
    На мой взгляд, категория "обязательно должен знать" довольно субъективна. Есть конкретный работодатель - есть конкретные требования к требуемому набору инструментов. Т.е. типовые "обязалки" нужно, наверное, смотреть в инфо о вакансиях.

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

    Конечно, рекомендовать я могу лишь то, чем пользовался сам - вот эта книга.

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

    Посмотрите, она была в открытом доступе. Полагаю, ознакомившись с оглавлением (там конкретно разбито по главам, о чем там речь, какие темы... ) вы сами поймете, то ли это, что вам нужно и определитесь с тем, в каком объеме вам это нужно, чтобы чувствовать себя комфортно. Это, повторюсь, все довольно субъективно. (Я например, когда читал оглавление, сходу для себя отмечал: "О, это мне нужно... О, здорово, это тоже пригодиться... Это, пока, пропущу..." и т.п. В сухом остатке понял, что это то, что мне нужно.)

    P.S. Я еще новичок по меркам IT, поэтому копнуть глубже (если, конечно, вам нужно глубже) не в моей компетенции. Чем смог, как говорится. Успехов!
    Ответ написан
    1 комментарий
  • Как записать перечень RFID меток в ридер?

    MaxDukov
    @MaxDukov
    впишусь в проект как SRE/DevOps.
    1. да. Хотя на 15 метров я бы не расчитывал. И даже на 1 - очень сомнительно. по крайней мере не в бытовых условиях и не с пассивной меткой. Куда как более вероятно, что придется подносить метку к считывателю(т.е. сантиметры). Скорее всего там опечатка и пропущена буква "с". Т.е. читайте 1-15см.
    2. а вот это спросите у продавца. либо какая-то програмка, либо отдельный режим конфигурирования, при котором все поднесенные метки записываются в разрешенные. Китайцы - они такие китайцы....
    Ответ написан
    2 комментария
  • Как лучше синхронизировать файлы сайта?

    @lega
    Настало время когда одного сервера стало не хватать.

    Чего конкретно не хватать?

    поставил проксирующий nginx
    Зачем нагружать "балансер" двойным трафиком, пусть клиенты напрямую ходят на второй сервер.

    Так же можно не синхронизировать, а раскидывать файлы по серверам, четные на 1-й сервер, нечетные на 2-й, но лучше префикс сервера в ид (имени) файла сделать.

    Таким образом будет экономия диска и более эффективное использование трафика.

    Есть и плюсы в простом дублировании (ваш вариант):
    1) Второй сервер - как бекап, если один из серверов умрет, хотя для бекапов есть инструменты лучше.
    2) Если один сервер умрет, то сервис может* продолжить работать, но медленней, а с "шардингом" (вариант выше) часть контента будет не доступна.
    С другой стороны, что вы будете делать когда будет не хватать диска на сервере?

    Ещё вариант - перебросить файлы на S3

    > было бы идеально в режиме реального времени.
    В том месте где сохраняете файлы можете дописать, что-б сохранять файл так же и на примонтированный сервер либо через ssh.
    Если нет возможности дописать, то можно сделать внешний скрипт который будет "слушать" изменения ФС и реагировать (копировать на др. сервер).

    В таких инструментах как GridFS можно легко настроить репликацию - будет реалтайм. Но его напрямую не заюзать (нужно код писать), поэтому можете поискать конкурентов.
    Ответ написан
    Комментировать
  • Как правильно сделать файловые ресурсы в libvirt?

    gbg
    @gbg
    Любые ответы на любые вопросы
    Вы пытаетесь хорошо разделенную виртуалками структуру обратно объединить. Не надо так, ненадежно это.
    Ответ написан
  • Что быстрее один виртуальный сервер MySQL (4CPU, 4ГБ ОЗУ) или 2 MySQL на виртуальных машинах (2CPU, 2ГБ ОЗУ у каждого)?

    @Vasily_Pechersky
    Системщик с опытом
    Лучше один, но правильная настройка базы данных.
    Два инстанса дают накладные расходы на синхронизацию и сеть.
    Так же советуют memcached или аналоги. И если это сайт - чтобы был на той же машине, так как поступ по UNIX socket намного быстрее, чем по сети.
    Обратите внимание, что memcached тоже лучше подключать по UNIX socket.
    Ответ написан
    Комментировать
  • Что быстрее один виртуальный сервер MySQL (4CPU, 4ГБ ОЗУ) или 2 MySQL на виртуальных машинах (2CPU, 2ГБ ОЗУ у каждого)?

    mblp
    @mblp
    системный администратор
    чем меньше БД и чем меньше запросов происходит в БД - тем быстрее выполняется запрос.
    Но! Не зная архитектуры и размеров Ваших БД и кода сайтов, и еще 1000 мелочей, однозначно на Ваш вопрос ответить нельзя.
    Ответ написан
    Комментировать
  • Как получить реальный IP адрес в логах nginx?

    @inkvizitor68sl
    Linux-сисадмин с 8 летним стажем.
    set_real_ip_from 192.168.0.0;
    real_ip_header X-Real-IP;

    X-forwarded-* заголовки в данном случае использовать не стоит, в нём может оказаться больше одного адреса.
    Ответ написан
    Комментировать
  • Как получить реальный IP адрес в логах nginx?

    J_o_k_e_R
    @J_o_k_e_R
    Используйте на бэкэнде модуль http_realip_module.

    Пример:
    set_real_ip_from 192.168.1.0/24;
    set_real_ip_from 192.168.2.1;
    set_real_ip_from 2001:0db8::/32;
    real_ip_header X-Forwarded-For;
    real_ip_recursive on;
    Ответ написан
    Комментировать
  • Node.js + socket.io и mysql как организовать соединение?

    MarcusAurelius
    @MarcusAurelius Куратор тега Node.js
    автор Impress Application Server для Node.js
    Нужно открывать пул соединений через mysql.createPool используя библиотеку https://www.npmjs.org/package/mysql чтобы не случилось, что какое-то занято на долго запросом, а другое в ассинхронном режиме пришло и хочет быть обработано, пока предыдущее еще не вернулось. На событие разрыва соединения нужно навешивать его возобновление. Для случая с одним соединением так (для пула это нужно навесить на каждый конекшен:
    var mysql = require('mysql');
    connectMySql();
    
    function connectMySql() {
        var connection = mysql.createConnection(connectionString);
    
        connection.connect(function(err) {
            if (err) {
                setTimeout(function() {
                    connectMySql()
                }, 3000);
            }
        });
    
        connection.on('error', function(err) {
            if (err.code === 'PROTOCOL_CONNECTION_LOST') connectMySql();
        });
    }

    Если у вас небольшое приложение, то не стесняйтесь сделать конекшен или пул глобальным, чтобы он был сразу определен на обработчиках, а еще лучше сделайте для своего приложения неймспейс в глобальном контексте, например myApp = {} и в него запишите myApp.db = connection чтобы потом писать myApp.db.query(...); Посмотрите, какие красивые и лаконичные обработчики можно сделать, если не вестись на эти REST-суеверия и предубеждения против состояния на сервере и открытых долго конекшенов к БД и глобальных неймспейсов:
    // Обработчик для API по урлу http://127.0.0.1/example/app/examples/mysql/getCities.json
    module.exports = function(client, callback) {
      aliasNameMy.query('select * from City', function(err, rows, fields) {
        callback({ rows:rows, fields:fields });
      });
    }

    На гитхабе этот обработчик в контексте демо-приложения: https://github.com/tshemsedinov/impress/blob/maste...

    Ну и еще порекомендую свои утилиты для драйвера MySQL - https://www.npmjs.org/package/mysql-utilities
    и две статьи на Хабре, одну по этим утилитам - habrahabr.ru/post/198738 , а вторую по архитектуре в целом - habrahabr.ru/post/204958
    Ответ написан
    2 комментария
  • Асинхронная обработка request'а запроса node.js (express)?

    Fesor
    @Fesor
    Full-stack developer (Symfony, Angular)
    а что за ивент такой, readable? я думал что нужно на data подписываться и считывать тело запроса по кускам (по сути у вас так и выходит).
    Ответ написан
    5 комментариев