2016-01-26 68 views
0

我嘗試使用Iframely。 https://iframely.com/docs/hostnginx + node.js =使用iframely連接到上游時失敗

當我開始節點是這樣的:: # node server Iframely效果很好 否則,我得到一個502錯誤網關的錯誤,我在我的服務器的Ubuntu + nginx的安裝自託管版本。

ERROR

在日誌中的錯誤:

2016/01/25 06:06:58 [error] 13265#0: *4476 connect() failed (111: Connection refused) while connecting to upstream, client: xx:xx:xx:xx:xx:xx, server: iframely.custom.com, request: "GET /iframely?url=http://coub.com/view/2pc24rpb HTTP/1.1", upstream: "http://127.0.0.1:8061/iframely?url=http://coub.com/view/2pc24rpb", host: "iframely.custom.com" 

當我嘗試: # curl -i 127.0.0.1:8061/iframely?url=http://coub.com/view/2pc24rpb

它確認錯誤: curl: (7) Failed to connect to 127.0.0.1 port 8061: Connection refused

我與節點開始,據我所知,也許node.js不在端口8061上偵聽。

當我嘗試: netstat -pantu

我沒有看到有問題的端口,但像這樣的由其他的Node.js應用程序使用該作品完美他人:

tcp6 0 0 127.0.0.1:4567 127.0.0.1:60724 ESTABLISHED 12329/node

配置

我的主機配置:

upstream iframely.custom.com { 
     ip_hash; 
     server localhost:8061; 
     keepalive 8; 
} 
server { 

     listen 80; 
     listen [::]:80; 
     server_name iframely.custom.com; 
     root /usr/share/nginx/html/iframely.custom.com; 

     # Logs 
     access_log /var/log/iframely.access_log; 
     error_log /var/log/iframely.error_log; 

     location/{ 
       proxy_set_header X-Real-IP $remote_addr; 
       proxy_set_header X-Forwarded-For $proxy_add_x_forwarded_for; 
       proxy_set_header Host $http_host; 
       proxy_set_header X-NginX-Proxy true; 

       proxy_pass http://iframely.custom.com/; 
       proxy_redirect off; 

       # Socket.IO Support 
       proxy_http_version 1.1; 
       proxy_set_header Upgrade $http_upgrade; 
       proxy_set_header Connection "upgrade"; 
     } 

     # Exclude from the logs to avoid bloating when it's not available 
     include drop.conf; 

} 

我試圖在127.0.0.1的配置localhost中進行更改,但它不會改變任何內容。

如何讓一個node.js應用程序保持活躍狀態​​:我是否必須永遠重新啓動它? 它可能是一個ipv4或ipv6的問題?

我在serverfault上發佈這個問題,因爲我認爲這是nginx配置的問題。但有人建議我錯了。

非常感謝您的幫助。 JB

回答

1

首先,你應該讓節點應用到監聽端口8061,它應該在「netstat的-tpln」例如: - 顯示

tcp  0  0 127.0.0.1:8061   0.0.0.0:*    LISTEN  21151/node 

其次,你應該捲曲測試。如果採取了響應,那麼節點服務器完美地工作。

最後,將焦點轉移到nginx。

+0

謝謝你的測試。最後我解決了這個問題,你可以看到之後。 – jbo

1

只有一個後端,使用upstream模塊沒有任何好處。您可以移除upstream部分,更新您的proxy_pass一行:

proxy_pass http://127.0.0.1:8061/; 

它也可以在後臺監聽的IP,但沒有響應名爲「localhost」。這是不可能的,但可能的。但它必須監聽某個IP地址,因此使用IP地址更安全。

以上弗拉季斯拉夫的建議也很好。

+0

謝謝你的回答,實際上,我使用多節點應用程序。關於我的問題,上游終於似乎處理。 – jbo

相關問題