У меня есть веб-приложение, размещенное на веб-сервере nginx. Я хочу отключить запросы с любого прокси-сервера к моему веб-серверу (nginx).
Мне нужно вернуть 403 для тех, кто запрашивает через прокси-сервер.
Есть ли способ проверить X-Forwarded-For, установленный в запросе, и не разрешить эти запросы от nginx?
или любой другой способ добиться этого?
upstream tomcat_srv
{
server 127.0.0.1:8080;
server 127.0.0.1:8081;
}
server
{
listen 443 ssl http2;
add_header X-Content-Type-Options nosniff;
add_header X-Frame-Options DENY;
server_name exam.test.com;
ssl_certificate /etc/nginx/ssl/test/ssl-bundle.crt;
ssl_certificate_key /etc/nginx/ssl/test/test.com.key;
ssl_session_cache shared:SSL:10m;
ssl_session_timeout 5m;
ssl_prefer_server_ciphers on;
ssl_protocols TLSv1 TLSv1.1 TLSv1.2;
ssl_ciphers ALL:!aNULL:!KRB5:!PSK:!MD5:!ADH:!eNULL:!LOW:!EXP:RC4+RSA:+HIGH:+MEDIUM;
if ($http_x_forwarded_for) {
return 403;
}
location / {
proxy_pass http://tomcat_srv;
}
}
Возможно, вы блокируете еще несколько вещей, но это должно сработать:
if ($http_x_forwarded_for) {
return 403;
}
Вы также можете перенаправить на то, что объясняет, почему это не работает для пользователей.