Настройка базового прокси-сервера
Настройка базового прокси-сервера
Создание проксируемого сервера
Нужно добавить новый блок 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;
}
}
примечание
-
Параметром второго блока
location
является регулярное выражение, которое начинается~
и дает совпадение со всеми URI, оканчивающимися на .gif, .jpg или .png. -
Директива
root
помещена в контекстserver
. Такая директиваroot
будет использована, когда директиваlocation
, выбранная для выполнения запроса, не содержит собственной директивыroot
.
Логика обработки запросов прокси-сервером
Порядок в выбора location
, который будет обслуживать запрос:
- Проверка директив
location
, задающих префиксы; - Запоминание
location
с самым длинным подходящим префиксом; - Проверка регулярных выражений:
- если есть совпадение с регулярным выражением, Nginx выбирает соответствующий
location
, - если нет совпадений, берётся запомненный ранее location.