<br><br><div class="gmail_quote">2009/4/24 Andrey Y. Ostanovsky <span dir="ltr">&lt;<a href="mailto:andrey@ostanovsky.spb.ru">andrey@ostanovsky.spb.ru</a>&gt;</span><br><blockquote class="gmail_quote" style="border-left: 1px solid rgb(204, 204, 204); margin: 0pt 0pt 0pt 0.8ex; padding-left: 1ex;">
<div class="im">Vladimir Rusinov wrote:<br>
&gt;&gt;&gt; Может кто-нибудь что-нибудь подсказать по этому поводу? Возможно кто-то<br>
&gt;&gt;&gt; знает какой-нибудь легкий ajp балансер/прокси (не апач)<br>
&gt;&gt;&gt;<br>
&gt;&gt; А в чем проблема делать проксипасс с внешнего 443 порта на 80-й порт<br>
&gt;&gt; томката с соответствующим сообщением в http заголовках?<br>
&gt;&gt;<br>
&gt; Вы про Host: www.myhost:443 ?<br>
&gt; Если да, то пробовали - не помогает.<br>
&gt;<br>
<br>
</div>Вот такая конфигурация - не работает? Не верю!(с)<br>
<br>
server    внешний.адрес:443 {<br>
<br>
    ssl                                           on;<br>
    server_name_in_redirect         off;<br>
<br>
    location / {<br>
<br>
        proxy_redirect   <a href="http://192.168.0.1:8180/aaa/" target="_blank">http://192.168.0.1:8180/aaa/</a><br>
<a href="https://my.host/bbb/" target="_blank">https://my.host/bbb/</a>;<br>
<br>
        proxy_pass                  <a href="http://192.168.0.1:8180" target="_blank">http://192.168.0.1:8180</a>;<br>
<br>
    } # location<br>
<br>
} # server<br>
</blockquote></div><br>Разумеется не работает. С редиректами-то все в порядке.<br><br>Еще раз объясню проблему:<br><br>При запросе <a href="http://myproject/login.jsp">http://myproject/login.jsp</a> запрос проксируется nginx на <a href="http://127.0.0.1:80/">http://127.0.0.1:80/</a>. Там struts по указаному конфигу видит что это login и что он должен быть secure. Делает редирект на <a href="https://myproject:443/login.jsp">https://myproject:443/login.jsp</a> (что совершенно версно).<br>
<br>Браузер идет на <a href="https://myproject/login.jsp">https://myproject/login.jsp</a>. Запрос проскируется в <b>http</b>://<a href="http://127.0.0.1:443/">127.0.0.1:443/</a> с заголовком Host: myproject:443. Версии struts из jboss 4.0.x и 4.2.x считали что все безопасно (либо потому что видел порт 443, либо потому что в коннекторе tomcat на 443 порт было написано secure=&quot;true&quot; и scheme=&quot;https&quot;) и отдавали страницу. Новый jboss видимо смотрит в какой коннектор пришел запрос, видит что там нифига не https и делает редирект на <a href="https://myproject:443/login.jsp">https://myproject:443/login.jsp</a>, что повторяется бесконечно.<br>
<br>Никакие извращения с редиректами, номерами портов и т.п. не помогают. Правильных решения два:<br>1) написать ajp для nginx<br>2) хакнуть SecurePlugin из struts<br><br>Ни на то ни на другое ресурсов (пока) нет, поэтому хочется какого-то временного (пусть и не очень эффективного) решения, не настолько неэффективного как большой апач.<br clear="all">
<br>-- <br>Vladimir Rusinov<br><a href="http://greenmice.info/">http://greenmice.info/</a><br>