Ответы пользователя по тегу Nginx
  • Что выбрать для real-time обновление: Node.js, Comet или Ajax?

    Fesor
    @Fesor
    Full-stack developer (Symfony, Angular)
    у вас первый вариант всегда самый нагруженный, и далее вниз идут на снижение нагрузки.

    Апач с node.js никак не будет конфликтовать. phpDemon (я бы рекомендовал reactphp) тоже нормально живут.
    Ответ написан
    Комментировать
  • Как выявить 404 ошибку в nginx на 80 порту и перенаправить запрос на 8080 порт, который слушает apache сервер?

    Fesor
    @Fesor
    Full-stack developer (Symfony, Angular)
    у nginx для этого есть директива try_files.

    А зачем вам apache в этой цепочке? Можно же напрямую на php-fpm передавать запросы такие?
    Ответ написан
    9 комментариев
  • Как заставить работать ЧПУ в Nginx через php-fpm?

    Fesor
    @Fesor
    Full-stack developer (Symfony, Angular)
    причем тут yii? задача apache или в вашем случае nginx - перенаправить ВСЕ запросы на index.php. Далее yii уже разберет исходный урл. Так что проблема с конфигом или же с передачей параметров в fpm.

    проблема в теории в этой строчке:
    try_files $uri $uri/ /index.php?r=$request_uri;

    запрос надо перенаправлять на /index.php/$request_uri

    Есть же миллион примеров настройки всего этого под nginx. даже в документации
    www.yiiframework.com/doc/guide/1.1/ru/quickstart.a...
    Ответ написан
    3 комментария
  • Рабочие процессы в асинхронных серверах

    Fesor
    @Fesor
    Full-stack developer (Symfony, Angular)
    если на низком уровне то все просто. Главный процесс слушает сокет и делает accept. Затем есть 2 варианта: мультиплексировать запросы (из массива выбирать сокеты готовые для чтения через select/epoll и делать recv или accept в зависимости от того что за сокет готов предоставить данные) либо запихнуть обработку сокета в отедельный поток/процесс. Процессы надежнее ибо если он упадет то серверу от этого ничего не сделается.

    А далее уже идут оптимизации. Тот же nginx использует мультиплексирование внутри процессов-воркеров. Мультиплексирование позволяет более грамотно подойти к использованию ресурсов внутри одного процесса, а несколько процессов позволяют обрабатывать паралельно больше запросов. В то же время обработка этих запросов никак не затрагивает главный процесс слушающий сокет на предмет новых подключений.

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

    вообще погуглите про проблему 10k, можно нагуглить кучу алгоритмов обработки запросов.

    А что касается lighttpd то в документации описаны случаи когда нужно использовать многопроцессорность, и приведены возможные проблемы с модулями. Именно советов "не использовать" там нету.
    Ответ написан
    Комментировать
  • Можно ли заставить браузер не проверять валидность кеша?

    Fesor
    @Fesor
    Full-stack developer (Symfony, Angular)
    Собственно в этом и суть http кэша. Он шлет запросы к серверу и тот, в случае если контент не изменился просто отправляет ему заголовки и не пытается посылать файл. Это все же в разы быстрее (минимизируется время не только за счет уменьшения количества пакетов, но и за счет меньшего количества обращений к ФС).
    Ответ написан
    Комментировать
  • В чём преимущество асинхронных серверов перед PHP/nginx?

    Fesor
    @Fesor
    Full-stack developer (Symfony, Angular)

    Все сервера предназначенные для больших нагрузок являются асинхронными. То есть обработка новых входящих соединений происходит раньше, чем закончат работу текущие соединения.
    Преимущество готовых асинхронных серверов в том, что они готовы. Вы можете точно так же написать асинхронный сервер на php (socket + select), но это не настолько эффективно как в python и тем более в node.js, где этот функционал идет из коробки.

    Стандартный кейс применения node.js/Python twisted и любых других реализаций - обработка либо сырых tcp-соединений (например push уведомления) или же keep-alive для тех же целей. При обработке же коротких http запросов профит уже не так велик. Во всяком случае между php и python. node.js будет пошустрее, но и памяти он будет кушать чуточку больше.

    Ответ написан
    1 комментарий
  • nginx: несколько хостов на один index.php

    Fesor
    @Fesor
    Full-stack developer (Symfony, Angular)
    Я так понял смысл этого действия — экономия на спичках в виде отсутствия дублирования кода самой cms. Как минимум так делать не стоит, ибо вы не можете на 100% гарантировать то, что версия cms для каждого из сайтов будет одной и той же. В крайнем случае сделайте симлинк.
    Ответ написан
    Комментировать
  • nginx и apache

    Fesor
    @Fesor
    Full-stack developer (Symfony, Angular)
    Видать настроили неправильно.
    Ответ написан