2015-05-04 43 views
3

我试图将我的nodejs应用程序配置为在具有域名的本地主机上运行。Nodejs无法在ws:// apache代理上建立与服务器的连接

所以,我对当地的网站是http://app.local指向http://localhost/app

现在我对的NodeJS应用程序运行于6060端口http://localhost:6060

我想配置localhost:6060http://app.local/nodejs

工作这是我的apache配置文件。

<VirtualHost app.local> 
    ServerAdmin [email protected] 
    ServerName app.local 
    ServerAlias app.local 

    DocumentRoot /var/www/app 

    ProxyPass /service http://localhost:3000 
    ProxyPassReverse /service/ http://localhost:3000/ 

    ProxyPass /nodejs http://localhost:6060 
    ProxyPassReverse /nodejs/ http://localhost:6060/ 

    ProxyPass /nodejs ws://localhost:6060 
    ProxyPassReverse /nodejs/ ws://localhost:6060/ 

    <Directory > 
     Options FollowSymLinks 
     AllowOverride None 
    </Directory> 

    <Directory /var/www/app> 
     Options Indexes FollowSymLinks MultiViews 
     AllowOverride All 
     Order allow,deny 
     allow from all 
    </Directory> 

    ScriptAlias /cgi-bin/ /usr/lib/cgi-bin/ 
    <Directory "/usr/lib/cgi-bin"> 
     AllowOverride None 
     Options +ExecCGI -MultiViews +SymLinksIfOwnerMatch 
     Order allow,deny 
     Allow from all 
    </Directory> 

    ErrorLog ${APACHE_LOG_DIR}/error.log 

    # Possible values include: debug, info, notice, warn, error, crit, 
    # alert, emerg. 
    LogLevel warn 

    CustomLog ${APACHE_LOG_DIR}/access.log combined 

    Alias /doc/ "/usr/share/doc/" 
    <Directory "/usr/share/doc/"> 
     Options Indexes MultiViews FollowSymLinks 
     AllowOverride None 
     Order deny,allow 
     Deny from all 
     Allow from 127.0.0.0/255.0.0.0 ::1/128 
    </Directory> 


</VirtualHost> 

我的JavaScript代码听发出:

var socket = io.connect('http://app.local/', {path:'/nodejs/socket.io/', port: 6060}); 
socket.on('connect', function(){ 
    console.log("Connected"); 
}); 

当我试图通过这个网址http://app.local/nodejs运行应用程序,它抛出以下错误:

Firefox can't establish a connection to the server at ws://app.local/nodejs/socket.io/?EIO=3&transport=websocket&sid=NQ2LSn--THwZkrStAAAH.

我跟着这个question但仍然无法正常工作。

我使用的Apache/2.4.7(Ubuntu的)

回答

1

尝试以下操作:

变化

var socket = io.connect('http://app.local/', {path:'/nodejs/socket.io/', port: 6060}); 

var socket = io.connect('http://app.local:6060'); 
+0

为什么将这项工作?看起来和他以前一样。 – kabuto178

相关问题