我正在开发一个使用 gunicorn 和 nginx 的 Flask 应用程序,应该隐藏其服务器标头,因此我设法仅对主页执行此操作,如下所示:
gunicorn.conf.py
import gunicorn
gunicorn.SERVER = '.'
nginx.conf
events {
worker_connections 1024;
}
http{
include /etc/nginx/mime.types;
# include /etc/nginx/conf.d/*.conf;
server{
#server_tokens off;
proxy_pass_header Server; # get server from gunicorn
# let the browsers know that we only accept HTTPS
add_header Strict-Transport-Security max-age=2592000;
listen 80;
add_header Content-Security-Policy $CSPheader;
gzip on;
location / {
proxy_pass http://127.0.0.1:5000
proxy_set_header Host $host;
proxy_set_header X-Forwarded-Proto $scheme;
proxy_set_header X-Real-IP $remote_addr;
proxy_set_header X-Forwarded-For $proxy_add_x_forwarded_for;
client_max_body_size 5M;
}
location /static/ {
alias /home/app/static/;
proxy_set_header Cookie $http_cookie;
add_header X-Content-Type-Options nosniff;
}
}
}
因此,在我的“/”页面中我得到了
但在其他地方我展示的是我的服务器:
我不确定 nginx 和 gunicorn 之间的通信是如何工作的,但我似乎遇到了类似的问题这个帖子,但我不确定如何使用这些信息。
任何能真正隐藏我的服务器标头的帮助都将不胜感激。谢谢!