www以外のURLをwwwとhttpsにリダイレクトする際に問題があります。nginxはwwwとwwwとwwwとhttpsをdomain.comとサブドメインのためにリダイレクト
http://domain.com
http://www.domain.com
https://domain.com
はhttps://www.domain.com
にリダイレクトする必要があります。私が欲しいもの
。
http://api.domain.com
は、私はdomain.comとapi.domain.comためseperata SSLキーを持っているhttps://api.domain.com
にリダイレクトする必要があります。 api.domain.comのSSL設定はnode.jsアプリケーションで処理されます。さらに、domain.comは、ルート文書を使用し、api.domain.comは、私が試したどのポート1336
上のNode.jsアプリケーションにproxy_passを使用している:期待通りに働いている
# route non ssl api to ssl
server {
listen 80;
server_name api.domain.com;
return 301 https://api.domain.com;
}
# main ssl route for api.domain.com
server {
listen 443 ssl;
server_name api.domain.com;
location/{
proxy_pass https://localhost:1337;
proxy_http_version 1.1;
proxy_set_header Upgrade $http_upgrade;
proxy_set_header Connection 'upgrade';
proxy_set_header Host $host;
proxy_cache_bypass $http_upgrade;
}
}
# route non ssl to www ssl
server {
listen 80;
server_name www.domain.com domain.com;
return 301 https://www.domain.com;
}
# route non www ssl to ssl
server {
listen 443 ssl;
server_name domain.com;
return 301 https://www.domain.com;
}
# main ssl route for domain.com
server {
listen 443 ssl;
ssl on;
ssl_certificate /etc/letsencrypt/live/domain.com/fullchain.pem;
ssl_certificate_key /etc/letsencrypt/live/domain.com/privkey.pem;
server_name www.domain.com;
location/{
root /var/www/domain.com/www;
}
}
ルート: - >接続を確保していない
https://domain.com:動作していないhttps://www.domain.com http://domain.com http://www.domain.com
イオン、api.domain.comから証明書を使用しようとしているので(多分私が間違っていた別の方法で、前にそれを試してみましたので、これは、キャッシュすることができる)
https://api.domain.com->はhttps://domain.com
http://api.domain.comにリダイレクト - >https://domain.com
nginxのバージョンにリダイレクト:nginxの/ 1.4.6(Ubuntuの)