我最近改变了我的nginxconfigurationredirect所有httpstream量到https(和所有wwwstream量到no-www)。
add_header Strict-Transport-Security "max-age=31536000; includeSubDomains" always;添加add_header Strict-Transport-Security "max-age=31536000; includeSubDomains" always;是否有意义add_header Strict-Transport-Security "max-age=31536000; includeSubDomains" always; 我的服务器块以及? 或者这是不必要的,因为我已经redirect所有stream量? 知道优点(和缺点,如果有的话)将是伟大的。
在相关的情况下,我目前的虚拟主机configuration是:
server { server_name example.com www.example.com; listen 80; return 301 https://example.com$request_uri; } server { server_name www.example.com; listen 443 ssl; ssl_certificate /etc/nginx/ssl/cert_chain.crt; ... other SSL related config ... return 301 https://example.com$request_uri; } server { server_name example.com; listen 443 ssl; ... other SSL related config ... ... remaining server configuration ... }
HSTS告诉浏览器总是使用https,而不是http。 添加该configuration可能会减less从http转发到https的需求,因此可能会稍微提高网站性能,并且会稍微降低服务器负载。
作为参考,这里是我在我的基于Nginx的网站上使用的安全标头。 我将其保存到一个文件中,并将其包含在所有需要它的服务器中,包括http和https服务器。 它允许加载一些通用资源,如Google和Facebook。
# Security headers add_header Strict-Transport-Security "max-age=2592000; includeSubDomains; preload"; add_header X-Frame-Options DENY; add_header X-Content-Type-Options nosniff; add_header Content-Security-Policy "default-src 'self' www.google-analytics.com ajax.googleapis.com www.google.com google.com gstatic.com www.gstatic.com connect.facebook.net facebook.com;"; add_header X-XSS-Protection "1; mode=block"; add_header Referrer-Policy "origin";
澄清
你仍然需要http来httpsredirect。