История изменений
Исправление beastie, (текущая версия) :
За долгую практику я осел на таком варианте:
// simply redirect anything to https
server {
listen *:80 default_server;
listen [::]:80 default_server;
server_name .example.org;
return 301 https://$host$request_uri;
}
// catch any non www. requests and redirect them to www.
server {
listen *:443 default_server ssl http2;
listen [::]:443 default_server ssl http2;
server_name .example.org;
add_header Strict-Transport-Security "max-age=31536000";
return 301 $scheme://www.example.org$request_uri;
}
// main config, explicit host name, actual host config goes here
server {
listen *:443 ssl http2;
listen [::]:443 ssl http2;
server_name www.example.org;
add_header Strict-Transport-Security "max-age=31536000";
// ...
}
Преимущество: простой, внятный и быстый конфиг главного блока, куда попадают 99.99% пользователей.
Недостаток: слоупоки, приходящие на 80, могут получить до двух 301 (http → https, non-www → www) — но это не так важно, т.к. таких от силы 0.01%.
Исправление beastie, :
За долгую практику я осел на таком варианте:
// simply redirect anything to https
server {
listen *:80 default_server;
listen [::]:80 default_server;
server_name .example.org;
return 301 https://$host$request_uri;
}
// catch any non www. requests and redirect them to www.
server {
listen *:443 default_server ssl http2;
listen [::]:443 default_server ssl http2;
server_name .example.org;
add_header Strict-Transport-Security "max-age=31536000";
return 301 $scheme://www.example.org$request_uri;
}
// main config, explicit host name, actual host config goes here
server {
listen *:443 ssl http2;
listen [::]:443 ssl http2;
server_name www.example.org;
add_header Strict-Transport-Security "max-age=31536000";
// ...
}
Преимущество: простой и быстый конфиг главного блока, куда попадают 99.99% пользователей.
Недостаток: слоупоки, приходящие на 80, могут получить до двух 301 (http → https, non-www → www) — но это не так важно, т.к. таких от силы 0.01%.
Исправление beastie, :
За долгую практику я осел на таком варианте:
// simply redirect anything to https
server {
listen *:80 default_server;
listen [::]:80 default_server;
server_name .example.org;
return 301 https://$host$request_uri;
}
// catch any non www. requests and redirect them to www.
server {
listen *:443 default_server ssl http2;
listen [::]:443 default_server ssl http2;
server_name .example.org;
add_header Strict-Transport-Security "max-age=31536000";
return 301 $scheme://www.example.org$request_uri;
}
// main config, explicit host name, actual host config goes here
server {
listen *:443 ssl http2;
listen [::]:443 ssl http2;
server_name www.example.org;
add_header Strict-Transport-Security "max-age=31536000";
// ...
}
Исходная версия beastie, :
За долгую практику я осел на таком варианте:
// simply redirect anything to https
server {
listen *:80 default_server;
listen [::]:80 default_server;
server_name .example.org;
return 301 https://$host$request_uri;
}
// catch any non www. requests and redirect them to www.
server {
listen *:443 default_server ssl http2;
listen [::]:443 default_server ssl http2;
server_name .example.org;
add_header Strict-Transport-Security "max-age=31536000";
return 301 $scheme://www.example.org$request_uri;
}
// main config, explicit host name, actual host config goes here
server {
listen *:443 ssl http2;
listen [::]:443 ssl http2;
server_name www.example.org;
add_header Strict-Transport-Security "max-age=31536000";
// ...
}