0

我在我的 Windows 服务器上的 node.js 中运行良好的 greenlock express。但是,我向服务器添加了更多 IP 地址,发现 node.js 和 greenlock 正在侦听 0.0.0.0 上的 443 端口,从而占用了所有 IP 地址。

如何告诉 greenlock 仅在一个特定 IP 地址上侦听端口 443?

我可以添加任何配置值吗?

var greenlock = require('greenlock-express')
    .init({ 
        packageRoot: __dirname,
        maintainerEmail: "....",
        configDir: './greenlock.d',
        cluster: false
     });
4

1 回答 1

1

那在示例文件夹中https://git.rootprojects.org/root/greenlock-express.js/src/branch/master/examples/https/server.js

这是您需要查看的文件夹以进行更高级的用途。

"use strict";

// The WRONG way:
//var https = require('https');
//var httpsServer = https.createServer(tlsOptions, app);
//
// Why is that wrong?
// Greenlock needs to change some low-level http and https options.
// Use glx.httpsServer(tlsOptions, app) instead.

//require("greenlock-express")
require("../../")
    .init({
        packageRoot: __dirname,
        configDir: "./greenlock.d",

        maintainerEmail: "jon@example.com",
        cluster: false
    })
    .ready(httpsWorker);

function httpsWorker(glx) {
    //
    // HTTPS 1.1 is the default
    // (HTTP2 would be the default but... https://github.com/expressjs/express/issues/3388)
    //

    // Get the raw https server:
    var httpsServer = glx.httpsServer(null, function(req, res) {
        res.end("Hello, Encrypted World!");
    });

    httpsServer.listen(443, "0.0.0.0", function() {
        console.info("Listening on ", httpsServer.address());
    });

    // Note:
    // You must ALSO listen on port 80 for ACME HTTP-01 Challenges
    // (the ACME and http->https middleware are loaded by glx.httpServer)
    var httpServer = glx.httpServer();

    httpServer.listen(80, "0.0.0.0", function() {
        console.info("Listening on ", httpServer.address());
    });
}

我看到你留下了一个问题(昨天?),但我忘了回复。

于 2020-02-06T05:14:00.710 回答