PHP可以使用apache或nginx进行多站点搭建,而nodejs也可以实现。
Nginx操作
使用nginx监听8000端口的服务,并转发到80端口前端输出
server {
listen 80;
server_name test.charlesbao.com test2.charlesbao.com;
location / {
proxy_set_header X-Real-IP $remote_addr;
proxy_set_header X-Forwarded-For $proxy_add_x_forwarded_for;
proxy_set_header Host $http_host;
proxy_set_header X-NginX-Proxy true;
proxy_pass http://127.0.0.1:8000/;
proxy_redirect off;
}
}
NodeJS操作
安装相关库
npm install --save vhost express
主入口文件 app.js
var express = require('express');
var vhost = require('vhost')
var app = express();
// vhost domain
app.use(vhost('test.charlesbao.com', require('./vhost/test')))
app.use(vhost('test2.charlesbao.com', require('./vhost/test2')))
// catch 404 and forward to error handler
app.use(function(req, res, next) {
var err = new Error('Not Found');
err.status = 404;
next(err);
});
app.listen(8000);
【test.charlesbao.com】 主机入口文件 test/index.js
var express = require('express');
var app = express();
app.use('/', function(req,res,next){
res.send("hello world");
})
app.use(function(req, res, next) {
var err = new Error('Not Found');
err.status = 404;
next(err);
});
module.exports = app;
目录结构
- app.js <- 主入口
- vhost [dir]
- test [dir]
- index.js <- 主机入口
- test2 [dir]
- index.js <- 主机入口
- test [dir]