我有nginx web服务器托pipe的web应用程序。 我想禁用从任何代理服务器到我的networking服务器(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; }
你也可以redirect到解释为什么它不工作的用户。