Справка по настройке Nginx HttpProxyModule - PullRequest
1 голос
/ 18 ноября 2010

Я пытаюсь использовать nginx для принудительной базовой аутентификации, прежде чем разрешить доступ к веб-консоли базы данных H2.Эта консоль работает на https://localhost:8084

В моем nginx.conf у меня есть:

 location /h2 {
   auth_basic "Restricted";
   auth_basic_user_file htpasswd;
   proxy_set_header X-Real-IP $remote_addr;
   proxy_set_header Host $host;
   proxy_set_header X-Forwarded-For $proxy_add_x_forwarded_for;
   proxy_set_header X-Forwarded-Proto https;
   proxy_pass https://localhost:8084/;
 }

Что я хочу сделать, так это запросы прокси для / h2 на веб-сервер H2.Эта конфигурация работает для первого запроса, однако сервер H2 немедленно отправляет HTTP-редирект для «/login.jsp», который отправляется в мой браузер как «/login.jsp», а не «/h2/login.jsp».Это означает, что когда мой браузер запрашивает страницу, запрос не выполняется, потому что на веб-сервер H2 передаются только URL-адреса в местоположении "/ h2".

Как добавить "/ h2" к любым перенаправлениям, возвращаемым H2веб сервер?Я попробовал следующее:

proxy_redirect https://localhost:8084/ https://$host/h2;

, но ничего не сделало.

1 Ответ

1 голос
/ 19 ноября 2010

Кажется, это проблема конфигурации nginx.Попробуйте location /h2/ (с косой чертой) вместо location /h2 в nginx.conf.А затем подключитесь к http://localhost/h2/.Вам не нужна конфигурация обратного прокси-сервера, так как инструмент H2 Console не использует абсолютные URL-адреса (он перенаправляется в «login.jsp», а не в «/login.jsp»).Проблема в том, что http://localhost:/h2 - это «имя файла», тогда как http://localhost:/h2/ - это «каталог».

...