Às vezes, quando estou desenvolvendo um site local que faz uso de subdomínios e / ou domínios alternativos, quero links para recursos na marcação para resolver corretamente. Este pequeno servidor proxy node.js escuta certos hosts na porta 80 e encaminha essas solicitações para uma porta que o vagrant está escutando. Esta é uma maneira de esfolar um gato: do meu jeito.
Ele deve ser executado em sua máquina host, quando o vagrant estiver ouvindo na porta 8080, e você tiver os hosts desejados listados nas /etc/hosts
máquinas host e convidado.
var http = require('http');
var server = http.createServer(function(req,res){
console.log(req.headers.host + req.url);
var config = {
"path": req.url,
"port": 8080,
"method": req.method,
"host": req.headers.host,
"agent": false
};
config.headers = req.headers;
var req2 = http.request(config,function(res2){
res.statusCode = res2.statusCode;
// depending on your use case, you may wish to omit certain headers
var omit_headers = ['x-content-length','x-date','x-etag','x-last-modified'];
for (var k in res2.headers) {
if ( omit_headers.indexOf(k) === -1 ) {
res.setHeader(k,res2.headers[k]);
}
}
res2.on('data',function(chunk){
res.write(chunk);
});
res2.on('end',function(){
res.end();
});
});
req2.on('error', function(e) {
console.log('problem with request: ' + e.message);
});
req2.end();
});
['mydomain.dev','z.mydomain.dev'].forEach(function(thishost){
server.listen(80,thishost,function(){
console.log('listening for ' + thishost + ' on :80');
});
});