Как работает «эмбарго» в контексте разработки ядра? [закрыто]

Не устанавливайте proxy_redirect на off , это не делает то, что вы думаете. proxy_redirect выполняет нечто похожее на перезапись URL, например:

location /sales/ { 
    proxy_pass http://ip_of_the_app:7180/; 
    proxy_redirect http://ip_of_the_app:7180/ http://$host/sales/; 
}

Это позволяет разместить путь / sales / в другом месте. Но даже в этом случае параметры по умолчанию для proxy_redirect делают именно это за вас бесплатно. По умолчанию используется перенаправление местоположения во все, что присутствует в proxy_pass (и параметры по умолчанию используются, если вы вообще не устанавливаете proxy_redirect или используете proxy_redirect по умолчанию; ).

Вам не нужно устанавливать proxy_redirect .


Вам не хватает заголовков, которые необходимо отправить в приложение. Самый важный из них - HOST . Это должно выполнить проксирование по желанию и сохранить правильный URL-адрес в браузере.

location / { 
    proxy_pass http://ip_of_the_app:7180/; 
    proxy_set_header HOST $host;
}

Обратите внимание, что приложение по адресу http: // ip_of_the_app: 7180 / теперь будет получать запрос с заголовком Host: my-app.net .


Вам также следует подумать об использовании еще пары заголовков:

proxy_set_header Referer $http_referer;
proxy_set_header X-Forwarded-For $remote_addr;
proxy_set_header X-Forwarded-Proto $scheme;

Это позволит лучше регистрироваться внутри приложения по адресу http: // ip_of_the_app: 7180 / . X-Forwarded-For с указанием IP-адреса реального клиента (в отличие от IP-адреса nginx ) и X-Forwarded-Proto для проверки подключения клиента к nginx через HTTP или HTTPS.

3
04.01.2018, 01:28
0 ответов

Теги

Похожие вопросы