Nginx переписывает http-референт на https

Я использую директиву proxy_pass для вышестоящего сервера https. Прокси-сервер предназначен для клиентов LAN. Однако у меня проблема с вышестоящим приложением django, которое отклоняет запросы HTTP POST из-за небезопасного заголовка реферера

https://github.com/django/django/blob/9c9ef5835200a1bc6410d2769b9699baba9f9a8b/django/middleware/django/middleware/

Можно ли переписать заголовок http_referer на https? пример

 http://192.168.1.5/application/page -> https://upstream.backend/application/page
1
задан 17 December 2017 в 22:24
1 ответ

У меня больше опыта работы с Apache. Но файлы .conf во многом такие же.

Итак, вы в основном хотите переписать все запросы http на https?

И 192.168.1.5 разрешается в upstream.backend в вашем DNS?

Если это так, и вы используете последние версии, вам сначала нужно сгенерировать сертификат SSL для использования .. Достаточно просто, вы предполагаете, что вы используете дистрибутив Linux, поэтому я проведу вас через это через оболочку или ssh:

  1. cd / etc / nginx
  2. sudo openssl req -x509 -nodes -days 365 -newkey rsa: 2048 -keyout /etc/nginx/cert.key -out / etc / nginx / cert. crt

введите свою информацию, и будет сгенерирован 2048-битный (неподписанный) сертификат, который вы можете использовать для порта nginx 443. Поскольку вы находитесь в локальной сети, покупка SSL-сертификата будет пустой тратой. .

Отсюда вам нужно заполнить / etc / nginx / sites-enabled / default всей указанной выше информацией, такой как домены, расположение сертификатов (не забудьте указать nginx, чтобы он прослушивал порт 443) .. следующий шаг - для прохода прокси:

... местоположение / {

proxy_set_header        Host $host;
proxy_set_header        X-Real-IP $remote_addr;
proxy_set_header        X-Forwarded-For $proxy_add_x_forwarded_for;
proxy_set_header        X-Forwarded-Proto $scheme;

proxy_pass          http://192.168.1.5/application/page;
proxy_read_timeout  90;

proxy_redirect      http://192.168.1.5/application/page https://upstream.backend/application/page;

} ...

ПРИМЕЧАНИЕ: Это может сработать, а может и не сработать, поскольку я пропустил пару вещей, которые обычно не использовал бы. Я бы попробовал это. Если nginx не поддерживает «приложение / страницу», попробуйте просто http://192.168.1.5 и https: //upstream.backend .

Если ничего не помогает, поиск "jenkins", с которым я не знаком.

Ура

1
ответ дан 3 December 2019 в 23:22

Теги

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