Перейти к основному содержимому
Настройка базового прокси-сервера

Настройка базового прокси-сервера

Создание проксируемого сервера

Нужно добавить новый блок server в конфигурационный файл Nginx nginx.conf. Он расположен в директории /etc/nginx.

Пример сервера, слушающего на порту 8080 и отображающего все запросы на каталог /data/up1 в локальной файловой системе:

server {
listen 8080;
root /data/up1;

location / {
}
}

Подготовка каталога

Создание каталога /data/up1 и файла index.html в нем.

Конфигурирование прокси-сервера

Нужно внести изменения в конфигурацию прокси-сервера.

  • В первый блок location нужно добавить директиву proxy_pass, указав протокол, имя и порт проксируемого сервера в качестве параметра (например, http://localhost:8080)
  • Второй блок location нужно настроить так, чтобы он подходил для запросов изображений с типичными расширениями файлов
server {
location / {
proxy_pass http://localhost:8080;
}

location ~ \.(gif|jpg|png)$ {
root /data/images;
}
}
примечание
  1. Параметром второго блока location является регулярное выражение, которое начинается ~ и дает совпадение со всеми URI, оканчивающимися на .gif, .jpg или .png.

  2. Директива root помещена в контекст server. Такая директива root будет использована, когда директива location, выбранная для выполнения запроса, не содержит собственной директивы root.

Логика обработки запросов прокси-сервером

Порядок в выбора location, который будет обслуживать запрос:

  1. Проверка директив location, задающих префиксы;
  2. Запоминание location с самым длинным подходящим префиксом;
  3. Проверка регулярных выражений:
  • если есть совпадение с регулярным выражением, Nginx выбирает соответствующий location,
  • если нет совпадений, берётся запомненный ранее location.