Нужна помощь?Наши инженеры бесплатно помогут с любым вопросом за считанные минутыНаписать нам
основного сервера добавьте:\r\n```nginx\r\nlocation ~ \\.php$ {\r\n fastcgi_pass unix:/run/php/php8.1-fpm.sock; # или ваш сокет\r\n fastcgi_index index.php;\r\n include fastcgi_params;\r\n fastcgi_param SCRIPT_FILENAME $document_root$fastcgi_script_name;\r\n\r\n fastcgi_cache fcgi_cache;\r\n fastcgi_cache_valid 200 301 302 60m; # кэшируем успешные ответы на 60 минут\r\n fastcgi_cache_valid 404 1m;\r\n fastcgi_cache_bypass $http_cookie; # не кэшируем при наличии куки\r\n fastcgi_no_cache $http_cookie; # не сохраняем в кэш при наличии куки\r\n}\r\n```\r\n\r\n### Полезные замечания\r\n- Кэширование не должно применяться к страницам с авторизацией, личным кабинетом, корзиной — используйте `fastcgi_cache_bypass` и `fastcgi_no_cache` для таких URI.\r\n- Для динамических сайтов (Bitrix, WordPress) часто кэшируют только GET-запросы без куки.\r\n- После изменений перезапустите NGINX:\r\n```Bash\r\nsudo nginx -t # проверка конфигурации\r\nsudo systemctl reload nginx\r\n```\r\n\r\n- Очистка кэша вручную (если требуется):\r\n```Bash\r\nsudo rm -rf /var/cache/nginx/*\r\nsudo rm -rf /var/cache/nginx-fcgi/*\r\n```\r\n\r\n!!! info Помощь \r\n Если у вас возникли вопросы или требуется помощь, пожалуйста, свяжитесь с нами через [систему тикетов](/my/tickets/) — мы обязательно вам поможем!","images":[],"updated_at":"2026-02-04T17:19:01+03:00","status":"published","type":"article","get_edit_url":"/admin/dream/article/91/change/","children":[]},{"id":92,"title":"Мониторинг Nginx в реальном времени","slug":"monitoring-nginx","priority":0,"summary":"Как использовать утилиту ngxtop для анализа access-логов веб-сервера.","tags":[{"id":55,"name":"VPS","slug":"vps","icon":null},{"id":67,"name":"Dedicated","slug":"dedicated","icon":null},{"id":77,"name":"Виртуальный сервер","slug":"virtual-server","icon":"https://fornex.com/media/dream_tag_icon/server.svg"},{"id":78,"name":"Выделенный сервер","slug":"dedicated-server","icon":null},{"id":80,"name":"Администрирование","slug":"management","icon":null},{"id":81,"name":"Мониторинг","slug":"monitoring","icon":null},{"id":100,"name":"Nginx","slug":"nginx","icon":null}],"body":"**Ngxtop** — удобная утилита, которая мониторит access-логи Nginx и выводит информацию в консоль в удобном формате, похожем на классическую программу `top`.\r\n\r\nОна позволяет быстро увидеть текущую нагрузку, популярные запросы, IP-адреса, статус-коды и другие полезные метрики без необходимости вручную разбирать логи.\r\n\r\n### Установка ngxtop\r\nУстановка выполняется командой:\r\n```bash\r\npip install ngxtop\r\n```\r\n\r\n### Основные команды\r\n```bash\r\nngxtop [options]\r\nngxtop [options] (print | top | avg | sum)\r\n```\r\n\r\nПолный список доступных опций можно посмотреть командой:\r\n```bash\r\nngxtop --help\r\n```\r\n\r\nПо умолчанию ngxtop автоматически определяет местоположение access-лога из конфигурационного файла Nginx (`/etc/nginx/nginx.conf`). Если в конфигурации обнаружено несколько логов, утилита предложит выбрать нужный:\r\n```bash\r\nMultiple access logs detected in configuration:\r\n1. /var/log/nginx/access502.log\r\n2. /var/log/nginx/access.api.log\r\n3. /var/log/nginx/access.img.log\r\n4. /var/log/nginx/access.log\r\n5. /var/log/nginx/access404.log\r\n```\r\n\r\n### Полезные примеры использования\r\n1. **Просмотр запросов со статусом 404**\r\n```bash\r\nngxtop -i 'status == 404' print request status\r\n```\r\n\r\nПример вывода:\r\n```bash\r\nrunning for 130 seconds, 150 records processed: 1.15 req/sec\r\n\r\nrequest, status:\r\n| request | status |\r\n|----------------------------------------------|--------|\r\n| GET /browserconfig.xml HTTP/1.1 | 404 |\r\n| GET /employer/my/archive/2107569/98483600/ | 404 |\r\n| GET /jobs/1045534/ HTTP/1.1 | 404 |\r\n```\r\n\r\n2. **Топ IP-адресов по количеству запросов**\r\n```bash\r\nngxtop top remote_addr\r\n```\r\n\r\nПример вывода:\r\n```bash\r\nrunning for 8 seconds, 1759 records processed: 217.15 req/sec\r\n\r\ntop remote_addr\r\n| remote_addr | count |\r\n|-----------------|-------|\r\n| 92.60.184.91 | 45 |\r\n| 66.249.78.10 | 42 |\r\n| 77.120.121.122 | 42 |\r\n```\r\n\r\n### Полезные замечания\r\n- Ngxtop работает в реальном времени и удобен для оперативного анализа нагрузки на Nginx.\r\n- Утилита особенно полезна при поиске источников высокой нагрузки, подозрительных запросов или частых ошибок 404/500.\r\n- Для длительного мониторинга рекомендуется комбинировать ngxtop с инструментами вроде `Munin`, `Zabbix` или `Prometheus + Grafana`.\r\n\r\n!!! info Помощь \r\n Если у вас возникли вопросы или требуется помощь, пожалуйста, свяжитесь с нами через [систему тикетов](/my/tickets/) — мы обязательно вам поможем!","images":[],"updated_at":"2026-04-16T15:43:19+03:00","status":"published","type":"article","get_edit_url":"/admin/dream/article/92/change/","children":[]},{"id":90,"title":"Настройка кэширования и сжатия статических файлов в Nginx","slug":"caching-static-files-nginx","priority":0,"summary":"Как ускорить загрузку сайта и снизить нагрузку на сервер.","tags":[{"id":55,"name":"VPS","slug":"vps","icon":null},{"id":67,"name":"Dedicated","slug":"dedicated","icon":null},{"id":76,"name":"Виртуальный хостинг","slug":"virtual-hosting","icon":"https://fornex.com/media/dream_tag_icon/browser.svg"},{"id":77,"name":"Виртуальный сервер","slug":"virtual-server","icon":"https://fornex.com/media/dream_tag_icon/server.svg"},{"id":80,"name":"Администрирование","slug":"management","icon":null},{"id":100,"name":"Nginx","slug":"nginx","icon":null}],"body":"Правильная настройка кэширования и сжатия статических файлов (изображения, CSS, JavaScript) позволяет значительно ускорить загрузку страниц, уменьшить потребление трафика и снизить нагрузку на сервер.\r\n\r\nВ этой статье мы разберём два важных механизма Nginx: \r\n- Директиву **expires** (управление временем кэширования в браузере) \r\n- Включение **GZIP-сжатия** для текстовых файлов\r\n\r\n### 1. Настройка кэширования с помощью expires\r\n\r\nДиректива `expires` указывает браузеру, сколько времени файл можно хранить в кэше без повторного запроса к серверу.\r\n\r\nОткройте конфигурационный файл вашего сайта (обычно `/etc/nginx/conf.d/vhost.conf` или аналогичный) и добавьте блок `location` для статических файлов:\r\n\r\n```nginx\r\nlocation ~* \\.(jpg|jpeg|png|gif|svg|webp|ico|css|js|woff|woff2|ttf|eot|mp4|webm|ogg|mp3|pdf|zip)$ {\r\n expires 30d; # кэш на 30 дней\r\n add_header Cache-Control \"public\";\r\n access_log off; # отключаем логи для статики (экономия ресурсов)\r\n}\r\n```\r\n\r\n**Рекомендуемые значения** expires:\r\n- Изображения, шрифты, иконки: `30d` или `1y`\r\n- CSS и JavaScript: `7d` — `30d` (если часто меняются — меньше)\r\n- Файлы, которые почти не меняются: `1y`\r\n\r\n### 2. Включение GZIP-сжатия\r\nGZIP значительно уменьшает размер текстовых файлов (HTML, CSS, JS, SVG и др.).\r\nДобавьте следующие строки в блок `server {}` вашего виртуального хоста:\r\n```nginx\r\nserver {\r\n ...\r\n\r\n gzip on;\r\n gzip_disable \"msie6\";\r\n gzip_vary on;\r\n gzip_proxied any;\r\n gzip_comp_level 6; # уровень сжатия (1-9)\r\n gzip_buffers 16 8k;\r\n gzip_http_version 1.1;\r\n gzip_min_length 256;\r\n gzip_types\r\n text/plain\r\n text/css\r\n text/xml\r\n text/javascript\r\n application/javascript\r\n application/json\r\n application/xml\r\n application/rss+xml\r\n image/svg+xml;\r\n}\r\n```\r\n\r\n::: front-promo-main-services\r\n:::\r\n\r\n### 3. Применение настроек для всех сайтов (шаблон)\r\nЕсли вы хотите автоматически применять эти настройки ко всем виртуальным хостам, создайте файл шаблона:\r\n```nginx\r\nsudo nano /usr/local/ispmgr/etc/server.templ\r\n```\r\n\r\nДобавьте в него:\r\n```nginx\r\nlocation ~* \\.(jpg|jpeg|png|gif|svg|webp|ico|css|js|woff|woff2|ttf|eot)$ {\r\n expires 30d;\r\n add_header Cache-Control \"public\";\r\n access_log off;\r\n}\r\n```\r\n\r\nПосле изменения шаблона перезапустите Nginx:\r\n```nginx\r\nsudo systemctl restart nginx\r\n```\r\n\r\n### Полезные советы\r\n- После изменения конфигурации всегда проверяйте синтаксис: `sudo nginx -t`\r\n- Для максимальной производительности комбинируйте `expires` с заголовком `Cache-Control: public`.\r\n- Не ставьте слишком большой `expires` (больше года) на часто обновляемые файлы (CSS/JS), иначе пользователи долго не увидят изменения.\r\n- На VPS и выделенных серверах вы можете дополнительно настроить browser caching, FastCGI cache и proxy_cache для ещё большей оптимизации.\r\n\r\n!!! info Помощь \r\n Если у вас возникли вопросы или требуется помощь, пожалуйста, свяжитесь с нами через [систему тикетов](/my/tickets/) — мы обязательно вам поможем!","images":[],"updated_at":"2026-04-01T16:36:29+03:00","status":"published","type":"article","get_edit_url":"/admin/dream/article/90/change/","children":[]},{"id":17,"title":"Настройка параметров-кэширование и сжатие в VestaCP","slug":"caching-compression-vesta","priority":0,"summary":"Как включить кэширование статических файлов для ускорения загрузки сайта и снижения нагрузки на сервер","tags":[{"id":13,"name":"Панель управления","slug":"control-panel","icon":null},{"id":46,"name":"Vesta CP","slug":"vesta-cp","icon":null},{"id":71,"name":"PuTTY","slug":"putty","icon":null},{"id":80,"name":"Администрирование","slug":"management","icon":null},{"id":95,"name":"SSH","slug":"ssh","icon":null},{"id":100,"name":"Nginx","slug":"nginx","icon":null}],"body":"**Expires** отвечает за то, как долго кэш является актуальным, и браузер может использовать кешированные ресурсы, не запрашивая у сервера их новую версию.\r\n\r\nЗайдем в раздел **Сервер → nginx → configure**\r\n\r\n\r\n\r\n\r\n\r\n\r\nПосле внесения изменений в конфигурационный файл нужно установить галочку **Перезапустить** и нажать кнопку **Сохранить**\r\n\r\n\r\nтакже вы можете выполнить вход по [SSH](https://fornex.com/help/ssh-to-vps/) к серверу и отредактировать конфигурационный файл **nginx.conf** который находится в **/etc/nginx/**, найдите конфигурационный блок server **{}**. В данном конфигурационном блоке есть раздел **location** для обработки статических документов.\r\n\r\n\r\nПример конфигурации Nginx для контроля Expires\r\n\r\n```\r\nserver {\r\n #...\r\n location ~* \\.(gif|ico|jpe?g|png)(\\?[0-9]+)?$ {\r\n expires 1w;\r\n }\r\n\r\n location ~* \\.(css|js)$ {\r\n expires 1d;\r\n }\r\n #...\r\n}\r\n```\r\n\r\nгде **expires** — это количество дней, сколько кэш статических файлов будет храниться.\r\n\r\n\r\n**Сжатие страниц в связке Nginx+Apache**\r\n\r\nЧтоб включить сжатие на поддерживающих эту технологию браузерах, достаточно создать пустой файл **.htdeflate** в корневой директории сайта.\r\n\r\nДля поддержания работы такого метода необходимо добавить следующие строки в файл виртуального хоста:\r\n\r\n```\r\nset $root /home/USERNAME/www;\r\nset $deflate \"${root}/.htdeflate\";\r\n\r\nlocation ~* ^.+\\.(css|js)$ {\r\n root $root;\r\n if ( -f $deflate ) {\r\n gzip on;\r\n }\r\n gzip_disable msie6;\r\n gzip_vary on;\r\n gzip_proxied any;\r\n gzip_comp_level 9;\r\n gzip_buffers 16 8k;\r\n gzip_http_version 1.1;\r\n gzip_types text/plain text/css application/json application/x-javascript text/xml application/xml application/xml+rss text/javascript application/javascript;\r\n}\r\n```\r\n\r\n**Если у Вас возникли трудности в настройке или появились дополнительные вопросы, вы всегда можете обращаться в нашу службу поддержки через [систему тикетов](https://fornex.com/my/tickets/)**","images":[{"id":1342,"file":"https://fornex.com/media/article/img/image-1527769914939.png","created":"2018-05-31T15:31:55+03:00"},{"id":1984,"file":"https://fornex.com/media/article/img/%D0%92%D1%8B%D0%B4%D0%B5%D0%BB%D0%B5%D0%BD%D0%B8%D0%B5_987_2.png","created":"2018-06-15T16:31:44+03:00"}],"updated_at":"2025-10-23T17:25:43+03:00","status":"published","type":"article","get_edit_url":"/admin/dream/article/17/change/","children":[]},{"id":69,"title":"Ограничение доступа к сайту через Nginx","slug":"deny-allow-nginx","priority":0,"summary":"Как настроить фильтрацию по IP, парольную защиту и блокировку нежелательных запросов.","tags":[{"id":24,"name":"Безопасность","slug":"security","icon":null},{"id":80,"name":"Администрирование","slug":"management","icon":null},{"id":100,"name":"Nginx","slug":"nginx","icon":null}],"body":"При работе с веб-сервером важно контролировать, кто и к каким ресурсам имеет доступ. Nginx предоставляет гибкие инструменты для решения этой задачи: от простой блокировки по IP до комбинированной защиты с аутентификацией.\r\n\r\n!!! Info Примечание\r\n На [VPS](https://fornex.com/ru/virtual-private-servers/) и [выделенных серверах](https://fornex.com/ru/dedicated-servers/) вы полностью управляете конфигурацией Nginx и можете применять любые из описанных ниже методов.\r\n\r\n### 1. Ограничение доступа к файлам\r\nЧтобы закрыть доступ к служебным директориям, например `.svn`:\r\n```nginx\r\nlocation ~ /.svn/ {\r\n deny all;\r\n}\r\n```\r\n\r\n### 2. Разграничение доступа по IP\r\nДирективы `allow` и `deny` позволяют задать белый список IP-адресов для конкретного раздела сайта:\r\n```nginx\r\nlocation /server-status {\r\n allow 111.111.111.111;\r\n allow 11.11.11.11;\r\n deny all;\r\n}\r\n```\r\n\r\n### 3. Защита паролем (Basic Auth)\r\nДля закрытых разделов можно включить запрос логина и пароля:\r\n```nginx\r\nlocation /admin/ {\r\n auth_basic \"Enter password to access\";\r\n auth_basic_user_file /etc/nginx/basic.auth;\r\n}\r\n```\r\n\r\n### 4. Комбинированная защита: IP + пароль\r\nДиректива `satisfy any` позволяет пропускать пользователя, если он прошёл хотя бы одну проверку — либо по IP, либо по паролю:\r\n```nginx\r\nlocation /admin/ {\r\n satisfy any;\r\n allow 111.111.111.111;\r\n allow 11.11.11.11;\r\n deny all;\r\n\r\n auth_basic \"Enter password to access\";\r\n auth_basic_user_file /etc/nginx/basic.auth;\r\n}\r\n```\r\n\r\n::: front-promo-main-services\r\n:::\r\n\r\n### 5. Защита от запросов к несуществующим файлам\r\nВозвращает `404` при обращении к статическим файлам, которые не существуют на диске:\r\n```nginx\r\nlocation ~ \\.(js|css|png|jpg|gif|swf|ico|pdf|mov|fla|zip|rar)$ {\r\n try_files $uri =404;\r\n}\r\n```\r\n\r\n### 6. Перенаправление по IP\r\nNginx может выполнять редирект в зависимости от IP-адреса посетителя:\r\n```nginx\r\nlocation / {\r\n if ($remote_addr != 111.111.111.111) {\r\n return 301 https://$host$request_uri;\r\n }\r\n}\r\n```\r\n\r\n> Все посетители, кроме запросов с IP `111.111.111.111`, будут перенаправлены на `https://$host$request_uri`.\r\n\r\n### 7. Защита от перебора с помощью iptables\r\nЕсли количество запросов с одного IP превышает допустимый порог, iptables временно блокирует его:\r\n```bash\r\niptables -A INPUT -p tcp --syn --dport 80 -i eth0 -m state --state NEW \\\r\n -m recent --name bhttp --set\r\niptables -A INPUT -p tcp --syn --dport 80 -i eth0 -m state --state NEW \\\r\n -m recent --name bhttp --update --seconds 120 \\\r\n --hitcount 360 -j DROP\r\niptables -A INPUT -p tcp --syn --dport 80 -i eth0 -j ACCEPT\r\n```\r\n\r\n> В данном примере блокируются IP-адреса, с которых поступило более 360 новых соединений за 120 секунд.\r\n\r\n### Применение изменений\r\nПосле редактирования конфигурации Nginx необходимо выполнить перезагрузку:\r\n```bash\r\nsystemctl reload nginx\r\n# или\r\nservice nginx reload\r\n```\r\n\r\n!!! info Помощь \r\n Если у вас возникли вопросы или требуется помощь, пожалуйста, свяжитесь с нами через [систему тикетов](/my/tickets/) — мы обязательно вам поможем!","images":[],"updated_at":"2026-04-23T12:00:00+03:00","status":"published","type":"article","get_edit_url":"/admin/dream/article/69/change/","children":[]},{"id":68,"title":"Ограничение нагрузки на сайт через Nginx","slug":"limit-nginx","priority":0,"summary":"Как настроить ограничения соединений, запросов и скорости передачи данных в Nginx.","tags":[{"id":80,"name":"Администрирование","slug":"management","icon":null},{"id":81,"name":"Мониторинг","slug":"monitoring","icon":null},{"id":100,"name":"Nginx","slug":"nginx","icon":null}],"body":"Nginx предоставляет гибкие инструменты для управления нагрузкой — вы можете ограничить количество одновременных соединений, частоту запросов и скорость отдачи данных клиенту. Все настройки вносятся в конфигурационный файл Nginx.\r\n\r\n### 1. Ограничение количества соединений\r\nСначала в секции **http** с помощью директивы `limit_conn_zone` определите ключ и параметры зоны разделяемой памяти для хранения состояний:\r\n```nginx\r\nhttp {\r\n limit_conn_zone $binary_remote_addr zone=conn_limit_per_ip:10m;\r\n}\r\n```\r\n\r\nЗатем в нужном блоке **location** укажите имя зоны и максимально допустимое количество соединений с одного IP:\r\n```nginx\r\nlocation /download/ {\r\n limit_conn conn_limit_per_ip 5;\r\n}\r\n```\r\n\r\n### 2. Ограничение количества запросов за единицу времени\r\nВ секции **http** с помощью директивы `limit_req_zone` задайте зону и допустимую частоту запросов:\r\n```nginx\r\nhttp {\r\n limit_req_zone $binary_remote_addr zone=req_limit_per_ip:10m rate=5r/s;\r\n}\r\n```\r\n\r\nВ блоке **location** укажите имя зоны и максимальный размер всплеска запросов (burst):\r\n```nginx\r\nlocation /download/ {\r\n limit_req zone=req_limit_per_ip burst=10;\r\n}\r\n```\r\n\r\n::: front-promo-main-services\r\n:::\r\n\r\n### 3. Ограничение скорости передачи данных клиенту\r\nДиректива `limit_rate` задаёт максимальную скорость отдачи ответа в байтах в секунду **на одно соединение**. Важно учитывать: если клиент использует два соединения одновременно, суммарная скорость будет вдвое выше лимита.\r\n```nginx\r\nlocation /download/ {\r\n limit_rate 50k;\r\n}\r\n```\r\n\r\nДиректива `limit_rate_after` позволяет отдать первые N данных без ограничений, и только после этого применить лимит скорости:\r\n```nginx\r\nlocation /download/ {\r\n limit_rate_after 1m;\r\n limit_rate 50k;\r\n}\r\n```\r\n\r\nВ примере выше первый мегабайт передаётся на полной скорости, после чего скорость ограничивается до 50 КБ/с.\r\n\r\n!!! info Помощь \r\n Если у вас возникли вопросы или требуется помощь, пожалуйста, свяжитесь с нами через [систему тикетов](/my/tickets/) — мы обязательно вам поможем!","images":[],"updated_at":"2026-03-30T18:22:49+03:00","status":"published","type":"article","get_edit_url":"/admin/dream/article/68/change/","children":[]},{"id":87,"title":"Ошибки Nginx и как их исправить","slug":"nginx-errors","priority":0,"summary":"Как исправить ошибки Nginx: 502, 504, 413.","tags":[{"id":55,"name":"VPS","slug":"vps","icon":null},{"id":67,"name":"Dedicated","slug":"dedicated","icon":null},{"id":77,"name":"Виртуальный сервер","slug":"virtual-server","icon":"https://fornex.com/media/dream_tag_icon/server.svg"},{"id":78,"name":"Выделенный сервер","slug":"dedicated-server","icon":null},{"id":80,"name":"Администрирование","slug":"management","icon":null},{"id":85,"name":"Ошибки","slug":"errors","icon":null},{"id":100,"name":"Nginx","slug":"nginx","icon":null}],"body":"При работе с веб-сервером Nginx иногда возникают ошибки, которые мешают корректной работе сайта. В этой статье мы разберём наиболее распространённые из них: **502 Bad Gateway**, **504 Gateway Time-out** и **413 Request Entity Too Large**, и покажем, как их устранять на [VPS](https://fornex.com/ru/virtual-private-servers/) или [выделенных серверах](https://fornex.com/ru/dedicated-servers/).\r\n\r\n### 502 Bad Gateway\r\n**Что значит**: Nginx не может получить ответ от бэкенда (PHP-FPM, Apache, Node.js, uWSGI и т.д.). \r\n**Самые частые причины**:\r\n- Сервис бэкенда выключен или упал\r\n- Неправильный путь к сокету или порт в конфиге\r\n- Проблемы с правами доступа к сокету\r\n- Недостаточно памяти/процессов у PHP-FPM\r\n\r\n**Как исправить**:\r\n1. Проверьте статус PHP-FPM (или другого бэкенда):\r\n```bash\r\nsudo systemctl status php-fpm\r\n# или для конкретной версии\r\nsudo systemctl status php8.1-fpm\r\n```\r\n\r\n2. Перезапустите сервис:\r\n```bash\r\nsudo systemctl restart php-fpm\r\n# или php8.1-fpm\r\n```\r\n\r\n3. Проверьте путь к сокету в конфиге Nginx и PHP-FPM:\r\n - Nginx: `fastcgi_pass unix:/run/php/php8.1-fpm.sock;`\r\n - PHP-FPM (/etc/php/8.1/fpm/pool.d/www.conf): `listen = /run/php/php8.1-fpm.sock`\r\n\r\n4. Убедитесь в правильных правах:\r\n```bash\r\nsudo chown www-data:www-data /run/php/php8.1-fpm.sock\r\nsudo chmod 660 /run/php/php8.1-fpm.sock\r\n```\r\n\r\n5. Перезапустите Nginx:\r\n```bash\r\nsudo nginx -t && sudo systemctl reload nginx\r\n```\r\n\r\n### 504 Gateway Time-out\r\n**Что значит**: Nginx ждал ответа от бэкенда слишком долго и прервал соединение. \r\n**Самые частые причины**:\r\n- Долгая обработка PHP-скрипта\r\n- Медленная база данных\r\n- Большая загрузка сервера\r\n\r\n**Как исправить**:\r\n1. Увеличьте таймауты в конфиге сайта (в блоке server или location):\r\n```nginx\r\nproxy_connect_timeout 300s;\r\nproxy_send_timeout 300s;\r\nproxy_read_timeout 300s;\r\nfastcgi_read_timeout 300s; # для PHP\r\n```\r\n\r\n2. Оптимизируйте PHP-FPM (в `/etc/php/8.1/fpm/pool.d/www.conf`):\r\n```ini\r\npm.max_children = 50 # увеличьте по необходимости\r\npm.start_servers = 10\r\npm.min_spare_servers = 5\r\npm.max_spare_servers = 20\r\nrequest_terminate_timeout = 300\r\n```\r\n\r\n3. Перезапустите сервисы:\r\n```bash\r\nsudo systemctl restart php-fpm\r\nsudo systemctl reload nginx\r\n```\r\n\r\n4. Если проблема в конкретном скрипте — оптимизируйте запросы к БД или кэшируйте тяжёлые страницы.\r\n\r\n::: front-promo-main-services\r\n:::\r\n\r\n### 413 Request Entity Too Large\r\n**Что значит**: Клиент пытается загрузить файл больше лимита, установленного в Nginx. По умолчанию — 1 МБ. \r\n**Причины**: загрузка больших файлов (фото, видео, бэкапы, архивы).\r\n\r\n**Как исправить**:\r\n1. В конфиге сайта (или в `/etc/nginx/nginx.conf` в блоке http) увеличьте лимит:\r\n```nginx\r\nclient_max_body_size 64M; # или 128M, 512M, 1G и т.д.\r\n```\r\n\r\n2. Перезапустите Nginx:\r\n```bash\r\nsudo nginx -t && sudo systemctl reload nginx\r\n```\r\n\r\n3. Для PHP также увеличьте лимиты в php.ini (`/etc/php/8.1/fpm/php.ini`):\r\n```ini\r\nupload_max_filesize = 64M\r\npost_max_size = 64M\r\n```\r\n\r\nПерезапустите PHP-FPM:\r\n```bash\r\nsudo systemctl restart php-fpm\r\n```\r\n\r\n### Как перезагрузить Nginx правильно\r\n- Проверка конфигурации (всегда перед перезапуском):\r\n```bash\r\nsudo nginx -t\r\n```\r\n\r\n- Плавная перезагрузка (без прерывания соединений):\r\n```bash\r\nsudo systemctl reload nginx\r\n```\r\n\r\nили\r\n```bash\r\nsudo nginx -s reload\r\n```\r\n\r\nПолный перезапуск (если reload не помог):\r\n```bash\r\nsudo systemctl restart nginx\r\n```\r\n\r\n### Полезные замечания\r\n- Всегда делайте бэкап конфигов перед изменениями: `sudo cp /etc/nginx/nginx.conf` `/etc/nginx/nginx.conf.bak`\r\n- После любых изменений проверяйте логи: `/var/log/nginx/error.log` и `/var/log/nginx/access.log`\r\n\r\n!!! info Помощь \r\n Если у вас возникли вопросы или требуется помощь, пожалуйста, свяжитесь с нами через [систему тикетов](/my/tickets/) — мы обязательно вам поможем!","images":[],"updated_at":"2026-02-04T17:18:27+03:00","status":"published","type":"article","get_edit_url":"/admin/dream/article/87/change/","children":[]},{"id":301,"title":"Установка модуля PageSpeed для Nginx на Debian 9","slug":"install-pagespeed-nginx-debian","priority":0,"summary":"Как собрать Nginx с модулем ngx_pagespeed для автоматической оптимизации скорости сайта.","tags":[{"id":50,"name":"Debian","slug":"debian","icon":null},{"id":80,"name":"Администрирование","slug":"management","icon":null},{"id":83,"name":"Софт","slug":"software","icon":null},{"id":100,"name":"Nginx","slug":"nginx","icon":null}],"body":"**ngx_pagespeed** — модуль Nginx, который автоматически оптимизирует веб-страницы: сжимает изображения, минифицирует CSS и JavaScript, управляет кэшированием и многое другое. Всё это без изменений в коде сайта.\r\n\r\n!!! Note Важно\r\n Руководство предполагает сборку Nginx из исходных кодов. Перед началом убедитесь, что у вас есть резервная копия текущей конфигурации.\r\n\r\n### Установка зависимостей\r\nУстановите зависимости, необходимые для сборки Nginx:\r\n```bash\r\nsudo apt-get build-dep nginx\r\nsudo apt-get update\r\nsudo apt-get install build-essential zlib1g-dev libpcre3 libpcre3-dev unzip uuid-dev\r\n```\r\n\r\n### Создание рабочего каталога\r\n```bash\r\nmkdir ~/custom-nginx\r\ncd ~/custom-nginx\r\n```\r\n\r\n### Загрузка исходного кода Nginx\r\nПроверьте текущую версию Nginx:\r\n\r\n```bash\r\nnginx -v\r\n```\r\n\r\n@@\r\nnginx version: nginx/1.18.0\r\n@@\r\n\r\nЗагрузите исходники той же версии с [официального сайта](http://nginx.org/en/download.html):\r\n```bash\r\nsudo wget http://nginx.org/download/nginx-1.18.0.tar.gz\r\nsudo tar zxvf nginx-1.18.0.tar.gz\r\n```\r\n\r\n### Загрузка и подготовка ngx_pagespeed\r\nПерейдите в каталог модулей Nginx:\r\n\r\n```bash\r\ncd nginx-1.18.0/src/http/modules/\r\n```\r\n\r\nЗагрузите архив ngx_pagespeed из [репозитория GitHub](https://github.com/apache/incubator-pagespeed-ngx):\r\n```bash\r\nsudo wget https://github.com/pagespeed/ngx_pagespeed/archive/master.zip\r\nsudo unzip master.zip\r\nsudo mv incubator-pagespeed-ngx-master ngx_pagespeed\r\ncd ngx_pagespeed\r\n```\r\n\r\nЗагрузите библиотеки PageSpeed Optimization Libraries (psol), необходимые для компиляции:\r\n```bash\r\nsudo wget https://dl.google.com/dl/page-speed/psol/1.13.35.2-x64.tar.gz\r\nsudo tar -xzvf 1.13.35.2-x64.tar.gz\r\n```\r\n\r\n### Компиляция Nginx с модулем pagespeed\r\nВернитесь в каталог с исходниками Nginx:\r\n\r\n```bash\r\ncd ~/custom-nginx/nginx-1.18.0/\r\n```\r\n\r\nПосмотрите параметры конфигурации текущей установки Nginx — они понадобятся для пересборки:\r\n```bash\r\nnginx -V\r\n```\r\n\r\nЗапустите конфигурацию с теми же параметрами, добавив в конец `--add-module`:\r\n```bash\r\nsudo ./configure \\\r\n --prefix=/etc/nginx \\\r\n --sbin-path=/usr/sbin/nginx \\\r\n --modules-path=/usr/lib/nginx/modules \\\r\n --conf-path=/etc/nginx/nginx.conf \\\r\n --error-log-path=/var/log/nginx/error.log \\\r\n --http-log-path=/var/log/nginx/access.log \\\r\n --pid-path=/var/run/nginx.pid \\\r\n --lock-path=/var/run/nginx.lock \\\r\n --http-client-body-temp-path=/var/cache/nginx/client_temp \\\r\n --http-proxy-temp-path=/var/cache/nginx/proxy_temp \\\r\n --http-fastcgi-temp-path=/var/cache/nginx/fastcgi_temp \\\r\n --http-uwsgi-temp-path=/var/cache/nginx/uwsgi_temp \\\r\n --http-scgi-temp-path=/var/cache/nginx/scgi_temp \\\r\n --user=nginx \\\r\n --group=nginx \\\r\n --with-compat \\\r\n --with-file-aio \\\r\n --with-threads \\\r\n --with-http_addition_module \\\r\n --with-http_auth_request_module \\\r\n --with-http_dav_module \\\r\n --with-http_flv_module \\\r\n --with-http_gunzip_module \\\r\n --with-http_gzip_static_module \\\r\n --with-http_mp4_module \\\r\n --with-http_random_index_module \\\r\n --with-http_realip_module \\\r\n --with-http_secure_link_module \\\r\n --with-http_slice_module \\\r\n --with-http_ssl_module \\\r\n --with-http_stub_status_module \\\r\n --with-http_sub_module \\\r\n --with-http_v2_module \\\r\n --with-mail \\\r\n --with-mail_ssl_module \\\r\n --with-stream \\\r\n --with-stream_realip_module \\\r\n --with-stream_ssl_module \\\r\n --with-stream_ssl_preread_module \\\r\n --with-cc-opt='-g -O2 -fstack-protector-strong -Wformat -Werror=format-security -Wp,-D_FORTIFY_SOURCE=2 -fPIC' \\\r\n --with-ld-opt='-Wl,-z,relro -Wl,-z,now -Wl,--as-needed -pie' \\\r\n --add-module=./src/http/modules/ngx_pagespeed/\r\n```\r\n\r\n> Используйте параметры из вывода `nginx -V` на вашем сервере — они могут отличаться от приведённых в примере.\r\n\r\nЗапустите компиляцию и установку:\r\n```bash\r\nsudo make\r\nsudo make install\r\n```\r\n\r\n### Настройка и включение ngx_pagespeed\r\nСоздайте каталог для кэша модуля:\r\n\r\n```bash\r\nsudo mkdir -p /var/ngx_pagespeed_cache\r\nsudo chown -R www-data:www-data /var/ngx_pagespeed_cache\r\n```\r\n\r\nОткройте главный конфигурационный файл Nginx:\r\n```bash\r\nsudo nano /etc/nginx/nginx.conf\r\n```\r\n\r\nДобавьте в блок `http` следующие строки:\r\n```nginx\r\n##\r\n# Pagespeed Settings\r\n##\r\npagespeed on;\r\npagespeed FileCachePath /var/ngx_pagespeed_cache;\r\n```\r\n\r\nВ каждый блок `server` добавьте:\r\n```nginx\r\n# Маршрутизация запросов к ресурсам, оптимизированным pagespeed\r\nlocation ~ \"\\.pagespeed\\.([a-z]\\.)?[a-z]{2}\\.[^.]{10}\\.[^.]+\" {\r\n add_header \"\" \"\";\r\n}\r\nlocation ~ \"^/ngx_pagespeed_static/\" { }\r\nlocation ~ \"^/ngx_pagespeed_beacon\" { }\r\n```\r\n\r\nПерезапустите Nginx:\r\n```bash\r\nsudo service nginx restart\r\n```\r\n\r\n### Проверка установки\r\nУбедитесь, что модуль присутствует в конфигурации:\r\n\r\n```bash\r\nsudo /usr/sbin/nginx -V\r\n```\r\n\r\nВ выводе должна присутствовать строка `--add-module=./src/http/modules/ngx_pagespeed/`.\r\n\r\nПроверьте работу модуля через HTTP-заголовки:\r\n```bash\r\ncurl -I -p ВАШ_IP_СЕРВЕРА\r\n```\r\n\r\nВ ответе должен присутствовать заголовок `X-Page-Speed` с номером версии:\r\n@@\r\nHTTP/1.1 200 OK\r\nServer: nginx\r\nX-Page-Speed: 1.13.35.2-0\r\nCache-Control: max-age=0, no-cache\r\n@@\r\n\r\nНаличие заголовка `X-Page-Speed` подтверждает, что модуль установлен и работает корректно.\r\n\r\n!!! info Помощь \r\n Если у вас возникли вопросы или требуется помощь, пожалуйста, свяжитесь с нами через [систему тикетов](/my/tickets/) — мы обязательно вам поможем!","images":[{"id":3276,"file":"https://fornex.com/media/article/img/%D0%A1%D0%BD%D0%B8%D0%BC%D0%BE%D0%BA_%D1%8D%D0%BA%D1%80%D0%B0%D0%BD%D0%B0_2020-07-02_%D0%B2_17.56.28.png","created":"2020-07-03T17:13:13+03:00"},{"id":3277,"file":"https://fornex.com/media/article/img/%D0%A1%D0%BD%D0%B8%D0%BC%D0%BE%D0%BA_%D1%8D%D0%BA%D1%80%D0%B0%D0%BD%D0%B0_2020-07-03_%D0%B2_17.08.29.png","created":"2020-07-03T17:13:24+03:00"}],"updated_at":"2026-04-14T16:59:50+03:00","status":"published","type":"article","get_edit_url":"/admin/dream/article/301/change/","children":[]},{"id":324,"title":"Фильтрация трафика в Nginx с помощью GeoIP","slug":"settings-nginx-geoip","priority":0,"summary":"Пошаговое руководство по ограничению доступа к сайту по странам с использованием модуля GeoIP в Nginx.","tags":[{"id":24,"name":"Безопасность","slug":"security","icon":null},{"id":49,"name":"Ubuntu","slug":"ubuntu","icon":null},{"id":50,"name":"Debian","slug":"debian","icon":null},{"id":51,"name":"CentOS","slug":"centos","icon":null},{"id":55,"name":"VPS","slug":"vps","icon":null},{"id":77,"name":"Виртуальный сервер","slug":"virtual-server","icon":"https://fornex.com/media/dream_tag_icon/server.svg"},{"id":100,"name":"Nginx","slug":"nginx","icon":null}],"body":"При работе с Nginx на [VPS](https://fornex.com/ru/virtual-private-servers/) или [выделенном сервере](https://fornex.com/ru/dedicated-servers/) может возникнуть необходимость ограничить доступ к сайту по странам. Это возможно сделать с помощью подуля Nginx **GeoIP**.\r\n\r\n### Установка необходимых пакетов\r\nДля установки модуля **GeoIP** на сервере выполните соответствующие команды в зависимости от операционной системы.\r\n\r\n**Debian/Ubuntu**\r\n``` bash\r\nsudo apt-get install nginx-module-geoip\r\n```\r\n\r\n**CentOS**\r\n``` bash\r\nyum install nginx-module-geoip\r\n```\r\n\r\nЕсли в вашей версии nginx отсутствует ```/etc/nginx/modules-enabled```, модуль может не подключиться автоматически.\r\n\r\nВ этом случае добавьте следующие строки в начало файла ```/etc/nginx/nginx.conf``` (вне блоков http/server/events):\r\n``` bash\r\nload_module modules/ngx_http_geoip_module.so;\r\nload_module modules/ngx_stream_geoip_module.so;\r\n```\r\n\r\nПосле этого выполните:\r\n``` bash\r\nnginx -s reload\r\n```\r\n\r\n### Обновление базы данных GeoIP\r\nДля обновления базы данных **GeoIP** выполните команды:\r\n``` bash\r\nmv /usr/share/GeoIP/GeoIP.dat /usr/share/GeoIP/GeoIP.dat_bak\r\ncd /usr/share/GeoIP/\r\nwget http://geolite.maxmind.com/download/geoip/database/GeoLiteCountry/GeoIP.dat.gz\r\ngunzip GeoIP.dat.gz\r\n```\r\n\r\n### Проверка сборки Nginx с поддержкой модуля GeoIP\r\n\r\nПосле обновления базы GeoIP убедитесь, что Nginx был собран с параметром `--with-http_geoip_module`. Для этого используйте команду:\r\n``` bash\r\nnginx -V\r\n```\r\n\r\nЕсли Nginx не был собран с нужным параметром, вам нужно будет выполнить [сборку модулей Nginx](https://fornex.com/ru/help/module-nginx-linux/).\r\n\r\n::: front-promo-main-services\r\n:::\r\n\r\n### Настройка Nginx для ограничения доступа по странам\r\n\r\nВ каталоге с конфигурационными файлами Nginx создайте файл `block.map.include` с содержанием:\r\n``` bash\r\ngeoip_country /usr/share/GeoIP/GeoIP.dat;\r\nmap $geoip_country_code $allowed_country {\r\n default yes;\r\n CN no;\r\n VN no;\r\n TW no;\r\n}\r\n```\r\n\r\nВ этом примере доступ к сайту ограничен для пользователей из Китая, Вьетнама и Тайваня.\r\n\r\nДля того чтобы разрешить доступ только пользователям из определённых стран, отредактируйте конфигурацию следующим образом:\r\n\r\n``` bash\r\ngeoip_country /usr/share/GeoIP/GeoIP.dat;\r\nmap $geoip_country_code $allowed_country {\r\n default no;\r\n RU yes;\r\n UA yes;\r\n}\r\n```\r\n\r\nВ этом примере сайт будет доступен только пользователям из России и Украины.\r\n\r\n### Внесение изменений в конфигурацию Nginx\r\n\r\nВ конфигурационном файле `/etc/nginx/nginx.conf` в секции http добавьте строку:\r\n\r\n``` bash\r\ninclude include/block.map.include;\r\n```\r\n\r\nЗатем в секции server вашего хоста добавьте следующий блок:\r\n``` bash\r\nif ($allowed_country = no) {\r\n return 404;\r\n}\r\n```\r\n\r\nПримените изменения, перезапустив Nginx:\r\n``` bash\r\nnginx -s reload\r\n```\r\n\r\n!!! warning Внимание\r\n MaxMind больше не поддерживает старый формат баз данных **.dat** и закрыла возможность их свободного скачивания. Сейчас доступ к файлам предоставляется только после авторизации и приобретения лицензии. В настоящее время используется новый формат баз данных **.mmdb**.\r\n\r\n!!! info Помощь \r\n Если у вас возникли вопросы или требуется помощь, пожалуйста, свяжитесь с нами через [систему тикетов](/my/tickets/) — мы обязательно вам поможем!","images":[],"updated_at":"2026-05-07T14:40:57+03:00","status":"published","type":"article","get_edit_url":"/admin/dream/article/324/change/","children":[]}]}}},"payment":{"options":{},"checkoutStatus":"idle"}}}