2

I have an issue with login into django admin site which is almost the same question five years ago. Unfortunately, there is no specific answer until now. Here is the brief introduction for the question.

My nginx serves the 80 port and it will proxy all the URL starts with prefix to 8000 port which Django is listening.

location /prefix/ {
  proxy_pass http://0.0.0.0:8000/;
}

access /prefix/admin/, it gives me a 302 and redirect to /admin/login/?next=/admin/. However, if we access /prefix/admin/login, it works and we have the Django Administration login page as below.

enter image description here

However, if we are trying to login(url is /admin/login/) with username and password, it gives me a 404.

Let me make a summary, here we have two issues in total.

  1. prefix/admin not working, prefix/admin/login works.

  2. Login into the admin site(admin/login) not working.

The first issue has been solved by

location /prefix/admin/ {
  proxy_pass http://0.0.0.0:8000/admin/login/;
}

The second issue, however, not working by the following.

location = /admin/login {
  proxy_pass http://0.0.0.0:8000/admin/;
}

It told me that I have too many redirects. How can I fix this? Thanks in advance.

Edit:

I have compared my local login and remote login. Here is the local.

[16/Sep/2022 13:58:55] "POST /admin/login/?next=/admin/ HTTP/1.1" 302 0
[16/Sep/2022 13:58:55] "GET /admin/ HTTP/1.1" 200 6211

And here is the remote.

192.168.12.33 - - [16/Sep/2022:05:59:36 +0000] "POST /admin/login/?next=/admin/ HTTP/1.1" 302 0 "http://192.168.6.32/admin/login/?next=/admin/" "Mozilla/5.0 (Macintosh; Intel Mac OS X 10_15_7) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/105.0.0.0 Safari/537.36"
192.168.12.33 - - [16/Sep/2022:05:59:36 +0000] "GET /admin/ HTTP/1.1" 302 0 "http://192.168.6.32/admin/login/?next=/admin/" "Mozilla/5.0 (Macintosh; Intel Mac OS X 10_15_7) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/105.0.0.0 Safari/537.36"

In the remote, the second GET request returns 302.

haojie
  • 593
  • 1
  • 7
  • 19

0 Answers0