我使用nodejs在我的macbook上设置代理,并将我手机的wifi代理设置为我的macbook的ip, 它可以工作,但我无法通过手机访问我的虚拟主机(由我的macbook上的apache安装)。 这是节点js proxy。
;(function(){
var webServer;
function onWebServerCreate(request, response){
var client,clientOption,clientRequest;
clientOption = {
host: request.headers['host'],
post: 80,
method: request.method,
path: request.url,
headers: request.headers
}
clientRequest = http.request(clientOption);
clientRequest.addListener('response', function (clientResponse) {
clientResponse.addListener('data', function(chunk) {
response.write(chunk);
});
clientResponse.addListener('end', function() {
response.end();
});
response.writeHead(clientResponse.statusCode, clientResponse.headers);
});
request.addListener('data', function(chunk) {
clientRequest.write(chunk);
});
request.addListener('end', function() {
clientRequest.end();
});
request.on('error', function (err) {
});
}
webServer = http.createServer(onWebServerCreate)
webServer.listen(8089);
)();
这是我的虚拟主机:
<VirtualHost *:8088>
DocumentRoot "/Users/unbug/web/"
ServerName ilabs.test.com
ServerAdmin test@corp.netease.com
ErrorLog "/private/var/log/apache2/dummy-host2.example.com-error_log"
CustomLog "/private/var/log/apache2/dummy-host2.example.com-access_log" common
</VirtualHost>
我无法通过“ilabs.test.com:8088”或“我的macbook的IP:8088”访问我的虚拟主机 我无法更改我的虚拟主机设置。我必须通过nodeJS使其工作,如何使我的节点代理工作?
我可以看到我是否将我的虚拟主机的侦听器端口更改为80就可以了,但是80帖子是针对其他服务器的。
答案 0 :(得分:0)
您的Node.js代理已硬编码到端口80.您的VirtualHost位于8088.
您可以进行快速测试,在Node.js中更改80到8088,看看它是否有效。