Nginx - модуль перезаписи

{title}

Nginx обладает достаточно выраженной силой в своей инфраструктуре и заключается в том, что он модульный, что позволяет настраивать каждый раздел сервера в соответствии с нашими потребностями, поэтому, когда мы хотим поговорить о конкретном разделе, мы обычно используем модули.
В этом случае мы должны поговорить о модуле Rewrite, это позволяет нам манипулировать способом, которым пользователь записывает запросы в URL своего браузера, чтобы Nginx знал, как он будет переводить их в приложение, которое ожидает его.
Переписать модуль
Когда мы говорим о модуле Rewrite, мы имеем в виду модуль, который выходит за рамки простого набора или набора директив, поскольку конфигурация, которую мы в нем достигаем, заставит наше приложение по-разному обрабатывать данные, полученные пользователем.
В Apache мы можем достичь аналогичного результата, используя файл .htaccess, однако это немного громоздко, поскольку нам нужно создать файл для каждого сайта, который находится на нашем сервере. В Nginx настройка выполняется в том же блоке сервера, где мы указываем детали сайта.
утилита

Утилита модуля Rewrite заключается в том, что мы можем манипулировать запросами к нашей странице, поэтому вместо нескольких параметров для каждого GET мы можем преобразовать наш URL-адрес в нечто более удобочитаемое для пользователя и поисковых систем, однако наше приложение продолжит их обрабатывать. обычно.
Регулярные выражения, форма контроля
После того, как мы усвоили, что делает этот модуль, возможно, мы захотим узнать, как он это делает, и это очень просто, используя регулярные выражения, с его помощью мы можем устанавливать шаблоны, чтобы наш сервер собирал данные и таким образом мы могли отправлять их в наше приложение.
Регулярные выражения, которые использует Nginx, совместимы с библиотекой PCRE, поэтому, если нам понадобится помощь с каким-либо шаблоном или возникнут сомнения, мы найдем достаточно полную документацию в сети.
Практический пример
Теперь давайте посмотрим на следующем рисунке фрагмент из файла конфигурации, в котором мы установили правило для модуля Rewrite :

{title}


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

Но интересная вещь возникает во втором блоке местоположения, здесь мы устанавливаем документы местоположения, и внутри мы делаем переписывание, и мы говорим вам, что все, что приходит с этим запросом и имеет еще один аргумент, мы отправим его в маршрут / хранилище /, и мы передадим аргумент получен.
Поэтому, когда мы сделаем следующий запрос по URL-адресу website.com/documents/file.txt, Nginx действительно будет искать папку хранилища .

  • 0