nodejs http服务器无法访问apache的虚拟主机

时间:2014-01-18 08:51:11

标签: node.js apache proxy

我使用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帖子是针对其他服务器的。

1 个答案:

答案 0 :(得分:0)

您的Node.js代理已硬编码到端口80.您的VirtualHost位于8088.

您可以进行快速测试,在Node.js中更改80到8088,看看它是否有效。

相关问题