Re: proxy pass для Tomcat

admin at sysadmins.el.kg admin at sysadmins.el.kg
Wed Oct 23 08:24:54 UTC 2013


23.10.2013 12:50, solid-7 пишет:
> Доброго дня
>
> нужна помощь - есть статическая старница html, отрабатывает нормально, нужно
> чтобы при добавлении в адресной строке /portal шел проброс на 8080, проброс
> происходит но страница выдает 404 ошибку
>
> конфиг
>
> server {
>                  listen 80;
>                  server_name ;
>
>
>                  location / {
>                          #proxy_pass http://localhost:8080/;
>                          root /var/www/def;
>                          index index.php index.html index.htm;
>
>                  }
>
>
>                  location /portal {
>                        
> proxy_pass http://192.168.122.6:8080/;
> proxy_redirect http://192.168.122.6:8080/ /;
> #proxy_redirect off;
>
> proxy_set_header Host $host;
> proxy_set_header X-Real-IP $remote_addr;
> proxy_set_header X-Forwarded-For $proxy_add_x_forwarded_for;
>
>
>                  }
>
>
> error_page  404              /404.html;
>      location = /404.html {
>          root   /usr/share/nginx/html;
>      }
>
>      # redirect server error pages to the static page /50x.html
>      #
>      error_page   500 502 503 504  /50x.html;
>      location = /50x.html {
>          root   /usr/share/nginx/html;
>      }
>
>
> }
>
> Posted at Nginx Forum: http://forum.nginx.org/read.php?21,244023,244023#msg-244023
>
> _______________________________________________
> nginx-ru mailing list
> nginx-ru at nginx.org
> http://mailman.nginx.org/mailman/listinfo/nginx-ru
У меня так работает отлично, правда с корневого url
           location / {
                     proxy_redirect off;
                     proxy_set_header X-Forwarded-Host $host;
                     proxy_set_header X-Forwarded-Server $host;
                     proxy_set_header X-Forwarded-For 
$proxy_add_x_forwarded_for;
                     proxy_pass http://localhost:8080/;
           }

Помнится чтобы все это правильно работало в подпапке, нужно донастроить 
tomcat, чтобы он мог правильно обрабатывать то, что пришлет ему nginx. 
Для этого в файле server.xml tomcat'а нужно найти и привести к такому 
виду следующие части:
         <Connector port="8080"  maxThreads="150" minSpareThreads="25"  
maxSpareThreads="75" connectionTimeout="20000"  enableLookups="false" 
maxHttpHeaderSize="8192" protocol="HTTP/1.1" 
useBodyEncodingForURI="true" redirectPort="8443" acceptCount="100" 
disableUploadTimeout="true" proxyName="<имя хоста из server_name>" 
proxyPort="80" />
...
         <Engine name="Catalina" defaultHost="localhost">
             <Host name="<имя хоста из server_name>" appBase="webapps" 
unpackWARs="true" autoDeploy="true">
...
                 <Context path="<url, в данном случае /portal>" 
reloadable="false" useHttpOnly="true" docBase="...






Подробная информация о списке рассылки nginx-ru