我有一个用于网站的 expressjs 服务器。在开发过程中,它运行良好,在部署过程中,我尝试更改为默认端口 443 以摆脱 URL 中的端口。然而,这导致域根本无法解析。甚至直接向 ip 发出请求也不起作用。我使用的是 https 服务器。将端口更改为其他任何端口(允许的)都可以正常工作。甚至指定端口 80 也可以(因为服务器是 https,而 80 仅适用于 http)。我似乎无法解决这个问题。这是服务器端代码
const express = require('express');
const router = express.Router();
const app = express();
const models = require('./models');
const https = require('https');
const fs = require('fs');
const key = fs.readFileSync('path/to/key'); // From 'letsencrypt'
const cert = fs.readFileSync('path/to/chain'); // From 'letsencrypt'
const options = {
key: key,
cert: cert
};
router.get('/', (req,res) => {
res.send('No Route Found');
generate_log(req)
});
var server = https.createServer(options, app);
app.use('/', router);
const port = 80
server.listen(port, () => {
console.log(`server starting on port : ${port}`)
});
任何帮助都将不胜感激。谢谢。PS 防火墙配置正确。
编辑
我说无法解决的意思是需要很长时间才能找出问题所在。具体来说就是找不到服务器。只有当我使用“https://my_site.io”来使用默认的 443 端口时才会发生这种情况。当服务器在端口 8080 甚至 80“https://my_site.io:80”上启动时,它才能正常工作。这意味着这是我在 ubuntu 中的配置错误,而不是代码本身的错误。