2015-05-05 47 views
1

我收到錯誤消息:「XMLHttpRequest無法爲套接字調用加載/socket.io」。有什麼問題,我沒有得到它。我是新來的網絡套接字,我的其他API調用運行良好,但socket.io調用不起作用。我已經爲nginx安裝了SSL證書,幫助我們。在socket.io的情況下,'XMLHttpRequest無法加載/socket.io'

我的nginx的配置是

server{ 
     listen 80; 
     server_name example.com; 
     return 301 https://$server_name$request_uri; 
} 
server { 
#listen 80; 
listen 443 ssl; 

     # Make site accessible from http://localhost/ 
     server_name www.example.com; 
     ssl_certificate "/home/oodles4/sslcertificate/public.crt"; 
     ssl_certificate_key "/home/oodles4/sslcertificate/keyfile.key"; 
     proxy_set_header X-Forwarded-For $remote_addr; 

     add_header Strict-Transport-Security "max-age=31536000; includeSubdomains"; 

#location/{ 
       root "/home/oodles4/Documents/dcx/user/dev"; 
       #root "/home/oodles4/Documents/dcx/explorer"; 
       index home.html home.htm; 
       # First attempt to serve request as file, then 
       # as directory, then fall back to displaying a 404. 
       # Uncomment to enable naxsi on this location 
       # include /etc/nginx/naxsi.rules 
    #  } 
     location /{ 
     fastcgi_param SCRIPT_FILENAME  $document_root$fastcgi_script_name; 
      fastcgi_param PATH_INFO   $fastcgi_script_name; 
                                   9,51   2% 
#location/{ 
       root "/home/oodles4/Documents/dcx/user/dev"; 
       #root "/home/oodles4/Documents/dcx/explorer"; 
       index home.html home.htm; 
       # First attempt to serve request as file, then 
       # as directory, then fall back to displaying a 404. 
       # Uncomment to enable naxsi on this location 
       # include /etc/nginx/naxsi.rules 
    #  } 
     location /{ 
     fastcgi_param SCRIPT_FILENAME  $document_root$fastcgi_script_name; 
      fastcgi_param PATH_INFO   $fastcgi_script_name; 

      fastcgi_param SERVER_PROTOCOL  $server_protocol; 
      fastcgi_param QUERY_STRING  $query_string; 
      fastcgi_param REQUEST_METHOD  $request_method; 
      fastcgi_param CONTENT_TYPE  $content_type; 
      fastcgi_param CONTENT_LENGTH  $content_length; 
      fastcgi_param SERVER_ADDR   $server_addr; 
      fastcgi_param SERVER_PORT   $server_port; 
      fastcgi_param SERVER_NAME   $server_name; 
      fastcgi_param HTTPS    on; 
      fastcgi_param HTTP_SCHEME   https; 
} 
     location /admin{ 
       alias "/home/oodles4/Documents/dcx/admin/dev"; 
       index home.html home.htm; 
     } 

     location /api { 
       proxy_pass http://localhost:8080/api; 
     } 

     location /admin/api{ 
       proxy_pass http://localhost:8080/api; 
     } 


location /explorer{ 
       alias "/home/oodles4/Documents/dcx/explorer"; 
#    try_files $uri $uri/ /views/main/main.html; 
       index dev/views/main/main.html; 
     } 

     location /explorer/api{ 
       proxy_pass http://localhost:3000/api; 
     } 

當我做'/探險家,我所有的API調用和插座將工作

var socket = io.connect('http://www.example.com:3000', { 
     'reconnect': true, 
     'reconnection delay': 500 
    }); 

回答

0

我猜你的服務器塊偵聽端口80, 443. 但你沒有任何服務器塊在3000上偵聽。 在這裏,我假設你有任何應用程序運行在端口3000.

只需將此塊添加到當前的nginx配置。

server { 
    server_name example.com www.example.com; 
    location/{ 
     proxy_pass http://localhost:3000/; 
    } 
}