2016-04-06 66 views
1

我有一臺運行Ubuntu 14.04的Digital Ocean服務器,以及兩個通過Docker容器運行的Web應用程序。一個是Ghost容器,另一個是Jupyter容器(https://hub.docker.com/r/jupyter/notebook/)。我也運行一個nginx代理容器(https://github.com/jwilder/nginx-proxy)。如何讓websockets在nginx代理後面的特定子域名?

問題是websocket無法正常工作,Jupyter要求啓用它們才能工作。我有Jupyter服務於http://notes.rooday.com/,並且訪問它可以工作,但由於禁用了websocket,它無法連接到ipython內核。我試圖研究如何解決這個問題,最近我得到了這個nginx配置文件https://paste.ubuntu.com/5620850/

但是,我不知道如何將該配置文件應用於nginx代理容器,尤其是以不會干擾我的也位於nginx代理(位於http://blog.rooday.com/)後面的Ghost容器的方式。

有人能指出我正確的方向嗎?

回答

0

忘記編輯這個,因爲我發現真正的問題回事(Andy Shinn是正確的,這不是配置問題)。

實際的問題不是我的碼頭集裝箱,甚至任何數字海洋服務器本身,而是Cloudflare的問題。 Cloudflare尚不支持Websockets,因此使用它的任何域都必須在Cloudflare DNS面板中變得灰濛濛。

Reference

1

聽起來你想要做的是在jwilder/nginx-proxy容器中爲一個虛擬主機添加一個自定義的Nginx配置文件。

根據jwilder/nginx-proxycontainer documentation 您必須安裝一個包含Nginx配置文件的卷。要做到這一點添加以下到您的docker run命令

-v /path/to/vhost.d:/etc/nginx/vhost.d:ro 

那麼你的機器上/path/to/vhost.d創建一個名爲notes.rooday.com文件,並添加自定義Nginx的配置。


  1. 在一路底部,頭: 「自定義Nginx的Configuration.Per-VIRTUAL_HOST」
+1

這實際上是問題嗎?根據nginx-proxy回購,它應該已經通過Upgrade頭支持WebSockets:https://github.com/jwilder/nginx-proxy/blob/master/nginx.tmpl。 –

+0

@AndyShinn你說得對,我在一個單獨的答案中提供了正確的修復。 – ROODAY