Сервер Bokeh + обратное проксирование с помощью Nginx дает 404

Я пытаюсь настроить сервер Bokeh и обратный прокси-сервер с помощью Nginx.

Теперь мой p-website.conf выглядит так:

server { listen 80; server_name website.com; client_max_body_size 25M; access_log /var/www/logs/p-website.access.nginx.log; error_log /var/www/logs/p-website.error.nginx.log error; root /var/www/pydocs/website/production/src; include global/restrictions.conf; location /plot/ { proxy_pass http://website.com:5100; proxy_set_header Upgrade $http_upgrade; proxy_set_header Connection "upgrade"; proxy_http_version 1.1; proxy_set_header X-Forwarded-For $proxy_add_x_forwarded_for; proxy_set_header Host $host:$server_port; proxy_buffering off; } location / { proxy_set_header X-Forwarded-For $proxy_add_x_forwarded_for; # enable this if and only if you use HTTPS, this helps Rack # set the proper protocol for doing redirects: # proxy_set_header X-Forwarded-Proto https; proxy_set_header Host $http_host; proxy_redirect off; proxy_connect_timeout 10; proxy_read_timeout 60s; proxy_pass http://production_website_gunicorn; } } 

На сервере я запускаю сервер Bokeh с:

 bokeh serve bokehserver.py --port 5100 --host website.com:80 

Но когда я посещаю website.com/plot/, я получаю 404 от Bokeh, и серверный терминал дает мне: ПРЕДУПРЕЖДЕНИЕ: tornado.access: 404 GET / («здесь был ip-адрес») 3.04ms

Я не понимаю, почему он всегда дает 404, или это как-то связано с Nginx?

Благодаря!

Обновление 30/06

Хорошо, я думаю, что я еще шаг, и, надеюсь, в хорошем направлении. Теперь мой p-website.conf выглядит так:

 server { listen 80 default_server; server_name website.com; client_max_body_size 25M; access_log /var/www/logs/p-website.access.nginx.log; error_log /var/www/logs/p-website.error.nginx.log error; root /var/www/pydocs/magnify/production/src; include global/restrictions.conf; location / { allow 127.0.0.1:5100 proxy_pass http://127.0.0.1:5100; proxy_set_header Upgrade $http_upgrade; proxy_set_header Connection "upgrade"; proxy_http_version 1.1; proxy_set_header X-Forwarded-For $proxy_add_x_forwarded_for; proxy_set_header Host $host:$server_port; proxy_buffering off; } } 

Теперь я запускаю сервер с:

 bokeh serve bokehserver.py --port 5100 --host 127.0.0.1:80 

Теперь я больше не получаю 404, но «403: Запрещено», когда я перехожу на website.com:5100/bokehserver/. И это сообщение на терминале bokehserver:

 INFO:bokeh.server.tornado:Rejected connection from host 'website.com:5100' because it is not in the --host whitelist WARNING:tornado.access:403 GET /bokehserver/ (213.152.161.35) 0.78ms 

Я попытался исправить проблему с allow 127.0.0.1:5100 списком, добавив allow 127.0.0.1:5100 в p-website.conf, не повезло.

  • Python PIL: Как нарисовать эллипс в середине изображения?
  • Django Rest Framework записываемые вложенные сериализаторы
  • Selenium Webdriver - NoSuchElementExceptions
  • Как перечислить диапазон чисел, начиная с 1
  • Как делать «и» и «или» работать, когда они объединены в одном заявлении?
  • mainloop предотвращает запуск приложения Tkinter из IDLE
  • Компиляция модулей python с определением DEBUG на MSVC
  • Как использовать сокет в Python в качестве менеджера контекста?
  • One Solution collect form web for “Сервер Bokeh + обратное проксирование с помощью Nginx дает 404”

    Я понял это, видимо, вам нужно добавить –prefix = с таким же адресом в команду Bokeh:

     bokeh serve bokehserver.py --port 5100 --prefix=/plot/ --host website.com:80 

    И блок местоположения в p-website.conf будет выглядеть так:

     location /plot/ { proxy_pass http://127.0.0.1:5100; proxy_set_header Upgrade $http_upgrade; proxy_set_header Connection "upgrade"; proxy_http_version 1.1; proxy_set_header X-Forwarded-For $proxy_add_x_forwarded_for; proxy_set_header Host $host:$server_port; proxy_buffering off; } 
    Interesting Posts

    Выход для каждой ячейки для поточных IPython ноутбуков

    lldb python обрабатывает точку останова

    Как получить интерактивную консоль Python в текущем пространстве имен?

    Как использовать подзапросы в SQLAlchemy для получения скользящей средней?

    Эффективный способ запроса в цикле for в Google App Engine?

    Python Unittest: открыть и подождать, пока программа не будет закрыта.

    Python: преобразовать строку в целое число

    SQLAlchemy Column to Row Transformation и наоборот – возможно ли это?

    Как синхронизировать python dict с многопроцессорной обработкой

    Как функция sklearn.svm.svc функция pred_proba () работает внутри?

    Почему OrderedDict назван в случае с верблюдом, а defaultdict – в нижнем регистре?

    Подавление префиксов пространства имен в ElementTree 1.2

    wxPython: Как узнать, какой виджет имеет фокус?

    В Python, как мне преобразовать все элементы в список в float?

    Создание замкнутого многоугольника из граничных точек

    Python - лучший язык программирования в мире.