Купить Корзина
  • Облако и IT-инфраструктура

Сервис настройки NGINX

Заполните форму и сервис подготовит конфигурационные файлы веб-сервера NGINX для вашего кейса – веб-сервер, сервер для Django или Node.js, сервер для CMS WordPress, Joomla, Drupal. Настройка возможна для одного или нескольких доменов. Готовые файлы конфигурации можно скачать или выполнить одну команду на сервере для автоматического обновления.

Конфигурация для каждого сайта

  • example.com
  • Добавить сайт

Пресеты

Фронтэнд PHP Django Node.js Одностраничное приложение WordPress Drupal Magento Joomla
  • Сервер
  • HTTPS
  • PHP
  • Python
  • Обратный прокси
  • Маршрутизация
  • Логирование
  • Ограничить
  • Onion
IPv4
IPv6
PHP сокет: /var/run/php/php-fpm.sock
Loading...
    Выключено
    Loading...
      Дальше

      Глобальная конфигурация

      • HTTPS
      • Безопасность
      • Python
      • Обратный прокси
      • Производительность
      • Логирование
      • NGINX
      • Docker
      • Инструменты
      no-referrer-when-downgrade
      Loading...
        auto
        Loading...
          MB
          2048
          Loading...
            64
            Loading...
              Применить настройки Docker

              Примените настройки конфигурации для запуска NGINX с Docker
              Обновляет пользователя NGINX на nginx и pid на /var/run/nginx.pid

              Сбросить глобальную конфигурацию
              Сбросить все домены
              Удалить все домены
              Сбросить конфигурацию домена
              Удалить домен

              Да, я уверен Нет, отменить
              Дальше

              Настройка

              • Скачать
              • SSL init
              • Certbot
              • Запустить!
              1. Скачать сгенерированную конфигурацию: nginxconfig.io-example.com.tar.gz
                и загрузить её на Ваш сервер/etc/nginx директория.

                или, Скопируйте Base64 c сжатой конфигурацией, вставьте это в Вашу командную строку на сервере и запустите.

              2. Перейдите в папку конфигурации NGINX на Вашем сервере:

                cd /etc/nginx

              3. Сделайте резервную копию Вашей нынешней NGINX конфигурации:

                tar -czvf nginx_$(date +'%F_%H-%M-%S').tar.gz nginx.conf sites-available/ sites-enabled/ nginxconfig.io/

              4. Извлеките архив с новой конфигурацией с помощью использованием tar:

                tar -xzvf nginxconfig.io-example.com.tar.gz

              1. Сгенерируйте ключи Диффи-Хеллмана, запустив следующую команду на своем сервере:

                openssl dhparam -out /etc/nginx/dhparam.pem 2048

              2. Создайте директорию хранения ACME-challenge (для Let's Encrypt):

                mkdir -p /var/www/_letsencrypt
                chown www-data /var/www/_letsencrypt

              1. Закомментируйте директивы, связанные с SSL в конфигурации:

                sed -i -r 's/(listen .*443)/\1; #/g; s/(ssl_(certificate|certificate_key|trusted_certificate) )/#;#\1/g; s/(server \{)/\1\n    ssl off;/g' /etc/nginx/sites-available/example.com.conf
              2. Перезагрузите свой NGINX сервер:

                sudo nginx -t && sudo systemctl reload nginx
              3. Получите SSL сертификат Let's Encrypt используя Certbot:

                certbot certonly --webroot -d example.com --email info@example.com -w /var/www/_letsencrypt -n --agree-tos --force-renewal
              4. Раскомментируйте директивы, связанные с SSL в конфигурации:

                sed -i -r -z 's/#?; ?#//g; s/(server \{)\n    ssl off;/\1/g' /etc/nginx/sites-available/example.com.conf
              5. Перезагрузите свой NGINX сервер:

                sudo nginx -t && sudo systemctl reload nginx
              6. Настройте Certbot, чтобы перезагрузить NGINX, когда сертификаты успешно обновятся:

                echo -e '#!/bin/bash\nnginx -t && systemctl reload nginx' | sudo tee /etc/letsencrypt/renewal-hooks/post/nginx-reload.sh
                sudo chmod a+x /etc/letsencrypt/renewal-hooks/post/nginx-reload.sh

              Время запуска! 🎉

              Перезагрузите NGINX, чтобы запустить его с новой конфигурацией:

              sudo nginx -t && sudo systemctl reload nginx

              Дальше
              Скачать конфигурациюКопировать Base64

              Файлы конфигурации

              /etc/nginx/nginx.conf

              # Generated by nginxconfig.io
                          # https://www.reg.ru/web-tools/nginx-config-generator
              
                          user                 www-data;
                          pid                  /run/nginx.pid;
                          worker_processes     auto;
                          worker_rlimit_nofile 65535;
              
                          # Load modules
                          include              /etc/nginx/modules-enabled/*.conf;
              
                          events {
                              multi_accept       on;
                              worker_connections 65535;
                          }
              
                          http {
                              charset                utf-8;
                              sendfile               on;
                              tcp_nopush             on;
                              tcp_nodelay            on;
                              server_tokens          off;
                              log_not_found          off;
                              types_hash_max_size    2048;
                              types_hash_bucket_size 64;
                              client_max_body_size   16M;
              
                              # MIME
                              include                mime.types;
                              default_type           application/octet-stream;
              
                              # Logging
                              access_log             /var/log/nginx/access.log;
                              error_log              /var/log/nginx/error.log warn;
              
                              # SSL
                              ssl_session_timeout    1d;
                              ssl_session_cache      shared:SSL:10m;
                              ssl_session_tickets    off;
              
                              # Diffie-Hellman parameter for DHE ciphersuites
                              ssl_dhparam            /etc/nginx/dhparam.pem;
              
                              # Mozilla Intermediate configuration
                              ssl_protocols          TLSv1.2 TLSv1.3;
                              ssl_ciphers            ECDHE-ECDSA-AES128-GCM-SHA256:ECDHE-RSA-AES128-GCM-SHA256:ECDHE-ECDSA-AES256-GCM-SHA384:ECDHE-RSA-AES256-GCM-SHA384:ECDHE-ECDSA-CHACHA20-POLY1305:ECDHE-RSA-CHACHA20-POLY1305:DHE-RSA-AES128-GCM-SHA256:DHE-RSA-AES256-GCM-SHA384;
              
                              # OCSP Stapling
                              ssl_stapling           on;
                              ssl_stapling_verify    on;
                              resolver               1.1.1.1 1.0.0.1 8.8.8.8 8.8.4.4 208.67.222.222 208.67.220.220 valid=60s;
                              resolver_timeout       2s;
              
                              # Load configs
                              include                /etc/nginx/conf.d/*.conf;
                              include                /etc/nginx/sites-enabled/*;
                          }

              /etc/nginx/sites-available/example.com.conf

              server {
                              listen                  443 ssl http2;
                              listen                  [::]:443 ssl http2;
                              server_name             example.com;
                              set                     $base /var/www/example.com;
                              root                    $base/public;
              
                              # SSL
                              ssl_certificate         /etc/letsencrypt/live/example.com/fullchain.pem;
                              ssl_certificate_key     /etc/letsencrypt/live/example.com/privkey.pem;
                              ssl_trusted_certificate /etc/letsencrypt/live/example.com/chain.pem;
              
                              # security
                              include                 nginxconfig.io/security.conf;
              
                              # index.php
                              index                   index.php;
              
                              # index.php fallback
                              location / {
                                  try_files $uri $uri/ /index.php?$query_string;
                              }
              
                              # additional config
                              include nginxconfig.io/general.conf;
              
                              # handle .php
                              location ~ \.php$ {
                                  fastcgi_pass unix:/var/run/php/php-fpm.sock;
                                  include      nginxconfig.io/php_fastcgi.conf;
                              }
                          }
              
                          # subdomains redirect
                          server {
                              listen                  443 ssl http2;
                              listen                  [::]:443 ssl http2;
                              server_name             *.example.com;
              
                              # SSL
                              ssl_certificate         /etc/letsencrypt/live/example.com/fullchain.pem;
                              ssl_certificate_key     /etc/letsencrypt/live/example.com/privkey.pem;
                              ssl_trusted_certificate /etc/letsencrypt/live/example.com/chain.pem;
                              return                  301 https://example.com$request_uri;
                          }
              
                          # HTTP redirect
                          server {
                              listen      80;
                              listen      [::]:80;
                              server_name .example.com;
                              include     nginxconfig.io/letsencrypt.conf;
              
                              location / {
                                  return 301 https://example.com$request_uri;
                              }
                          }

              /etc/nginx/nginxconfig.io/letsencrypt.conf

              # ACME-challenge
                          location ^~ /.well-known/acme-challenge/ {
                              root /var/www/_letsencrypt;
                          }

              /etc/nginx/nginxconfig.io/security.conf

              # security headers
                          add_header X-Frame-Options           "SAMEORIGIN" always;
                          add_header X-XSS-Protection          "1; mode=block" always;
                          add_header X-Content-Type-Options    "nosniff" always;
                          add_header Referrer-Policy           "no-referrer-when-downgrade" always;
                          add_header Content-Security-Policy   "default-src 'self' http: https: data: blob: 'unsafe-inline'" always;
                          add_header Strict-Transport-Security "max-age=31536000; includeSubDomains" always;
              
                          # . files
                          location ~ /\.(?!well-known) {
                              deny all;
                          }

              /etc/nginx/nginxconfig.io/general.conf

              # favicon.ico
                          location = /favicon.ico {
                              log_not_found off;
                              access_log    off;
                          }
              
                          # robots.txt
                          location = /robots.txt {
                              log_not_found off;
                              access_log    off;
                          }
              
                          # assets, media
                          location ~* \.(?:css(\.map)?|js(\.map)?|jpe?g|png|gif|ico|cur|heic|webp|tiff?|mp3|m4a|aac|ogg|midi?|wav|mp4|mov|webm|mpe?g|avi|ogv|flv|wmv)$ {
                              expires    7d;
                              access_log off;
                          }
              
                          # svg, fonts
                          location ~* \.(?:svgz?|ttf|ttc|otf|eot|woff2?)$ {
                              add_header Access-Control-Allow-Origin "*";
                              expires    7d;
                              access_log off;
                          }
              
                          # gzip
                          gzip            on;
                          gzip_vary       on;
                          gzip_proxied    any;
                          gzip_comp_level 6;
                          gzip_types      text/plain text/css text/xml application/json application/javascript application/rss+xml application/atom+xml image/svg+xml;

              /etc/nginx/nginxconfig.io/php_fastcgi.conf

              # 404
                          try_files                     $fastcgi_script_name =404;
              
                          # default fastcgi_params
                          include                       fastcgi_params;
              
                          # fastcgi settings
                          fastcgi_index                 index.php;
                          fastcgi_buffers               8 16k;
                          fastcgi_buffer_size           32k;
              
                          # fastcgi params
                          fastcgi_param DOCUMENT_ROOT   $realpath_root;
                          fastcgi_param SCRIPT_FILENAME $realpath_root$fastcgi_script_name;
                          fastcgi_param PHP_ADMIN_VALUE "open_basedir=$base/:/usr/lib/php/:/tmp/";
              Что такое NGINX?

              Nginx ― это программное обеспечение с открытым исходным кодом или по-другому open-source. Используется для создания веб-сервера.

              С помощью Nginx можно решить множество задач:
              — снижение нагрузки на сервер при обработке запросов на файлы;
              — снижение нагрузки на приложения за счёт кеширования;
              — балансировка нагрузки, тем самым повысить отказоустойчивость сервера;
              — обрабатывать сотни тысяч единовременных подключений на одном физическом сервере с Nginx;
              — проводить аутентификацию пользователей.

              Nginx работает практически на всех OC Linux и Unix подобных системах, а также на некоторых версиях Windows.

              Как устроен конфигурационный файл?

              Конфигурационный файл Nginx (nginx config) — файл, в котором задаётся количество рабочих процессов и определяется вся работа Nginx. По умолчанию, конфиг Nginx называется nginx.conf и располагается в каталоге /etc/nginx, /usr/local/nginx/conf, или /usr/local/etc/nginx.

              Конфигурация Nginx состоит из настроечных директив. Каждая директива должна размещаться в отдельной строке, а текст директивы должен завершаться точкой с запятой. В качестве разделителя между элементами директивы можно использовать пробел или знак табуляции. Директива выглядит так:

              Имя Директивы Значение [Значение 2] [Значение 3...];

              Как настроить Nginx для раздачи статического содержимого?

              Одна из важных задач Nginx при настройке сайта — раздача файлов, таких как изображения или статические HTML-страницы. За счёт возможности Nginx быстро отдавать файлы, часто используют связку Nginx и какого-то другого веб-сервера (например, Apache) для того, чтобы Nginx сразу отдавал файлы, а запросы, требующие дополнительной обработки (например, к скриптам PHP), передавал другому веб-серверу путем проксирования (proxy_pass) или к приложению FastCGI.

              Настройка правил обработки запросов в Nginx происходит через location { } в конфигурационном файле.

              Как связать Nginx с приложением FastCGI?

              Программу Nginx используют для перенаправления запросов на FastCGI-серверы, на которых исполняются приложения, созданные с использованием языков программирования и фреймворков, например, PHP, Python или Django.

              Для работы с проксируемым сервером нам понадобится директева fastcgi_pass и fastcgi_param для настройки параметров, передаваемых FastCGI-серверу.

              Конфигурация будет выглядеть примерно так:

              server {
                  location / {
                      fastcgi_pass  localhost:9000;
                      fastcgi_param SCRIPT_FILENAME $document_root$fastcgi_script_name;
                      fastcgi_param QUERY_STRING    $query_string;
                  }
              
                  location ~ \.(gif|jpg|png)$ {
                      root /data/images;
                  }
              }
              
              Как настроить прокси-сервер на Nginx?

              Настройка сервера Nginx — одно из самых частых применений программы. Давайте настроим простой сервер, который будет обслуживать запросы изображений из локального каталога и отправлять все остальные запросы на проксируемый сервер.

              Сначала откройте конфиг nginx и добавьте ещё один блок server:

              server {
                  listen 8080;
                  root /data/up1;
              
                  location / {
                  }
              }
              

              Далее, используйте видоизмените конфигурацию сервера — в первый блок location добавьте директиву proxy_pass, указав протокол, имя и порт проксируемого сервера в качестве параметра (в нашем случае это http://localhost:8080):

              server {
                  location / {
                      proxy_pass http://localhost:8080;
                  }
              
                  location /images/ {
                      root /data;
                  }
              }
              
              Можно ли настроить Nginx в качестве обратного прокси для Apache?
              Nginx обрабатывает данные быстро, но не работает с PHP. Часто Nginx используется в связке с программным пакетом PHP-FPM, а популярные CMS, например, WordPress, заточены под работу с Apache. Подробнее о настройке программ читайте в этой инструкции.
              Как установить Nginx на Ubuntu?

              Установка Nginx на Ubuntu очень проста — используйте менеджер пакетов apt для его установки. Чтобы установить Nginx введите команды:

              sudo apt update
              sudo apt install nginx
              

              В результате Nginx и другие необходимые компоненты для его работы пакеты будут установлены на ваш сервер.

              Как настроить редирект домена на HTTPS в Nginx?

              Nginx — мощный инструмент для перенаправления и управления веб-трафиком. Его можно легко настроить для проксирования запросов или веб-трафика HTTP на зашифрованный HTTPS-сервер с SSL.

              Если используете Ubuntu, найдите и откройте файл конфигурации в текстовом редакторе, используя команду:

              sudo nano /etc/nginx/sites-available/server.conf
              

              Далее вставьте этот код:

              server {
                  listen 80 default_server;
                  server_name _;
                  return 301 https://$host$request_uri;
              }
              

              После завершения редактирования, сохраните файл и выйдите. Затем перезапустите службу Nginx с помощью следующей команды:

              sudo service nginx restart
              
              1. Главная
              2. Сервисы Рег.ру
              3. Сервис настройки NGINX
              • vk
              • telegram
              • ok
              • vc
              • dzen
              • rbc
              • Продукты
                • Домены
                • Хостинг
                • Почта
                • SSL-сертификаты
                • Конструктор сайтов
                • VPS и VDS серверы
                • Магазин доменов
                • Облако для бизнеса
              • Решения по сфере бизнеса
                • Подойдут всем
                • Маркетплейсы
                • Образование
                • Бьюти
                • Медицина
                • Автосервисы
                • Бытовые услуги
                • Досуг
                • Спорт
                • Все решения
              • Сервисы
                • Whois – проверить данные домена
                • Определить IP адрес
                • Проверить порт на доступность
                • Проверить IP адрес сайта
                • Перевести домен в Punycode
                • Проверить скорость интернета
              • Компания
                • О компании
                • Контакты
                • Офисы
                • Новости
                • Акции и скидки
                • Блог
                • Отзывы клиентов
              • Полезное
                • Стоимость услуг
                • Способы оплаты
                • Бонусная программа
                • Документы
                • База знаний
                • ЭДО
                • Партнерам
              • Другое
                • Сообщить о нарушении
                • РБК: новости России и мира сегодня
                • Новости компаний РФ
                • РБК Инвестиции: курсы валют
                • Спецпроект с Онлайн Патентом

              Облачная платформа Рег.ру включена в реестр российского ПО Запись №23682 от 29.08.2024

              • mintsifry
              • icann
              • cctld
              © ООО «РЕГ.РУ»
              • Политика конфиденциальности
              • Политика обработки персональных данных
              • Правила применения рекомендательных технологий
              • Правила пользования и другие правила и политики
              • Мы используем cookie и рекомендательные технологии для персонализации сервисов и удобства пользователей. Вы можете запретить сохранение cookie в настройках своего браузера