Обратный прокси-сервер nginx показывает пустую страницу, если реферер установлен в заголовке - PullRequest
0 голосов
/ 25 октября 2019

У меня есть сайт, который, если реферер установлен в заголовке, что в большинстве случаев (например, ссылка из поисковой системы), превратится в пустую страницу, там есть код ответа 200, но нет тела ответа! Но если вы введете адрес сайта в браузере, он будет работать нормально, так как нет реферера.

, если я настрою proxy_set_header Referer "";, тогда он будет работать нормально.

Я думаю, что это будет проблемой втаким образом, например, если я хочу использовать CDN. Итак, что вызывает эту проблему? и как решить это?

upstream inxedu_web {
    session_sticky mode=insert option=indirect;
    server 127.0.0.1:1011;

    check interval=3000 rise=2 fall=2 timeout=1000 type=http;
    check_http_send "HEAD / HTTP/1.0\r\n\r\n";
    check_http_expect_alive http_2xx http_3xx;
}

server {
    listen  443 ssl;

    server_name www.vimooc.org ;
    ssl_certificate /home/tom/yinkuSSLCert/www/full_chain.pem;
    ssl_certificate_key /home/tom/yinkuSSLCert/www/private.key;

        location /socket.io/{
                proxy_pass http://socket_nodes;
        }

        location ~* \.(html|htm|shtml|zip|rar|doc|docx|xls|xlsx|ppt|ppts|gif|jpg|jpeg|png|bmp|swf|ico|js|css)$ {
                root /data/htdocs/inxedu_web;
        }

        location /  {
                proxy_set_header Host $host;
                proxy_set_header Referer $http_referer;
                proxy_set_header X-Forwarded-For $remote_addr;
                #proxy_set_header X-Forwarded-Proto  $scheme;
                proxy_redirect  off;
                session_sticky_hide_cookie upstream=inxedu_web;
                proxy_pass http://inxedu_web;
        }
        access_log off;
}

Тогда я подумал, что это может быть проблема более поздней стадии, в tomcat или коде сайта.

Я попытался использовать это в Tomcat web.xml, чтобы разрешитьвсе происхождение, все еще не работает.

<filter>
<filter-name>CorsFilter</filter-name>
<filter-class>org.apache.catalina.filters.CorsFilter</filter-class>
<init-param>
<param-name>cors.allowed.origins</param-name>
<param-value>*</param-value>
</init-param>
</filter>
<filter-mapping>
<filter-name>CorsFilter</filter-name>
<url-pattern>/*</url-pattern>
</filter-mapping>
Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...