У меня nginx работает с обработкой всего материала SSL и уже проксимируется /
экземпляром Redmine и /ci
в экземпляр Jenkins.
Теперь я хочу служить экземпляром IPython на /ipython
через тот же самый nginx.
В nginx.conf
я добавил:
http {
...
upstream ipython_server {
server 127.0.0.1:5001;
}
server {
listen 443 ssl default_server;
... # all SSL related stuff and the other proxy configs (Redmine+Jenkins)
location /ipython {
proxy_pass http://ipython_server;
}
}
}
В моем .ipython/profile_nbserver/ipython_notebook_config.py
у меня есть:
c.NotebookApp.base_project_url = '/ipython/'
c.NotebookApp.base_kernel_url = '/ipython/'
c.NotebookApp.port = 5001
c.NotebookApp.trust_xheaders = True
c.NotebookApp.webapp_settings = {'static_url_prefix': '/ipython/static/'}
Указание моего браузера на https://myserver/ipython
дает мне обычную индексную страницу всех ноутбуков в каталоге, в котором я запускал IPython.
Однако, когда я пытаюсь открыть один из существующих ноутбуков или создать новый, я получаю сообщение об ошибке:
Не удалось подключиться к WebSocket. Не удалось установить соединение с WebSocket. Вы не сможете запускать код. Проверьте сетевое подключение или конфигурацию сервера ноутбуков.
Я пробовал одну и ту же настройку с текущей версией версии stable (1.2.1, через pypi) и разработки (Git check master) IPython.
Я также попытался настроить конфигурацию nginx в соответствии с nginx обратными прокси-серверами безрезультатно.
Из-за принудительной политики я не могу разрешать подключения к серверу на других портах, чем 443.
Есть ли у кого-нибудь IPython, работающий за nginx?