Как заблокировать внешний запрос, поступающий с прокси-сервера на веб-сервер nginx
У меня есть веб-приложение, размещенное на веб-сервере 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;
}
}
1 ответ
Возможно, вы блокируете несколько других вещей, но это должно сработать:
if ($http_x_forwarded_for) {
return 403;
}
Вы также можете перенаправить на что-то, что объясняет, почему это не работает для пользователей.