Я использую express и vhost , чтобы настроить несколько серверов на одном порту, каждый из которых имеет свой отдельный поддомен.Каждый сервер соответствует локальному каталогу в моей файловой системе.Они должны обслуживать только статические файлы.
~ / repos / server / app.js:
const fs = require('fs')
const path = require('path')
const express = require('express')
const vhost = require('vhost')
const app = express()
const PORT = 9000
const virtual_hosts = require('./virtual-hosts.json') // see below
app.use(express.static(path.join(__dirname, '../')))
virtual_hosts.forEach((vh) => {
var vh_app = express()
vh_app.use(express.static(path.join(__dirname, '../', vh.path)))
app.use(vhost(vh.domain, vh_app))
})
app.listen(PORT, () => {
console.log(`
Listening at http://localhost:${PORT}/
Press ctrl + c to stop.
`)
console.log('...')
})
~ / repos / server / virtual-hosts.json:
[
{ "domain": "repo1.localhost", "path": "./repo1/" },
{ "domain": "repo2.localhost", "path": "./repo2/" },
{ "domain": "repo3.localhost", "path": "./repo3/" }
]
После запуска node ~/repos/server/app.js
URL http://localhost:9000/repo1/index.html
работает во всех 3 браузерах, но http://repo1.localhost:9000/index.html
работает только в Chrome, но не в Firefox или Safari.
Что-то не так с моим кодом,или мне нужно изменить некоторые настройки браузера?