Задать вопрос
Ответы пользователя по тегу Nginx
  • Какого пользователя и группу поставить для Wordpress?

    HeadOnFire
    @HeadOnFire
    PHP, Laravel & WordPress Evangelist
    Ту, под которыми работает сам сервер. Обычно это www-data:www-data
    Ответ написан
    1 комментарий
  • Можно ли удалить модуль ngx_http_charset_module?

    HeadOnFire
    @HeadOnFire
    PHP, Laravel & WordPress Evangelist
    Оставьте его в покое. Это родной, стандартный, мелкий модуль, удаление которого уж точно не поможет вам "ускорить сервер", а вот неожиданные грабли в другом месте вполне может вызвать.

    И вообще, используйте стандартную сборку под вашу ось. Не занимайтесь ерундой, выпиливая якобы ненужные модули, видимого прироста производительности вам это не даст. Лучше займитесь оптимизацией кода приложений. А если ваш проект оптимизировать уже по максимуму, а на сервера такая высокая нагрузка, что микрооптимизации Nginx могут иметь значение - наймите узкоспециализированного гуру по этому вопросу, одного из разрабов Nginx например. Но я сильно-сильно сомневаюсь что у вас подобная ситуация.
    Ответ написан
    Комментировать
  • Как правильно сделать 301 redirect на https?

    HeadOnFire
    @HeadOnFire
    PHP, Laravel & WordPress Evangelist
    Редиректы надо делать на сервере. Какой у вас сервер? Nginx, Apache?
    Для апача
    RewriteCond %{HTTPS} off
    RewriteRule .* https://%{HTTP_HOST}%{REQUEST_URI} [L,R=301]
    RewriteCond %{HTTP_HOST} !^www\.
    RewriteRule .* https://www.%{HTTP_HOST}%{REQUEST_URI} [L,R=301]

    Правда, давно с ним не работал, может кто-то поправит. Ну или проверяйте.

    UPDATE: Поскольку оказалось что у вас таки Nginx, вот конфиг для него:
    # http to https
    server {
           listen         80;
           listen         [::]:80;
           server_name    example.com www.example.com;
           return         301 https://www.example.com$request_uri;
    }
    # non-www to www via https
    server {
            listen 443 ssl;
            listen [::]:443 ssl;
            ssl_certificate /etc/ssl/certs/*.domain.pem;
            ssl_certificate_key /etc/ssl/private/*.domain.pem;
            server_name example.com;
            return 301 https://www.example.com$request_uri;
    }
    # Main configuration
    server {
            listen 443 ssl http2 default_server; # http2 нужен если вы хотите использовать HTTP/2, иначе не нужно
            listen [::]:443 ssl http2 default_server; # http2 нужен если вы хотите использовать HTTP/2, иначе не нужно
            server_name www.example.com;
            ssl_certificate /etc/ssl/certs/*.domain.pem;
            ssl_certificate_key /etc/ssl/private/*.domain.pem;
            # Остальная конфигурация
            ...
        
    }
    Ответ написан
    22 комментария
  • Почему происходит циклическая переадресация на Wordpress мультисайт при входе в админку дочерних сайтов (сервер Nginx)?

    HeadOnFire
    @HeadOnFire
    PHP, Laravel & WordPress Evangelist
    Воу, какой .htaccess если у вас Nginx? Этот файл используется сервером Apache. У Nginx свои кончики. Смотрите сюда.
    Ответ написан
    Комментировать
  • Как настроить NGINX для ЧПУ Wordpress?

    HeadOnFire
    @HeadOnFire
    PHP, Laravel & WordPress Evangelist
    Все, что нужно для ЧПУ в WordPres + Nginx это:

    1. try_files $uri $uri/ /index.php?$args; в конфиге
    2. Пересохранить пермалинки (WordPress admin - Settings - Permalinks)

    Если не работает - проблема в другом месте. Надо смотреть логи, начните с Nginx access.log и error.log
    Ответ написан
    Комментировать
  • Как оптимизировать сервер под тяжелые скрипты с небольшим количеством пользователей?

    HeadOnFire
    @HeadOnFire
    PHP, Laravel & WordPress Evangelist
    Я понимаю, что зная PHP хочется решить эту задачи с его помощью. Но вот смысла в этом ровно ноль, обычная лень. Строковые данные можно спокойно обрабатывать вообще через sed, это будет на порядки быстрее. А PHP сделать всего лишь интерфейсом.
    Ответ написан
    Комментировать
  • Как настроить доступ по ip в nginx?

    HeadOnFire
    @HeadOnFire
    PHP, Laravel & WordPress Evangelist
    # Возможные контексты: http, server
    server {
        ...
        # Запретить доступ всем кроме разрешенных IP
        allow 192.168.1.0/24;
        deny all;
        ...
    }
    Ответ написан
    2 комментария
  • Как рассчитать какую посещаемость выдержит мой VPS?

    HeadOnFire
    @HeadOnFire
    PHP, Laravel & WordPress Evangelist
    Память 256Мб - самое узкое место. Я вообще не понимаю зачем так над собой издеваться, если серваки с 1 или 2Гб стоят аюсолютно адекватных денег.
    Ответ написан
    Комментировать
  • Как лучше оптимизировать сервер для WordPress?

    HeadOnFire
    @HeadOnFire
    PHP, Laravel & WordPress Evangelist
    1. Убрать из связки Apache
    2. Установить крайний Nginx
    3. Установить к нему PHP 7 (FPM, естественно)
    4. Установить Memcached
    5. Заменить БД с MySQL На MariaDB 10
    6. Еще можно перейти с http на https, с использованием протокола HTTP/2 (сам по себе SSL отжирает кусочек времени запроса, но супербыстрый протокол компенсирует)

    Даже со стандартными конфигами будет заметно шустрее при использовании заметно меньшего количества ресурсов. Дальнейшая работа - это уже тюнинг. Нужно смотреть конкретные конфиги, конкретный сайт, логи и тд. Потому как все дальнейшие настройки от сайта к сайту меняются. Более подробная консультация - не предмет обсуждения на Тостере, а предмет непосредственной работы с сервером.
    Ответ написан
    4 комментария
  • Как настроить SSL + Nginx на несколько доменов на одном VPS?

    HeadOnFire
    @HeadOnFire
    PHP, Laravel & WordPress Evangelist
    Для поддержки нескольких разных сайтов и сертификатов на одном IP используется SNI (Server Name Indication). В консоли сервера выполните nginx -V - там должна быть строчка "TLS SNI support enabled". Если ее нет - какая версия Nginx? Подозреваю, что чуть старенькая, так как используете SPDY. А это отдельный вопрос - зачем использовать SPDY если уже давно есть HTTP/2.
    Ответ написан
  • Настройка NGINX. Не работает сайт. Как правильно настроить?

    HeadOnFire
    @HeadOnFire
    PHP, Laravel & WordPress Evangelist
    1. Какая версия Nginx
    2. Базовый конфиг
    server {
    
            listen 80;
            server_name example.com;
    
            root /var/www/example.com/httpdocs;
            index index.php index.html;
    
            location / {
                    try_files $uri $uri/ /index.php?$args;
            }
    
            location ~ \.php$ {
                    fastcgi_split_path_info ^(.+\.php)(/.+)$;
                    try_files $uri =404;
                    fastcgi_pass unix:/var/run/php5-fpm.sock;
                    fastcgi_index index.php;
                    fastcgi_param SCRIPT_FILENAME $document_root$fastcgi_script_name;
                    include fastcgi_params;
            }
    
    }


    Остальное можно пока отключить и добавлять по мере необходимости.
    Ответ написан
  • Как настроить 1 nginx на много Апачей?

    HeadOnFire
    @HeadOnFire
    PHP, Laravel & WordPress Evangelist
    Nginx должен будет отдавать только статику, а все остальные запросы слать на Апач (при этом передавая правильные параметеры и т.д.)

    А есть действительно серьезные основания использовать Apache? Nginx прекрасно умеет проксировать напрямую на тот-же PHP-FPM (для PHP), на Passenger или Unicorn (для Ruby) и так далее. Зачем Apache? По старой-доброй привычке?
    Если такая конфигурация возможна - как думаете могут ли быть какие то потенциальные проблемы с ней?

    А тормозного, медленного, и жрущего ресурсы Apache вам недостаточно?
    Ответ написан
  • Как сделать доступ к файлу по определеному url и нужно ли это?

    HeadOnFire
    @HeadOnFire
    PHP, Laravel & WordPress Evangelist
    Ответ уже как бы есть, я только не могу понять, зачем городить сторонние файлы, делать редиректы и тд. Есть же такая удобна штука как хуки. Например - init, template_redirect, template_include. Вместо целого файла регистрируете query_var, можно даже rewtie_rule свой (example.com/auth/). При попадании на этот урл в хуке init или template_include стартуете авторизованную сессию, если есть токен, делаете что надо (например сверяете токен с таковым в таблице wp_usermeta), дальше отправляете на нужную страницу (откуда начали авторизацию). Гибкость фантастическая. И все - родные фичи WP, а не костыли. Да, это более advanced topic, чем просто сторонний файлик, но и более гибкий в результате, более надежный и безопасный. Вот в вашем случае, например, а что, если токен левый отправить? Проверки есть? Какая-нибудь API key pair есть? Так чтобы один ключик на том сервисе где логинитесь, а второй - на самом сайте. Понятно, что вы детально не раскрыли механизм авторизации, но со стороны здесь просматривается не очень надежное место.
    Ответ написан
    6 комментариев
  • Как добавить в кешированную страницу данные авторизованного пользователя?

    HeadOnFire
    @HeadOnFire
    PHP, Laravel & WordPress Evangelist
    Я делаю javascript'ом. Чем не нравится решение? В том месте в шапке сайта, где у нас аватар + имя пользователя и иконка его меню, я вывожу по умолчанию "заглушку" и вращающийся спиннер. Проверяем куку локальную, если авторизован - выводим туда аватар + имя, не авторизован - выводим ссылки на вход и регистрацию. Если это сделать с легкой анимацией, то смотрится вполне отлично. Если куки нет, то эту "заглушку" может быть видно 0.5-3 секунды, зависит от того как долго будет срикпт с сервером общаться, если же кука есть, то чаще всего вообще никто ничего не заметит. Дабы сократить FOUC данный скрипт стоит в самом хтмл прямо в том месте где надо. Чтобы не ждать всех загрузок и т.д. а выполниться максимально быстро.
    Ответ написан
  • Как в nginx ограничить доступ к сайту по расписанию?

    HeadOnFire
    @HeadOnFire
    PHP, Laravel & WordPress Evangelist
    Вообще, неработающий сайт (когда веб-сервер его не обслуживает и получается ошибка и пичалька) - это нехорошо, нелогично, несеошно и вообще нечеловечно (не-юзер-френдли). Куда логичнее отнестись к своим посетителям с должным уважением, и вместо магии с конфигами сервера, в самом сайте на входе сделать проверку. Если время "рабочее" - пустить на сайт. Нерабочее - показать фигу и надпись "приходите через ХХ часов ХХ минут, мы работаем с ХХ до УУ.
    Ответ написан
    Комментировать
  • Как оптимизировать связку Nginx + Passenger + Ruby on Rails

    HeadOnFire
    @HeadOnFire
    PHP, Laravel & WordPress Evangelist
    Откажитесь от Passenger раз и навсегда, он прожорливый. У меня на сервере с 1Гб оперативки вместе с десятком сайтов на WP (Nginx, PHP5-FPM, Memcached, MariaDB) параллельно крутится Redmine на Unicorn. Изначально по урокам пытался настроить через Passenger - куча гемора и ресурсы жрало жестко. После перехода на Unicorn все летает. Еще есть вариант с Thin, но я сам не пробовал.
    Ответ написан
    Комментировать