У меня есть сайт, который, если реферер установлен в заголовке, что в большинстве случаев (например, ссылка из поисковой системы), превратится в пустую страницу, там есть код ответа 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>