Не могу подключиться к https серверу официантки wsgi

Я попробовал учебник по фреймворку пирамиды Python, но https-соединение, независимо от того, насколько способна официантка. http://docs.pylonsproject.org/projects/pyramid/en/latest/tutorials/wiki2/installation.html

Если вы посмотрите на документы официантки, там есть пункт под названием «url_scheme» в формате pasteDeploy. Я попытался добавить в development.ini следующее:

# # #
# Wsgi server configuration
# # #

[server: main]
use = egg:waitress#main
host = 0.0.0.0
port = 6543
url_scheme = https

Но, похоже, прослушивание http-соединений выполняется командой pserve.

$ serve development.ini - reload
Starting subprocess with file monitor
Starting server in PID 2757.
serving on http://0.0.0.0:6543

Нет ответа при доступе браузера в этом состоянии. Приложение, которое я пытаюсь создать, ожидает доступа по https, но вы думаете, что есть пакет, необходимый для чего-то еще. Или я где-то в корне не прав? Буду признателен за советы специалистов.

Среда в fedora19, python 3.3.2. следующие пакеты, которые включены в virtualenv:

Chameleon == 2.12
Mako == 0.9.0
MarkupSafe == 0.18
PasteDeploy == 1.5.0
Pygments == 1.6
SQLAlchemy == 0.8.2
WebOb == 1.2.3
coverage == 3.7
nose == 1.3.0
pyramid == 1.4.5
pyramid-debugtoolbar == 1.0.8
pyramid-mako == 0.2
pyramid-tm == 0.7
repoze.lru == 0.6
transaction == 1.4.1
translationstring == 1.1
tutorial == 0.0
venusian == 1.0a8
waitress == 0.8.7
zope.deprecation == 4.0.2
zope.interface == 4.0.5
zope.sqlalchemy == 0.7.3

Пожалуйста, сообщите нам местонахождение документа было бы полезно для меня означает. Большое спасибо!


person user2897065    schedule 19.10.2013    source источник
comment
Вы пробовали localhost:6543   -  person ajknzhol    schedule 19.10.2013
comment
Спасибо за ваш ответ. Конечно, у меня есть доступ к хосту, на котором работает сервер wsgi. (192.168.3.5) ‹- браузер (192.168.3.3) Я думаю из-за стандартного вывода SQL успешное http соединение не появляется, оно не доходит до хоста в https. 'url_scheme' или не будет включен?   -  person user2897065    schedule 19.10.2013


Ответы (1)


Официантка на самом деле не поддерживает декодирование https-запросов. Единственный способ поддерживать https — это разместить официантку за обратным прокси-сервером, таким как nginx. Затем вы позволяете nginx расшифровать запрос и передать его официантке. Проблема здесь в том, что официантка теперь думает, что обслуживает http-запрос, потому что это то, что она видит из nginx. Настройка url_scheme предназначена для того, чтобы сообщить официантке, что все запросы, поступающие к официантке, на самом деле являются https, которые она может затем перенаправить в приложение, которое использует этот факт, чтобы помочь вашему приложению генерировать URL-адреса с использованием схемы https вместо http.

Надеюсь, это имеет смысл, но в любом случае вам должно быть ясно, что ваша настройка https не будет работать, если вы нигде в своих вставках не создали сертификат или закрытый ключ.

person Michael Merickel    schedule 20.10.2013
comment
Михаил, большое спасибо. Я прочитал исходный код официантки, следующие документы: docs.pylonsproject.jp/projects/pyramid_cookbook-ja/en/latest/ Я смог понять резюме. Я попробую. - person user2897065; 21.10.2013
comment
Я хотел бы сообщить о случае, который работал, как ожидалось. установка 'url_scheme = https' в development.ini. клиент --› nginx(192.168.3.5:443) -- пересылка --› официантка (localhost:6543) - person user2897065; 21.10.2013
comment
Извините, я не могу проанализировать из этого рабочего процесса то, что вы ожидали сработать. Параметр url_scheme просто сообщает вашему приложению протокол исходного запроса, но никоим образом не влияет ни на что другое. - person Michael Merickel; 21.10.2013
comment
Пара моментов: 1) Вы имеете в виду, что сертификат не может быть установлен в официантке (сервере приложений)? 2) Скорее он должен быть установлен на уровне веб-сервера (nginx)? 3) И эта настройка url_scheme только сообщает серверу приложений (официантке), какой протокол принимать? 4) Я знаю о сервере приложений gevent, который позволяет установить сертификат (см. danieleteti.it/gevent-and-flask-on-windows.html) - person variable; 12.03.2020