Заметки по nginx
= точное совпадение ^~ - не пробовать другие регекспы после совпадения, более строгие локейшены, чем простые * - регистро зависимый регексп ~* - регистро независимый регексп
= точное совпадение ^~ - не пробовать другие регекспы после совпадения, более строгие локейшены, чем простые * - регистро зависимый регексп ~* - регистро независимый регексп
Если вы столкнулись с ошибкой, подобной той, что написана в заголовке, это может означать, что ваше приложение может не работать при попытке использовать расширение memcache из-за неправильной или отсутствующей сборки расширения. “php: symbol lookup error: /usr/local/lib/php/extensions/no-debug-non-zts-20131226/memcache.so: undefined symbol: mmc_queue_pop” Чтобы исправить эту проблему, вам нужно передать опцию «fgnu89-inline» компилятору с переменной среды CFLAGS при установке пакета через pecl. Эта опция указывает компилятору C использовать традиционную семантику GNU для встроенных функций....
Очень краткая заметка с примером как можно ограничить скорость обработки запросов от IP адресов, но исключив при этом роботов с определённым “юзер агентом”. 1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 22 # ref: https://gist.github.com/supairish/2951524 # IP адреса в белом списке - для них не будет применяться лимитирование geo $geo_whitelist { default 0; 1.2.3.4 1; 2.3.4.5/24 1; } # Юзер агенты в белом списке - для них не будет применяться лимитирование map $http_user_agent $whitelist { default $geo_whitelist; ~*(google) 1; } # Если в белом списке 0, то помещаем "binary IP address" в $limit для применения к ним ограничений map $whitelist $limit { 0 $binary_remote_addr; 1 ""; } limit_req_zone $limit zone=perip:30m rate=1r/s;
В этой статье опишу небольшую инструкцию для установки сертификата с помощью acme.sh на базе алгоритма ECDSA P-384, этот алгоритм имеет высокий уровень быстродействия и защищенности. Например 256 битный ECDSA соответствует 3072 битному RSA по степени защиты, но при этом скорость работы в несколько раз выше. Установка acme.sh 1 curl https://get.acme.sh | sh Получение сертификата Метод 1 : использование одной и той же директории для всех acme challenge запросов Первоначально нам необходимо создать файл acme....
Во время отладки иногда необходимо сначала выявить проблему и понять это проблема из-за PHP или Nginx делает что-то не правильно. В этом случае может пригодиться cgi-fcgi. Установка cgi-fcgi на Ubuntu Достаточно запустить команду: 1 apt-get install libfcgi0ldbl Подключение к PHP-FPM на прямую Предполагаем что вы запустили PHP-FPM используя TCP/IP с IP и PORT значениями 127.0.0.1 и 9000 соответственно. Ниже приведены некоторые примеры кода, которые вы можете использовать. Тест ответа PHP-FPM Ping Вы можете запустить следующий код из командной строки что бы протестировать ответ FPM:...
Сложность в том, что некоторым скриптам необходимо знать через какую схему они работают, http, или https. Таким образом они формируют ссылки, а иногда принудительно перенаправляют клиентов куда нужно. Из-за не верной настройки серверного ПО переадресация не может завершиться и браузер покажет нам ошибку ‘too many redirects’. В статье рассмотрим две схемы: nginx (front1, server2) -> nginx (front2, server1) -> php-fpm (back, server1) nginx (front1, server2) -> nginx (front2, server1) -> apache (back, server1)...
Давно искал что-то подобное. Конфигурация nginx позволяет перенаправлять посетителей сайта на мобильную версию по UserAgent‘у. И казалось бы… это совсем не сложно, но у нас есть ещё и плюшки. Плюшки в том что мы можем добавить в адресную строку параметр для переключения на полную версию, или обратно на мобильную. Всё это записывается в cookies и сохраняется на заданное нами время. т.е. людей не будет напрягать то, что их при каждом входе принудительно перенаправляет на мобильную версию, а они то хотят полную....
Пару лет назад думал что настроил на вэб сервере поддержку ipv6, все онлайн тесты проходили на ура. Но сейчас, настроив у себя ipv6, понял что при обращении к сайтам получаю в ответ “403 Forbidden”. Не приятно конечно, но надо что-то делать. Тогда, при настройке, была информация что нужно добавлять в конфиг сервера запись вида 1 listen [::]:80 ipv6only=on; при чём если её добавлять в несколько виртуальных серверов, то nginx выкидывал ошибку....
Заметка об использовании переменных в домене на web сервере nginx, или динамические поддомены. Важно не забыть выше расположить статические поддомены, чтоб динамические их не перебивали. Ну и примеры ниже: 1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 server { server_name www.example.com; location / { proxy_pass 127.0.0.1:80; } } server { server_name ~^(?<dynamic>[a-z0-9\-]+)\.example.com$; location / { proxy_pass 127.0.0.1:80/sites/$dynamic$uri$is_args$args; } } Вот ещё вариант: Если у вас много поддоменов или вы хотите создавать их автоматически, тогда имеет смысл создать одну универсальную конфигурацию, которая будет обслуживать все поддомены, направляя запросы посетителей в соответствующие каталоги....
Http-соединения могут быть переадресованы на https с помощью модуля apache mod_rewrite, который должен быть доступен в любой версии apache. Создайте файл с именем .htaccess в корневом каталоге сайта, который содержит следующие строки: 1 2 3 RewriteEngine On RewriteCond %{HTTPS} off RewriteRule (.*) https://%{HTTP_HOST}%{REQUEST_URI} Если Вы используете ISPConfig 2 или 3, Вы можете также добавить эти строки в поле директив apache в настройках сайта, вместо их добавления в файл a .htaccess. Но метод с использованием файла ....