我要求我使用相同的端口号为多个站点(主机名)提供服务。
这些网站共享相同的代码文件,但区别在于它们具有不同的网站配置和文件上传文件夹。
基本上它只是一个可以托管各种域的cms,通常每个域都有自己的主题和配置,当然还有数据库连接。
有没有人可以就此给我一些指示?非常感谢 许多。
答案 0 :(得分:2)
var subdomains = require('express-subdomains')
, express = require('express')
, app = Express.createServer()
// example: api.example.com/user -> '/api/user'
subdomains
.use('api')
.use('other.vanity.domain')
app.use(subdomains.middleware)
app.get('/api/user' function (req, res, next) {
// ..
})
app.listen()
答案 1 :(得分:1)
每个站点都应该有自己的进程和端口,您应该根据主机名代理请求。
您可以使用node-http-proxy或bouncy将每个站点代理到其特定端口。另一种选择是使用Express的虚拟主机功能:https://github.com/visionmedia/express/blob/master/examples/vhost/app.js
答案 2 :(得分:1)
您可以从单个HTTP服务器代码库轻松支持多个域(请参阅virtual hosting),您只需在处理程序中实现逻辑以检查请求主机(例如,在Host
HTTP标头中并根据其价值有条件地行事。然后,您可以将任意数量的DNS名称指向您的服务器,并对它们采取不同的行为。
以下是一个例子:
http.createServer(function (request, response) {
var host = request.headers['Host'];
if (host == 'domain1.com') {
// Execute logic based on that host.
} else if (host == 'domain2.com') {
// Execute other logic...
}
}).listen(8080);