Я использую nginx для своего приложения node.js. Я использовал Руководство по Digitalocean для настройки использования nginx и https. Прямо сейчас работает следующее:
http: // example.com -> https: // example.com
example.com -> https: // example.com
www.example.com -> https: // example.com
http: // www.example.com -> https: // example.com
но когда я ввожу https: // www.example.com, он не перенаправляет на https: // example.com
вот мой nginx congif на сайтах-доступных / по умолчанию
# HTTP - redirect all requests to HTTPS:
server {
listen 80;
listen [::]:80 default_server ipv6only=on;
return 301 https://$host$request_uri;
}
# HTTPS - proxy requests on to local Node.js app:
server {
listen 443;
server_name ezplan.ir;
ssl on;
# Use certificate and key provided by Let's Encrypt:
ssl_certificate /path/to.crt;
ssl_certificate_key /path/to.key;
ssl_session_timeout 5m;
ssl_protocols TLSv1 TLSv1.1 TLSv1.2;
ssl_prefer_server_ciphers on;
ssl_ciphers 'SSL STUFF';
# Pass requests for / to localhost:8080:
location / {
proxy_set_header X-Real-IP $remote_addr;
proxy_set_header X-Forwarded-For $proxy_add_x_forwarded_for;
proxy_set_header X-NginX-Proxy true;
proxy_pass http://localhost:8080/;
proxy_ssl_session_reuse off;
proxy_set_header Host $http_host;
proxy_cache_bypass $http_upgrade;
proxy_redirect off;
}
}
может ли кто-нибудь помочь мне сделать это перенаправление?
Для https можно сделать два блока - с www и без:
server {
listen 443;
server_name www.example.com;
// ...
return 301 https://example.com$request_uri;
}
server {
listen 443;
server_name example.com;
// ...
// your normal config here - proxy to node and all that
}