Архив метки: nginx

nginx: [warn] protocol options redefined

На случай, если вы получаете предупреждающее сообщение от Nginx после перезагрузки.




Для просмотра сообщение с ошибками в терминале набираем:




sudo nginx -t




июл 06 17:59:14 user nginx[1963]: nginx: [warn] protocol options redefined for 195.234.208.75:443 in /etc/nginx/sites-enabled/ваш_домен.conf:10

июл 06 17:59:14 user nginx[1963]: nginx: [warn] protocol options redefined for 195.234.208.75:443 in /etc/nginx/sites-enabled/ваш_домен2.conf:2




Вы можете легко исправить это вручную, просто добавьте параметр “http2” в директиву “listen” вашего конфигурационного файла для домена (только для порта 443).




Для этого откроем файл из сообщения об ошибке:




sudo nano /etc/nginx/sites-enabled/ваш_домен.conf




Нажмем клавиши ctrl+? и введём число 10 (из сообщения об ошибке). Курсор встанет на нужную строчку. В данной строке укажите параметр “http2“. Вот пример:




listen 195.234.208.74:443 ssl http2;



[endtxt]




. . . .




2023-07-06T18:27:09
Nginx

NGINX Reverse Proxy на Proxmox VE

Один белый ip и несколько веб-ресурсов на разных виртуалках внутри гипервизора приводят к необходимости разруливать входящие запросы с использованием обратного прокси. Рассмотрим установку и настройку NGINX на поверх Proxmox Virtual Environment. Схема стенда отображена на картинке:
Читать

Nginx в качестве UDP-балансировщика

После уста­нов­ки, отклю­ча­ем дефолт­ный конфиг

YAML$ cd /etc/nginx/conf.d/$ sudo mv default.conf default.conf.disable12$ cd /etc/nginx/conf.d/$ sudo mv default.conf default.conf.disable

Редак­ти­ру­ем основ­ной кон­фиг Nginx Читать

Деректива Nginx — location с примерами

Директива location служит для установки конфигурации в зависимости от URI-запроса.

Синтаксис location в общем виде следующий:

Syntax:   location [=|~|~*|^~] uri { ... }
   location @name { ... }
Context:  server, location

Перед тем, как перейти к более детальному изучению, нужно заметить, что location определяется в контексте server (или в location в случае вложенной директивы), и в одном настраиваемом виртуальном хосте могут использоваться разные конфигурации в зависимости от обрабатываемого сервером URI. Читать

Переменные в nginx

Сегодня в статье привожу примеры переменных в web браузере Nginx




  • $args – переменная равна аргументам в строке запроса;
  • $arg_name – переменная равна аргументу name в строке запроса;
  • $binary_remote_addr – переменная равна адресу клиента в бинарном виде, длина её значения всегда 4 байта;
  • $content_length – переменная равна строке “Content-Length” в заголовке запроса;
  • $content_type – переменная равна строке “Content-Type” в заголовке запроса;
  • $cookie_name – переменная равна cookie name;
  • $document_root – переменная равна значению директивы root для текущего запроса;
  • $document_uri – то же самое, что и $uri;
  • $host – переменная равна строке “Host” в заголовке запроса или имени сервера, на который пришёл запрос, если этой строки нет;
  • $hostname – переменная равна имени хоста;
  • $http_name – переменная равна строке name в заголовке запроса;
  • $is_args – переменная равна “?”, если в строке запроса есть аргументы, и пустой строке, если их нет;
  • $limit_rate – переменная позволяет установить ограничение скорости соединения;
  • $pid – переменная равна номеру рабочего процесса;
  • $request_method – переменная равна методу запроса, обычно это “GET” или “POST”;
  • $remote_addr – переменная равна адресу клиента;
  • $remote_port – переменная равна порту клиента;
  • $remote_user – переменная равна имени пользователя, используемого в Basic аутентификации;
  • $realpath_root – переменная равна значению директивы root для текущего запроса, при этом все символические ссылки преобразованы в реальные путь;
  • $request_filename – переменная равна пути к файлу для текущего запроса, формируемому из директив root или alias и URI запроса;
  • $request_body – переменная содержит тело запроса. Значение переменной появляется в location’ах, обрабатываемых директивами proxy_pass и fastcgi_pass.
  • $request_body_file – переменная равна имени временного файла, в котором хранится тело запроса. По завершению работы файл необходимо удалить. Для того, чтобы тело запроса клиента всегда записывалось в файл, нужно указать client_body_in_file_only on. При передаче имени в проксированном запросе или в запросе к FastCGI-серверу следует запретить передачу самого тела директивами “proxy_pass_request_body off” или “fastcgi_pass_request_body off” соответственно.
  • $request_uri – переменная равна полному первоначальному URI вместе с аргументами;
  • $query_string – то же самое, что и $args;
  • $scheme – переменная равна схеме запроса — “http” или “https”;
  • $server_protocol – переменная равна протоколу запроса, обычно это “HTTP/1.0” или “HTTP/1.1”;
  • $server_addr – переменная равна адресу сервера, на который пришёл запрос. Как правило, для получения значения этой переменной делается один системный вызов. Для того, чтобы избежать системного вызова, нужно указывать адреса в директивах listen и использовать параметр bind;
  • $server_name – переменная равна имени сервера, на который пришёл запрос;
  • $server_port – переменная равна порту сервера, на который пришёл запрос;
  • $uri – переменная равна текущему URI в запросе, он может отличаться от первоначального, например, при внутренних редиректах или при использовании индексных файлов.



2022-01-08T13:12:16
Nginx

Установка Nginx в Debian

Nginx – это веб сервер с открытым исходным кодом, при помощи которого можно развернуть обратный прокси или веб-сайт. Nginx является вторым (после Apache) по популярности веб-сервером в мире, под управлением которого работают больше 20% всех сайтов и почтовых сервисов.

Главными преимуществами этого сервера являются простота установки и настройки, надёжность, нетребовательность к аппаратным ресурсам и высокая производительность. В этой статье мы рассмотрим как выполняется установка Nginx Debian 11.

 

Читать