Когда Microsoft подвергают критике за сложность и нелогичность настройки ее продуктов, то можно иной раз с этим согласиться, но когда приходится работать с продуктами других производителей, то, как говориться, все познается в сравнении: уровень обычно настолько ниже, что ясно понимаешь, почему продукты Microsoft так популярны даже несмотря на наличие массы «бесплатных» альтернатив.
Вот на днях пришлось настраивать SSO (Single-Sign-On) для Aparche Tomcat, чтобы заработала прозрачная аутентификация для Windows пользователей. Для этого был поднят сервер Windows Server 2012 R2 и IIS 8.5, потом установлен Tomcat 8 и ключевой элемент — Jakarta Isapi Redirector, который собственно и реализует SSO.
Все это нужно было для работы с HP Service Manager 9. Когда я выполнил тестовое подключение, то все достаточно быстро открылось и работало замечательно. Когда тоже самое сделал коллега, то получил сообщение об ошибке: «The page was not displayed because the request entity is too large».
Сообщение четко описывает, в чем проблема. Первым делом я нашел настройки ограничений на IIS:
Как видите по умолчанию IIS разрешает передачу контента аж в 30 Мб! Значит проблема где-то в Tomcat, но где? Количество мест и неочевидных параметров, как показывал предыдущий опыт, в Tomcat просто не имеет границ.
Тем не менее поиск в Интернет вывел на страничку с решением: проблема в том, что Jakarta Isapi Redirector имеет буфер по умолчанию 8 Кб! Сколько у Tomcat ограничение по умолчанию, я не знаю, поэтому выставляем одно и то же значение для обоих компонентов.
Увеличиваем буфер коннектора в 2 раза с 8 Кб до 16 Кб:
1. В файле server.xml
a. Найти
<Connector port=»8009″ protocol=»AJP/1.3″ redirectPort=»8443″ tomcatAuthentication=»false» URIEncoding=»UTF-8″/>
b. Добавить параметр packetSize=»16384″ (по умолчанию 8 Кб)
<Connector port=»8009″ protocol=»AJP/1.3″ redirectPort=»8443″ tomcatAuthentication=»false» URIEncoding=»UTF-8″ packetSize=»16384″/>
2. В файле worker.properties (используется isapi_redirect.dll ) вставить строку:
worker.local.max_packet_size=16384
(Вместо Local у вас может быть что-то другое)
PS: Нашел описание параметра packetSize http://tomcat.apache.org/tomcat-8.0-doc/config/ajp.html
Filed under: Без рубрики | Tagged: IIS, SSO, Tomcat | Leave a comment »