我有一个在Debian 7服务器上运行的Express javascript服务器。我大约在8到10天前进行了设置,效果很好。我可以请求所有可用的路径并获得正确的响应。
今天,我意识到由于某种原因,请求https://example.com:1234/examplepath不再有效。我登录到服务器,发现快递服务器仍在运行,但没有任何请求通过。因此,我停止了服务器并尝试再次启动它。但是8到10天前起作用的东西现在突然抛出了错误
events.js:160
throw er; // Unhandled 'error' event
^
Error: getaddrinfo ENOTFOUND example.com
at errnoException (dns.js:28:10)
at GetAddrInfoReqWrap.onlookup [as oncomplete] (dns.js:76:26)
以下是我的server.js的相关代码。
const app = express();
const helmet = require('helmet');
app.use(helmet());
app.use(helmet.contentSecurityPolicy({
directives: {
defaultSrc:["'self'"]
}
}));
app.use(helmet.expectCt());
app.use(helmet.noCache());
app.use(helmet.referrerPolicy());
const port = 1234;
const hostname = 'example.com';
const options = {
key: fs.readFileSync('/etc/letsencrypt/live/example.com/privkey.pem'),
cert: fs.readFileSync('/etc/letsencrypt/live/example.com/fullchain.pem')
};
...
MongoClient.connect(db.url, (error, database) => {
if (error) return console.log(error);
require('./app/routes')(app, database.db("placeholder"), config);
https.createServer(options, app).listen(port, hostname, () => {
console.log('We are live on ' + hostname + ':' + port);
});
});
使用 https.createServer 创建服务器是可行的,但是调用 listen()会引发顶部提到的错误。证书是最新的,并且 .listen(port,'localhost',()可以正常工作。
我没有更改代码或服务器上的任何内容。
答案 0 :(得分:0)
好吧,原来我的域名提供商搞砸了。一切都会恢复正常。