Node.js 子域仅在我使用Nginx和通配符添加端口号时工作

Node.js 子域仅在我使用Nginx和通配符添加端口号时工作,node.js,nginx,server,wildcard,wildcard-subdomain,Node.js,Nginx,Server,Wildcard,Wildcard Subdomain,我正在使用nginx创建一个web服务器,我确实设法让所有东西都正常工作,但是我的服务器被破坏了,所以我需要重新做一次,现在我面临着一个我没有遇到的问题 我使用Nodejs和express 我确实安装了通配符 当我导航到主页时,一切正常,它正在工作,但是当我转到任何其他页面时,我必须添加:3000才能工作,否则我会被带到主页(如果我尝试子域),如果我不得不说“example.com/page1”,我会得到404 假设我的域名是example.com 要转到dom.example.com,我需要输

我正在使用nginx创建一个web服务器,我确实设法让所有东西都正常工作,但是我的服务器被破坏了,所以我需要重新做一次,现在我面临着一个我没有遇到的问题

我使用Nodejs和express

我确实安装了通配符

当我导航到主页时,一切正常,它正在工作,但是当我转到任何其他页面时,我必须添加:3000才能工作,否则我会被带到主页(如果我尝试子域),如果我不得不说“example.com/page1”,我会得到404

假设我的域名是example.com

要转到dom.example.com,我需要输入dom.example.com:3000,否则我将被带到example.com

这是我的配置文件:

server {
    listen 80;
    server_name www.example.com example.com *.example.com;
    location / {
        proxy_pass http://localhost:3000/;
    }
}
和我的节点服务器:

const express = require('express');
const app = express();
var sub = require('wildcard-subdomains')

app.use(sub({
    namespace: 's',
    whitelist: ['www', 'app'],
}))
.get('/', (req, res) => {
    res.send("Hello World!");
})
.get('/s/:p/', (req, res) => {
    res.send(`sub domain`)
    console.log('ooo')
})

const port = 3000;
const server = app.listen(port, () => {
    console.log(`Listening on http://localhost:${port}`);
});

也许是应用程序重定向了它。您是否尝试过为代理权限设置标头?我进行了服务器重置,重新启动,但您遇到了一个问题,如果我删除子域上的:3000,它将直接转到https,然后您需要一个带证书的443块我添加了add_header Strict Transport Security max age=0;现在它不会重定向,但如果我不添加问题,它会直接转到主页:问题比我想象的更复杂,我正在编辑问题