Простите меня, это моя первая попытка использовать Nginx-Jetty вместо Apache-JK-Tomcat.
Я развернул файл myapp.war в $ JETTY_HOME / webapps /, и приложение доступно по URL-адресу:
Я выполнил установку 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/