2016-10-13 33 views
0

gcloudにWebアプリケーションをデプロイしました。私はhttpとhttpsの両方にアクセスできます。しかし、デフォルトではhttpを使用します。Nodejsレンダリングhttps gcloud

特定のリクエストを取得/ポストすると、httpではなくhttpsを使用してリダイレクトします。これを行う簡単な方法はありますか? Googleのクラウド上

app.get('/login', 
    function(req, res){ 
    res.render('login'); 
    }); 

私は、サーバーへのHTTPおよびHTTPS要求をすることができています両方とも同じ結果をもたらすしかし、私は(HTTPのみ)速達のフレームワークを使用して構築されたNodejsサーバーを展開しています。特定のリクエスト(この場合は '/')を呼び出すための方法はありますか? 'http'の代わりに 'https'を使って 'login'にリダイレクトできます... 'http://server/login'にリダイレクトされますhttpsサーバを作成せずにhttps://server/loginに移動

私は、以下のように 'https'サーバを構築する必要があるかもしれないことを理解しています。私がこれを避ける方法はありますか?

var express = require('express'); 
var http = require('http'); 
var https = require('https'); 
var fs = require('fs'); 

server.get('/', function (req, res) { 
    res.send("Hello World!"); 
}); 

var sslOptions = { 
    key: fs.readFileSync('key.pem'), 
    cert: fs.readFileSync('cert.pem') 
}; 

https.createServer(sslOptions, server).listen(8443) 
+0

リクエストがHTTPであるかどうかを確認してから、リダイレクト応答を送信してください。 – SLaks

+0

レスポンスをHTTPSとしてレンダリングするための構文を探しています –

+0

HTTPSは_request_から来ています。 HTTPS URLにリダイレクトする必要があります。 – SLaks

答えて

0

これはgcloudに固有です。私はapp.yamlに下記を追加して解決しました

handlers: 
- url: /.* 
    script: IGNORED 
    secure: always 
関連する問題