Same post is made here:
But I will make a shorter version (as much as possible)
I want to be able to ssh-tunnel into my Django website, so I can work
remotely. I’ve tested a simple Django project on my personal computer,
with
very simple nginx configuration (starter, default). I tunnel and
redirection returns with port number as part of the url. So I am sure
this
is not a Django problem. It’s mainly my nginx configuration.
Relevant code:
server {
# the forum service runs as local, listens to 8000 port... proxy_pass http://localhost:8000; proxy_redirect default; proxy_set_header Host $host; proxy_set_header X-Real-IP $remote_addr; proxy_set_header X-Forwarded-For $proxy_add_x_forwarded_for;
}
Then I ssh-tunnel, open the browser, http://localhost:1111, and when I
login, or do anything that requires redirection, I get
http://localhost/forum/front-page http://yahoo.com/ instead of
http://localhost:1111/froum/front-page http://yahoo.com/
These links are wrong, nginx will complain (from the server side) they
do
not exist.
I’ve tried stuff like
proxy_set_header $host:$server_port; # or
proxy_set_header $proxy_host:$proxy_port; # or
proxy_set_header $host:$proxy_port; # or
rewrite ^(.):(.)/forum(.)$ /$2 last;
#rewrite ^/forum(.)$ $1 break;
proxy_redirect http://localhost/ http://$host:$proxy_port;
The 2nd proxy_set_header shows a little progress. After pressing submit,
I
get a blank page, with the original url (http://localhost:1111/post and
then I see the same url again).
Any idea how to resolve my problem? Thanks.
John