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

Nginx как прокси для Jetty

Простите меня, это моя первая попытка использовать Nginx-Jetty вместо Apache-JK-Tomcat.

Я развернул файл myapp.war в $ JETTY_HOME / webapps /, и приложение доступно по URL-адресу:

http: // myIP: 8080 / myapp

Я выполнил установку Nginx по умолчанию, и страница Nginx по умолчанию доступна по адресу myIP.

Затем я изменил домен по умолчанию в / etc / nginx / sites-enabled на следующее:

server {
        listen   80;
        server_name mydomain.com;

        access_log  /var/log/nginx/localhost.access.log;

        location / {
                #root   /var/www/nginx-default;
                #index  index.html index.htm;
                proxy_pass http://127.0.0.1:8080/myapp/;
        }

        error_page   500 502 503 504  /50x.html;
        location = /50x.html {
                root   /var/www/nginx-default;
        }
}

Теперь я получаю индексную страницу mypp (работающую на пристани), когда нажимаю myIP, и это хорошо. Но все ссылки искажены. например. Ссылка на css - это mydomain.com/myapp/css/style.css, тогда как она должна была быть mydomain.com/css/style.css. Кажется, что mydomain.com отображается на 127.0.0.1:8080 вместо 127.0.0.1:8080/myapp/

Есть идеи, чего не хватает? Нужно ли мне что-то менять и на стороне Jetty?

Теперь это проблема не конфигурации nginx, а проблема конфигурации вашего приложения или Jetty. Ваше приложение, работающее под Jetty, по-прежнему «думает», что его URL-адрес - / myapp / not /, вам следует изменить конфигурацию приложения, чтобы использовать правильный базовый URL-адрес.

Теоретически сервер может переписывать ссылки при передаче ответов приложения клиентам (Apache с правильным модулем может это сделать, я не уверен насчет nginx), но это хорошая идея, только если вы не можете исправить приложение или сервер, прокси-сервер. -перейти к.

Вы также можете использовать Nginx модуль перезаписи.

Похоже, ваша проблема в Jetty, до уровня приложения - если бы это было не так, вы могли бы использовать фильтр перезаписи URL Tuckey. Оба очень просты в использовании. Таки находится на http://tuckey.org/urlrewrite/