• Почему не работает error_page в nginx?

    @xtreme
    Снимаю порчу по SSH :)
    Рискну предположить, что дело в отсутствии fastcgi_intercept_errors on; в секции с php.
    nginx.org/ru/docs/http/ngx_http_fastcgi_module.htm...
    Ответ написан
  • Как правильно перенести httpd.conf с apache 2.2 на apache 2.4?

    @xtreme
    Снимаю порчу по SSH :)
    А вы не добавляйте домены в httpd.conf
    У вас же FreeBSD, если я верно помню. Там в /usr/local/etc/apache24 есть директория Includes, а в дефолтном, идущем в комплекте httpd.conf в самом низу строка инклюда Include etc/apache24/Includes/*.conf которая подключает все файлы с расширением .conf в директории Include в httpd.conf.
    Перенесите конфигурацию ваших доменов/сайтов в отдельные файлы в Includes/site1.conf, Includes/site2.conf и т.д.
    Дефолтный httpd.conf, кстати, требует крайне мало изменений. Чаще всего изменения от дефолтного конфига в таких параметрах:
    EnableSendfile off
    LoadModule php5_module libexec/apache24/libphp5.so #при инсталляции mod_php5 у вас уже должно было это появиться
    Listen 127.0.0.1:80 #Или другой порт, если у вас используется nginx фронтендом, если нет - оставить Listen 80
    ServerName localhost:80 #Я ставлю так, чтобы не морочиться с /etc/hosts и апач не ругался на невозможность разрешить имя
    Require all granted #Если требуется. Это как бы замена Deny, Allow в apache-2.2
    #Также при большом желании можно еще поменять DirectoryIndex, но не всем это надо, да и можно переопределить в отдельном файле
    DirectoryIndex index.php index.html

    В остальном, если перенесете виртхосты в отдельные файлы в Includes - практически ничего не понадобится, ибо конфиги практически совместимы. Надо будет только, если у вас используется в Directory
    Order allow,deny
    Allow from all

    заменить на
    Require all granted
    если не разрешили в основном файле.
    В остальном - уже смотрите по выдаваемым apachectl configtest замечаниям и по логам.
    Так что проще взять дефолтный конфиг, идущий с апачем и поменять нужные строки, а адаптировать старый конфиг от apache-2.2 выйдет дольше по времени, плюс к тому, можете не учесть каких-то новых параметров.
    Ответ написан
    Комментировать
  • Ошибка компиляции php5.6 на freebsd 8.4. Где взять libiconv.la?

    @xtreme
    Снимаю порчу по SSH :)
    Я же вроде писал в соседней ветке - обнови libtool.
    Ответ написан
    Комментировать
  • Не запускается apache 2.2 после обновления PHP. Как исправить?

    @xtreme
    Снимаю порчу по SSH :)
    У тебя (ничего, что на "ты"), скорее всего не включен модуль libphp5.so в httpd.conf (ну или в одном из конфигов).
    Обычно, если apache22, в конфиге /usr/local/etc/apache22/httpd.conf примерно на 75 строке должно быть такое:
    LoadModule php5_module        libexec/apache22/libphp5.so
    рядом с другими LoadModule. Либо в одном из конфиг-файлов.
    При деинсталляции php (и про portupgrade) эта строка удаляется, а обратно, возможно, не воткнулась.
    Ответ написан
  • Nginx reverse proxy в зависимости от ответа сервера?

    @xtreme
    Снимаю порчу по SSH :)
    В такой ситуации стоило бы сначала разобраться, почему отдается 401 от бэкенда. И на бэкенде заменил 401 на другую ошибку (как пример 404). Например, если на бэкенде тоже nginx, то это делается просто директивой error_page. Ну а на фронтенде включить второй сервер в апстрим с параметром backup и proxy_next_upstream http_404;
    В этом случае запрос уйдет на второй бэкенд.

    Как вариант немного посложнее (я бы, например, поступил так) - взять исходники nginx, найти там модуль proxy, написать по образу и подобию обработки других ошибок кусок кода для обработки http_401, сделать патч на будущее (пригодится при обновлениях), собрать свой пакет с измененными исходниками и проапгрейдиться. Ну а дальше по накатанной - proxy_next_upstream http_401; и сервер в апстриме с параметром backup.

    В любом случае, маловато информации - почему возникает ошибка? Она там должна быть или это какой-то баг? Можно ли исправить баг, если это баг? Есть ли смысл в другом бэкенде, если получен 401? Возможно, если не надо дальше обрабатывать запрос, а отдавать запросу заглушку, просто отдать заглушку?
    Ответ написан
  • Apache2 virtual host, почему не перенаправляет?

    @xtreme
    Снимаю порчу по SSH :)
    apache2ctl configtest && apache2ctl graceful
    ??
    Перезапускали апач-то? Больше в конфигах нигде site.ru не упоминается?
    Ответ написан
  • Временами долгий отклик от поддомена. nginx поддупливает?

    @xtreme
    Снимаю порчу по SSH :)
    1. Если измеряете время прохождения пакета с помощью ping - приблизьте размер пакета к реальному в 1500 байт и не надейтесь на 4 пинга. Потому как мелкими пакетами в 32 или 64 байта сложно заметить проблемы в сети.
    ping -l 1400 -t static.mysite.com
    2. Я наших вебников когда-то шваброй гонял за выполнение крона веб-запросом к PHP. Что мешает вписать в кронтаб выполнение любой команды без дергания веб-сервера? Тот же PHP спокойно может выполняться из шелла. К тому же, рано или поздно ваш урл кто-то найдет (тот же гугл или яндекс соберет данные и пойдет проверить, что там в урле) и тогда беды не миновать.
    3. Можете пояснить, зачем делать по крону OPTIMIZE? И как часто вы его делаете?
    4. Время отклика у вас большое. Сервер на другом континенте? Например, Вы - в Европе, а сервер - в Нью-Йорке. В таком случае нет ничего удивительного в подтупливании.
    5. Сервер VDS? В этом случае тоже вполне возможны подтупливания, если используется HDD, либо при оверсейлинге у хостера.
    6. Используете Chrome и в соседних вкладках также открыт ваш сайт? Учтите, что Chrome устанавливает не более 6 соединений к одному узлу.
    Неплохо было бы посмотреть на вкладку Network в инспекторе браузера, чтобы увидеть тайминги при подтупливании.
    7. Не перехватывается ли запрос картинки другим локейшном? Возможно, запрос промахивается и попадает в обработку, например, в PHP-скрипт, который уже сам забирает файл с диска и отдает nginx-у.
    Ответ написан
  • Как лучше реализовывать рассылку новостей?

    @xtreme
    Снимаю порчу по SSH :)
    Для начала стоит изучить правила вашего хостинга. Вполне возможно, что после первой же рассылки хостер вас просто заблочит. Плюс к тому, т.к. вы на хостинге не один, могут возникнуть проблемы с правильным формированием писем (подписи-фигодписи, заголовки и др.), а также с их доставкой - IP-адрес сервера, на котором находится ваш сайт у хостера, уже может быть в блэклистах и заранее определяться почтовыми сервисами, как спам.
    Выход (кроме ухода на свой VDS и настройки своей почтовой системы) может быть действительно в покупке услуг сторонних проектов по формированию рассылки - их можно найти в поисковике. К тому же, при вашем количестве почты возможно вписаться в самый минимальный тариф, если вообще не в бесплатный.
    Ответ написан
    Комментировать
  • Как снизить нагрузку сервера?

    @xtreme
    Снимаю порчу по SSH :)
    Единого совета тут дать нельзя.
    Есть нечто общее для облегчения страданий.
    1. (Тут я советую вообще всем направо и налево) Поставить nginx на отдачу статических файлов (не забыв включить сжатие), разгрузив апач. Этим немного снизится нагрузка при отдаче многочисленных JS и CSS-файлов. Т.е. общее самочувствие немного улучшится.
    2. Включить slow-log в MySQL, чтобы увидеть медленно выполняющиеся запросы и запросы, которые не используют индексы. Люди часто забывают про составные индексы и в результате SELECT на пару полей, который должен в результате вернуть два значения, лопатит всю таблицу в несколько сотен тысяч записей.
    3. Профилирование PHP. Поставить для PHP xdebug или XHProf. На примере xdebug - включил модуль, рестартнул/релоаднул апач, походил по самым тормозным ссылкам (или подождал несколько секунд, пока пользователи по ним походят), закомментил модуль, опять релоаднул апач, чтобы вернуть в нормальное состояние. Ну а затем QCacheGrind в руки, открываем самые жирные файлы дампов и смотрим, куда тратится время при выполнении...
    Ответ написан
    Комментировать
  • Как настроить vpn?

    @xtreme
    Снимаю порчу по SSH :)
    Dec  8 17:31:31 murad1986-GA-970A-DS3 pppd[6214]: MS-CHAP authentication failed: Access denied
    Dec  8 17:31:31 murad1986-GA-970A-DS3 pppd[6214]: CHAP authentication failed

    Тут вроде как написано все... не прошла аутентификация. Либо неверный логин и пароль, либо... неверный пароль и логин.
    Ответ написан
    Комментировать
  • Это filezilla, что тут надо делать?

    @xtreme
    Снимаю порчу по SSH :)
    Очевидно - ввести правильный логин и пароль.
    Ответ написан
    Комментировать
  • Как настроить nginx для dev?

    @xtreme
    Снимаю порчу по SSH :)
    1. Настроить log_format для отображения нужной информации в access_log
    Например:
    log_format upstreamlog '$remote_addr - [$time_local] "$host" "$request" $status ($bytes_sent) "$http_referer" "$uri $args" [$request_time] '
      '"$gzip_ratio" Cache:"$upstream_cache_status" "$content_length" "$http_user_agent" "Upstream: $upstream_addr response $upstream_response_time sec."';


    2. Выставить у нужного виртхоста этот logformat
    access_log /var/log/nginx/my-virthost-nginx.access_log upstreamlog;


    3. Зарелоадить nginx
    service nginx reload

    4. Прицепиться к логу tail-ом в консоли.
    tail -f /var/log/nginx/my-virthost-nginx.access_log


    Чтобы было красивее - поставить пакет ccze из репозиториев (yum install ccze например) и цепляться к логу примерно так:
    tail -f /var/log/nginx/my-virthost-nginx.access_log | ccze -A
    Ответ написан
    9 комментариев
  • Как задать redirect 301?

    @xtreme
    Снимаю порчу по SSH :)
    RewriteCond %{HTTP_HOST} ^domain\.ru$
    По логике должно быть так, если у вас оба домена на одном сервере.
    Ответ написан
    Комментировать
  • Странное поведение HttpURLConnection, как понять?

    @xtreme
    Снимаю порчу по SSH :)
    HTTP 405 - Method Not Allowed.
    К правам на файлы вряд ли имеет какое-то отношение. Скорее к настройке веб-сервера.
    Такая ошибка возникает, если, например, на сервере (или к определенному url) разрешены только POST-запросы, а вы пытаетесь послать туда GET.
    Или, например, используется метод OPTIONS (или HEAD), а на сервере разрешены только GET и POST.
    Ответ написан
    1 комментарий
  • Как правильно конвертировать сертификат?

    @xtreme
    Снимаю порчу по SSH :)
    Для подписи кода используется не тот же сертификат, который используется для HTTPS у сайта.
    Его надо оформлять/покупать дополнительно. И его оформление частными лицами иногда вызывает некоторые трудности, потому как выдается он в основном организациям (хотя бы и ИП), а не частным лицам.
    Ответ написан
    Комментировать
  • Как брать обновленные данные из базы?

    @xtreme
    Снимаю порчу по SSH :)
    Я тут не сильный специалист в плане кода, но...
    При выполнении update_color перед запросом в БД (или после) заставить пользователя зарелоадить страницу (это если некритично, что долго), либо Javascipt-ом менять в браузере нужный блок в CSS.
    Ответ написан
  • Настройка редиректа на https nginx?

    @xtreme
    Снимаю порчу по SSH :)
     Может я не врубаюсь, но у вас тут что-то непонятное. Куча локейшнов, а в конце - редирект. А зачем тогда тут куча локейшнов (+вложенных локейшнов)? Эта куча все равно не работает.

    server {
      listen 99.99.999.999:80;
      server_name test.ru www.test.ru;
      index index.html index.php;
      access_log /var/www/httpd-logs/test-test.ru.access.log ;
      error_log /var/www/httpd-logs/test-test.ru.error.log;
    
      location /test/ {
        root /var/www/test/data/www/test.ru;
        #Тут параметры для локейшна test и т.д.
      }
      
      location / {
        return 301 https://test.ru$request_uri;
      }
    }
    Ответ написан
    1 комментарий
  • Как нужно делать рассылку со своего сайта (сервера)?

    @xtreme
    Снимаю порчу по SSH :)
    1. Изучить рекомендации по рассылкам у крупных почтовых сервисов (Google, Yandex, Mail.ru). При подготовке писем для рассылки строго следовать их рекомендациям.
    2. Зарегистрироваться в postmaster.yandex.ru, postmaster.mail.ru, чтобы следить за ходом рассылки писем.
    3. Отлавливать недоставленные письма, убирать их из листов рассылки, дабы не мусорить.
    4. Сделать механизм отписки от рассылки (это один из критериев пункта 1), причем 100% работающий в один клик.
    5. Мониторить нажатие кнопки "Спам" в вышеуказанных почтовых сервисах, также сразу исключать их из будущих рассылок.

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

    Обязательное условие - соблюдать все почтовые правила и не пренебрегать цифровыми подписями - SPF, DKIM, DMARC, правильные записи в DNS (A, MX, PTR).
    Ответ написан
    10 комментариев
  • Почему сетевая карта перестала работать без ограничения скорости?

    @xtreme
    Снимаю порчу по SSH :)
    А ты когда отошел - кабель не пнул нигде случайно?
    Обычно, если какая-то из жил в витой паре неисправна, то жесткое ограничение скорости помогает (что в твоем случае видно).
    У меня подобное было, когда контакты в розетке подокислились, в которую кабель провайдерский приходит. Возможно также, на контактах самой сетевки окисел, либо пыль... Кабель прозвонить опять же не помешает.

    Как вариант - зайти в BIOS, в современных BIOS есть проверка сетевого кабеля. Покажет тебе, если по какому-то из 8 (если гигабит) или из 4-х (если 100Mbit) нет коннекта.
    Ответ написан
    4 комментария
  • Как помощью Ansible модуля lineinfile, заменить первое совпадение после заданной строки?

    @xtreme
    Снимаю порчу по SSH :)
    Один таск - один модуль.
    Если в одном таске напишешь два модуля - исполняется только последний.
    Ответ написан
    Комментировать