Преобразование Apache в Nginx не работает

  • Автор темы respectket
  • 55
  • Обновлено
  • 16, May 2024
  • #1
Привет, Это сводит меня с ума. Мой сценарий — это apache2 и tomcat с несколькими веб-приложениями. ПРИМЕЧАНИЕ.

Слово http имеет пробел посередине, потому что, когда я пытаюсь опубликовать сообщение, trhead проверяет, работает ли URL-адрес или нет.

На самом деле, с apache+tomcat работает нормально, но я хочу перейти на nginx, чтобы повысить производительность и потреблять меньше ресурсов.

Это один из VirtualHost в Apache:

<Виртуальныйхост *:80>

Администратор сервера

Имя сервера webapp.com

Журналы ошибок/webapp-error_log

Журналы CustomLog/webapp-access_log common

ПроксиПасс / ht tp://localhost:8081/DataFormSender/

ПроксиПассРеверс / ht tp://localhost:8081/DataFormSender/

В этом случае мне нужно перенаправить на http, но в других — https.

Веб-приложения создаются с помощью J2EE с использованием Spring Security.

Проблема в том, что nginx не может найти статические ресурсы (изображения, css, js,...). Я попробовал все, но ничего не помогло.

Чтобы определить путь к ресурсам, я делаю это следующим образом:

" rel="stylesheet" type="text/css" /> Сгенерированный URL-адрес правильный, но возвращает сообщение об ошибке 404. Я понимаю, что проблема не в безопасности Spring, потому что сообщение не 403.

Это перевод nginx виртуального хоста Apache.

сервер {

слушай 80;

имя_сервера webapp.com;

error_log журналы/webapp-error_log предупреждение;

позволять все;

proxy_redirect / ht tp://localhost:8081/DataFormSender/;

#

# Это должно быть изменено на то, что вы настроили для реального сервера.

#

корень /var/tomcat/webapps/DataFormSender/resources;

log_format format_3 'общий';

журналы access_log/webapp-access_log format_3;

расположение / {

proxy_pass ht tp://localhost:8081/DataFormSender/;

}

}

Есть идеи, как решить эту странную проблему? Спасибо за ваше время

respectket


Рег
22 Oct, 2010

Тем
2

Постов
3

Баллов
23
  • 04, Jun 2024
  • #2
Хорошо, я нашел частичное решение: сервер { слушай 80; имя_сервера mdd.cat; перепишите ^/MyApp/(.*)$ /$1 последним; расположение / { 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 ht тп://127.0.0.1:8081/MyApp/; } } Сейчас ищет статические ресурсы, но когда я пытаюсь войти в систему, мое приложение всегда отображает страницу входа. Это URL-адрес для доступа к странице входа: ht tp://mdd.cat/login А это URL-адрес после успешного входа в систему: ht tp://mdd.cat/login;jsessionid=8E1070C32C43260F294D1350233A06FA Есть идеи, почему это происходит? Спасибо!!
 

goa_head


Рег
01 Jan, 2011

Тем
0

Постов
3

Баллов
3
Тем
49554
Комментарии
57426
Опыт
552966

Интересно