NGINX重定向到root for escaped_fragment URI

时间:2016-03-14 00:43:35

标签: nginx https reverse-proxy prerender

我有一个非常奇怪的情况,NGINX(用作节点应用程序的代理)在使用https://domain.com 时将所有?_escaped_fragment_ =重定向到root(/)?_ escaped_fragment _ = / app / someurl但是当我使用https://dev.domain.com?_escaped_fragment_=/app/someurl时,一切正常。

只是想清楚地表明prerenderer运行良好,我已经在机器上直接测试了它,也使用了dev子域。

我可以为那些想要检查现场的人提供原始网址。

感谢一百万人:)

server {
    server_name domain.com www.domain.com;
    listen 80;
    return 301  https://domain.com$request_uri;
}

server {

    server_name domain.com;

    listen 443 ssl;

    ssl_certificate     /etc/nginx/ssl/***.crt;
    ssl_certificate_key /etc/nginx/ssl/***.key;

    location / {

        proxy_pass http://x.x.x.x:4567;
        proxy_http_version 1.1;
        proxy_set_header Upgrade $http_upgrade;
        proxy_set_header Connection 'upgrade';
        proxy_set_header Host $host;
        proxy_cache_bypass $http_upgrade;
    }
}

server {

    server_name dev.domain.com;

    location / {

        proxy_pass http://x.x.x.x:4567;
        proxy_http_version 1.1;
        proxy_set_header Upgrade $http_upgrade;
        proxy_set_header Connection 'upgrade';
        proxy_set_header Host $host;
        proxy_cache_bypass $http_upgrade;
    }
}

1 个答案:

答案 0 :(得分:0)

对于那些有类似经历的人,也许还有apache请注意,它不是NGINX,而是需要指定prerender中间件的应用程序.set('protocol','https'));

  

协议

     

硬件设置协议的选项。适用于可用的网站   在http和https上。

app.use(require('prerender-node').set('protocol', 'https'));