SORU
16 EYLÜL 2011, Cuma


Otomatik düğüm ile bağlantısı/yeniden yönlendirme HTTPS.js/express

HTTPS üzerinde çalışıyorum node.js bir projeyi kurmak için uğraşıyorum. Aslında bu örneğin node.js documentation izledim:

// curl -k https://localhost:8000/
var https = require('https');
var fs = require('fs');

var options = {
  key: fs.readFileSync('test/fixtures/keys/agent2-key.pem'),
  cert: fs.readFileSync('test/fixtures/keys/agent2-cert.pem')
};

https.createServer(options, function (req, res) {
  res.writeHead(200);
  res.end("hello world\n");
}).listen(8000);

Ben ne zaman şimdi

curl -k https://localhost:8000/

Anladım

hello world

beklendiği gibi. Ama eğer yaparsam

curl -k http://localhost:8000/

Anladım

curl: (52) Empty reply from server

Geriye dönüp bakıldığında bu şekilde çalışmaya devam eder bu çok açık görünüyor, ama aynı zamanda sonunda projemi ziyaret eden insan türü için gidiş değildirhttps://yadayada ve tüm Trafik düştükleri andan itibaren https olmak istiyorum.

Nasıl düğüm (ve bunu kullanıyorum çerçeve olarak İfade) https gelen tüm Trafik başkasına devretmek veya belirtilen olup olmadığı alabilir miyim? Bu ele aldığını herhangi bir belge bulmak mümkün olmamıştır. Yoksa sadece bir üretim ortamında, düğüm yönlendirme bu tür işler karşısında (örneğin nginx) oturur bir şeyler olduğu kabul edilir?

Bu web geliştirme içine benim ilk baskını, lütfen eğer bu kadar bariz bir şey ise cahilliğimi mazur görün.

CEVAP
17 EYLÜL 2011, CUMARTESİ


Ryan, doğru yönde beni işaret için teşekkürler. Biraz kod ve biraz çalışır cevap (2. paragraf) ben ete kemiğe bürünmüş. Bu senaryoda bu kod parçacıkları ifade uygulamamı koymak

// set up plain http server
var http = express.createServer();

// set up a route to redirect http to https
http.get('*',function(req,res){  
    res.redirect('https://mydomain.com' req.url)
})

// have it listen on 8080
http.listen(8080);

Https express server 3000 faks dinler. Bu düğümü kök olarak çalıştırmak zorunda değil bu yüzden bu kural kuralları ben belirlerim:

iptables -t nat -A PREROUTING -i eth0 -p tcp --dport 80 -j REDIRECT --to-port 8080
iptables -t nat -A PREROUTING -i eth0 -p tcp --dport 443 -j REDIRECT --to-port 3000

Hep birlikte, bu tam olarak istediğim gibi çalışıyor.

Bunu Paylaş:
  • Google+
  • E-Posta
Etiketler:

YORUMLAR

SPONSOR VİDEO

Rastgele Yazarlar

  • Andrey Menshikov

    Andrey Mensh

    28 Ocak 2012
  • Anthony Le

    Anthony Le

    10 EKİM 2006
  • Triune Films

    Triune Films

    9 ŞUBAT 2006