我有一个基于django的网站,通过gunicorn以nginx作为反向代理提供。它位于端口81上。配置文件的相关部分如下所示:
upstream elearning_server {
server localhost:8000;
}
server {
listen 81;
......
如果你去:
http://webaddress:81
登录后第一次删除端口号,无法连接到网站。如果您然后将端口号放回到URL中,它可以正常工作。
有没有人建议我可以尝试解决这个问题。
答案 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;消息,这可能会给你一些关于发生了什么的线索,以及代码中的位置。