Nging перенаправить http и https на домен https:// (без www)
Это мой конфиг Nginx:
upstream app_server {
# Bindings to the Gunicorn server
server 127.0.0.1:8002 fail_timeout=0;
}
server {
listen 80;
server_name "~^www\.(.*)$";
return 301 https://$host$request_uri;
}
server {
access_log path_to_nginx-access.log;
error_log path_to_nginx-error.log;
listen 443 ssl;
server_name _;
ssl_certificate path_to_nginx.crt;
ssl_certificate_key path_to_nginx.key;
client_max_body_size 4G;
keepalive_timeout 5;
root path_to_root;
location / {
proxy_set_header X-Forwarded-For $proxy_add_x_forwarded_for;
proxy_set_header X-Forwarded-Proto $scheme;
proxy_set_header Host $host;
proxy_redirect off;
if (!-f $request_filename) {
proxy_pass http://app_server;
break;
}
}
error_page 500 502 503 504 /500.html;
location = /500.html {
root path_to_templates;
}
}
с этим конфигом я могу перенаправить:
- http://domain.com/ -> https://domain.com/
- https://domain.com/ -> https://domain.com/ (то же самое)
- http://www.domain.com/ -> https://domain.com/
- https://www.domain.com/ -> Ошибка
Как мне заставить мой сервер перенаправить https www на https не-www. Имейте в виду, что мне нужно обрабатывать несколько доменов на одном сервере Nginx (см. Имя_сервера).
Спасибо!
1 ответ
Для одного домена вы можете добиться этого следующим образом:
server {
listen 443;
server_name www.domain.com;
ssl_certificate path_to_certificate;
ssl_certificate_key path_to_key;
return 301 https://domain.com$request_uri;
}