浏览器在部分网址的链接上添加逗号和域名

时间:2017-08-11 05:46:05

标签: python nginx

在我的python 3上,基于flask的网站最近从ubuntu 14.04升级到16.04。我注意到奇怪的事情当我在nginx(1.12.2)后面使用gunicorn运行我的网站并点击博客中的链接,这些链接在href标签中被定义为" / blog"一旦我点击它们我被重定向到domain.com,domain.com / blog?如果我将鼠标悬停在链接上,我会将其视为domain.com/blog。如果我在没有gunicorn和nginx的情况下本地启动站点,它可以正常工作。代码没有变化只是与os版本和nginx一起升级的模块。顺便说一句,我正在使用马戏团proc经理。

只需要指针可能导致这个问题?

2 个答案:

答案 0 :(得分:1)

在我的情况下,这是Nginx的问题。 当nginx配置是这样的时候:

       location / {
       include proxy_params;
       proxy_set_header   Host                 $host;
       proxy_set_header   X-Real-IP            $remote_addr;
       proxy_set_header   X-Forwarded-For      
       proxy_pass http://127.0.0.1:7001;
              }

我有:

Location : https://domain.test,domain.test 

两个逗号分隔的网址。 问题出现在/ etc / nginx / proxy_params

proxy_set_header Host $http_host;

我对它进行了评论,网站运行良好。 所以,正确的配置是:

           location / {
       # include proxy_params;  -- remove this line
       proxy_set_header   Host                 $host;
       proxy_set_header   X-Real-IP            $remote_addr;
       proxy_set_header   X-Forwarded-For      
       proxy_pass http://127.0.0.1:7001;
              }

答案 1 :(得分:0)

这可能是你的Nginx设置而不是枪炮的问题,因为我昨天遇到了同样的问题。我只是一个初学者,但我猜枪炮以某种意外的方式对标题中的“X-Forwarded-For”作出反应。

我的解决方案是:在网站启用(-available)下删除conf文件中的第一行,如果它不起作用,也删除第二行。

   proxy_set_header X-Forwarded-For $proxy_add_x_forwarded_for;
   proxy_set_header Host $host;