端口号被剥离URL

时间:2014-06-22 09:57:05

标签: django nginx gunicorn

我有一个基于django的网站,通过gunicorn以nginx作为反向代理提供。它位于端口81上。配置文件的相关部分如下所示:

upstream elearning_server {
    server localhost:8000;
}

server {
    listen          81;
......

如果你去:

http://webaddress:81 

登录后第一次删除端口号,无法连接到网站。如果您然后将端口号放回到URL中,它可以正常工作。

有没有人建议我可以尝试解决这个问题。

1 个答案:

答案 0 :(得分:1)

正在发生的事情是,作为登录过程的一部分,您的网络服务器正在重定向'您的浏览器到不同的网址。问题是您的浏览器被重定向到的网址并不存在,因为它被重定向到错误的网址。修改Web地址时,您正在更正此错误。

显然,解决方案是在代码中纠正此问题,因此您可以直接发送到正确的网址,而无需更正此问题。

解决方案取决于您的代码。考虑到以下因素值得关注。

是否有类似的东西:

return HttpResponseRedirect('http://website/dir/')

在你的代码中某处?这需要改变以包括端口号,即

return HttpResponseRedirect('http://website:81/dir/')

或者,甚至更好,

return HttpResponseRedirect('/dir/')

(这意味着服务器所在的端口无关紧要,因为重定向是相对的。这是编写此类事物的常用方法。)< / p>

如果快速浏览一下来源并没有发光,我建议下一步是从Web服务器查看访问日志(也许是错误日志),然后查找&# 39; 3XX&#39;输入消息,可能是&#39; 301&#39;和&#39; 302&#39;消息,这可能会给你一些关于发生了什么的线索,以及代码中的位置。