2013-02-24 1 views
2

Я хочу, чтобы пользователи могли получать доступ ко всем страницам сайта, используя как http, так и https.Как запустить docpad через ssl?

Я также хочу, чтобы иметь возможность перенаправлять HTTP-запросы для определенных путей (/ api/* и/backend/*), для которых требуется шифрование https (force https). версия

ответ

2

узел: v0.9.10

DocPad Версия: v6.21.10

Важное замечание: кажется, что документация для docpad config file устарела, я должен был вырыть источник, чтобы найти, что serverHttp и Параметры serverExpress теперь должны находиться под опцией сервера.

здесь проекта docpad.js файл:

var https = require('https'), 
path = require('path'), 
fs = require('fs'), 
express = require('express'); 

var sslOptions = { 
        key: fs.readFileSync(path.resolve(__dirname, "../../certificates/key.pem")), 
        cert: fs.readFileSync(path.resolve(__dirname, "../../certificates/cert.pem")) 
       }; 

serverExpress = express(); 
serverHttps = https.createServer(sslOptions, serverExpress); 

docpadConfig = { 
    environments: { 
     http: { 
      port: 80, 
      events: { 
       serverExtend: function (server) { 
        var i = 0; 

        // Redirect requests that requires https 
        server.server.get(/^\/(api|backend)\/.*/, function (req, res) { 
         res.redirect('https://' + req.headers.host + req.url) 
        }); 
       } 
      } 
     }, 
     https: { 
      port: 443, 
      server: { 
       serverHttp: serverHttps, 
       serverExpress: serverExpress 
      } 
     } 
    } 
}; 

module.exports = docpadConfig; 

Запуск двух сред с:

docpad --env "http" run 
docpad --env "https" run 

и это все.

+0

Человек, это здорово. Мне нравится ваш подход, основанный на окружающей среде. Отличная работа! Re "Мне пришлось копать источник, чтобы найти, что параметры serverHttp и serverExpress теперь должны быть под параметром сервера." похоже на ошибку, создал для него проблему: https://github.com/bevry/docpad/issues/457 – balupton

+0

Я рад, что вам понравилось :) Спасибо за разработку docpad. – theosp

 Смежные вопросы

  • Нет связанных вопросов^_^