Скрыть ответ 301 (ответное приложение) на nginx - PullRequest
0 голосов
/ 24 апреля 2020

Вот мои настройки:

nginx сервер, действующий в качестве обратного прокси-сервера для маршрутизации всех запросов на mysite.com - я контролирую

приложение реакции для некоторых подразделов сайта на s3-bucket.awsthing.com - я не контролирую

Если вы посещаете s3-bucket.awsthing.com/user/charlie, вы получаете перенаправление 301, которое отправляет вас на s3-bucket.awsthing.com/#!/user/charlie (потому что это индекс. html, где приложение плюс некоторая информация для маршрутизации) в свою очередь возвращает 200 ... хорошо, хорошо.

Когда пользователь заходит на mysite.com/user, у меня настроен прокси-сервер так:

location /user/ {
    proxy_pass s3-bucket.awsthing.com/user/;
}

, что означает, что прокси-сервер делает запрос на s3-bucket.awsthing.com/user, возвращает 301, затем перенаправляет клиента на s3-bucket.awsthing.com/ ... не очень хорошо

Пока он функционирует и работает, я теперь предоставляю пользователю доступ к вышестоящему серверу. и не проксируется.

вопросы: 1) Как я могу сделать так, чтобы не отображался вышестоящий сервер 2) Есть ли способ не возвращать 301 клиенту и только перенаправленные данные 200?

Я попробовал почти все, что я могу придумать, кроме, может быть, сделать несколько регулярных выражений, чтобы отправить запрос прокси непосредственно к /#! маршруту

1 Ответ

0 голосов
/ 27 апреля 2020

Я нашел решение для этого:

location / {
    proxy_pass mybucket.amazonaws.com;
    proxy_intercept_errors on;
    error_page 301 =200 @hide-301;
}

location @hide-301 {
    proxy_pass mybucket.amazonaws.com;
}
Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...