如何阻止来自代理服务器到 nginx 网络服务器的外部请求

如何阻止来自代理服务器到 nginx 网络服务器的外部请求

我在 nginx Web 服务器上托管了 Web 应用程序。我想禁用任何代理服务器对我的 Web 服务器 (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;
}

您还可以重定向到某些内容来向用户解释其为何不起作用。

相关内容