Назад | Перейти на главную страницу

как заблокировать внешний запрос, поступающий с прокси-сервера на веб-сервер 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;
                }


}

Возможно, вы блокируете еще несколько вещей, но это должно сработать:

if ($http_x_forwarded_for) {
    return 403;
}

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