2016-10-13 92 views
0

我已經在gcloud上部署了一個webapp。我可以訪問http和https。但是它默認使用http。Nodejs渲染https gcloud

在獲取/發佈特定請求後,我希望重定向使用https而不是http。有沒有簡單的方法來做到這一點。

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

在谷歌雲我已經部署使用快遞框架構建的NodeJS服務器(HTTP只),但我能夠讓HTTP和HTTPS請求到服務器都得到相同的結果。有沒有辦法打電話給特定的請求,在這種情況下'/',我可以重定向'登錄'與'https'而不是'http'...現在我重定向到'http://server/login'我想去'https://server/login'沒有寫一個HTTPS服務器

據我所知,我可能需要像下面那樣構建'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網址。 – SLaks

回答

0

這是gcloud特有的。我通過在app.yaml中添加以下來解決它:

handlers: 
- url: /.* 
    script: IGNORED 
    secure: always