2015-11-23 11 views
6

Utilizzo il nodo in combinazione con IIS utilizzando iisnode.HTTPS e iisnode

Mi sembra che le cose che stavo facendo in precedenza in Nodo per configurare il server possano ora essere eseguite direttamente in IIS.

le cose come:

  • https configurazione (e certificati)
  • http a https reindirizzamento

Questo significa che posso liberarmi del codice nodo che ha fatto e andare solo per il metodo IIS?

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

var options = { 
    key: fs.readFileSync('./ssl/xxxxxxx.private.pem'), 
    cert: fs.readFileSync('./ssl/xxxxxxx.public.pem'), 
}; 

https.createServer(options, app).listen(443); 

risposta

3

Sì. Si dovrebbe fare tutta la configurazione ssl su IIS e Windows.

Questo è quello che ho usato in produzione.

Nella domanda, semplicemente scrivendo

var app = express(); 
app.listen(process.env.port); 

Poi web.config per iisnode

<configuration> 
    <system.webServer> 

    <handlers> 
     <add name="iisnode" path="app.js" verb="*" modules="iisnode" /> 
    </handlers> 


<rewrite> 
    <rules> 
    <rule name="HTTP to Prod HTTPS redirect" stopProcessing="true"> 
     <match url="(.*)" /> 
     <conditions> 
     <add input="{HTTPS}" pattern="off" ignoreCase="true" /> 
     </conditions> 
     <action type="Redirect" redirectType="Found" url="https://{HTTP_HOST}/{R:1}" /> 
    </rule> 
    <!-- Don't interfere with requests for logs --> 
    <rule name="LogFile" patternSyntax="ECMAScript" stopProcessing="true"> 
     <match url="^[a-zA-Z0-9_\-]+\.js\.logs\/\d+\.txt$" /> 
    </rule> 
    <!-- Don't interfere with requests for node-inspector debugging --> 
    <rule name="NodeInspector" patternSyntax="ECMAScript" stopProcessing="true"> 
     <match url="^app.js\/debug[\/]?" /> 
    </rule> 
    <!-- First we consider whether the incoming URL matches a physical file in the  /public folder --> 
    <rule name="StaticContent"> 
     <action type="Rewrite" url="public{REQUEST_URI}" /> 
    </rule> 
    <!-- All other URLs are mapped to the Node.js application entry point --> 
    <rule name="DynamicContent"> 
     <conditions> 
     <add input="{REQUEST_FILENAME}" matchType="IsFile" negate="True" /> 
     </conditions> 
     <action type="Rewrite" url="app.js" /> 
    </rule> 
    </rules> 
</rewrite> 

    </system.webServer> 
</configuration>