У меня работает следующий код
Конфигурация Nginx выглядит следующим образом:
# first we declare our upstream server, which is our Gunicorn application
upstream hello_server {
# docker will automatically resolve this to the correct address
# because we use the same name as the service: "djangoapp"
server webapp:8888;
}
# now we declare our main server
server {
listen 8558;
server_name localhost;
location / {
# everything is passed to Gunicorn
proxy_pass http://hello_server;
proxy_set_header X-Forwarded-For $proxy_add_x_forwarded_for;
proxy_set_header Host $host;
proxy_redirect off;
}
}
Nginx сервер имеет переадресацию портов: 8555:8558
И запущенная команда gunicorn:
gunicorn --bind :8888 basic_django.wsgi:application
Теперь в моем браузере я открываю этот URL:
http://127.0.0.1:8555/login_register_password/user_login_via_otp_form_email
Теперь мой код в одном из моих представлений
prev_url = request.META['HTTP_REFERER']
# EG: prev_url = http://127.0.0.1:8555/login_register_password/user_login_via_otp_form_email
# we want to get the url from namespace . We use reverse. But this give relative url not the full url with domain
login_form_email_url_reverse = reverse("login_register_password_namespace:user_login_via_otp_form_email")
# EG: login_form_email_url_reverse = "/login_register_password/user_login_via_otp_form_email"
# to get the full url we have to use do the below
login_form_email_url_reverse_full = request.build_absolute_uri(login_form_email_url_reverse)
# EG: login_form_email_url_reverse_full = "http://127.0.0.1/login_register_password/user_login_via_otp_form_email"
Я использую prev_url
и login_form_email_url_reverse_full
как одинаковые, но разные
prev_url
домен - http://127.0.0.1:8555
, тогда как login_form_email_url_reverse_full
домен - http://127.0.0.1
почему это происходит.
Этого не происходит на сервере разработки. используя runserver
"HTTP_HOST": "127.0.0.1:8555",
"HTTP_REFERER": "http://127.0.0.1:8555/login_register_password/user_login_via_otp_form_email",
Где, как с nginx сервер: HTTP_HOST
изменяется, т.е. теперь без номера порта
"HTTP_HOST": "127.0.0.1",
"HTTP_REFERER": "http://127.0.0.1:8555/login_register_password/user_login_via_otp_form_email",