Назад | Перейти на главную страницу

Перенаправление обратного прокси-сервера Squid / перезапись HTTP на HTTPS

Мой обратный прокси-сервер Squid принимает только запросы HTTPS. Как быстро перенаправить / переписать HTTP-запрос на https? Итак, если пользователь посещает http://foo.server.com он должен быть автоматически перенаправлен на https://foo.server.com

Один из способов - заставить исходный сервер выполнить перенаправление, но кажется более эффективным, чтобы Squid сделал это. Есть несколько подходов, но использование deny_info кажется самым простым.

В конфигурационном файле squid.conf:

acl PORT80 myport 80
acl MYSITE dstdomain foo.server.com
http_access deny PORT80 MYSITE
deny_info 301:https://foo.server.com%R MYSITE

На первый взгляд, инструкция http_access просто запрещает доступ к HTTP-версии вашего сайта. Однако из-за оператора deny_info Squid будет перенаправлять пользователей на альтернативный сайт (в данном случае HTTPS-версию), а не просто отправлять сообщение об отказе в доступе.

В %R заставляет URL-адрес запроса быть включенным в перенаправление, поэтому, если пользователи попытаются посетить http://foo.server.com/bar тогда они будут направлены на https://foo.server.com/bar, а не просто https://foo.server.com.

Полный список тегов формата URL доступен в документации Squid: http://www.squid-cache.org/Doc/config/deny_info/

Порядок операторов acl важен, потому что Squid запоминает только последние http_access deny и ищет deny_info чтобы соответствовать этому acl.