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