9

python ピラミッドフレームワークのチュートリアルを試してみましたが、https 接続、いくらウェイトレスできても。 http://docs.pylonsproject.org/projects/pyramid/en/latest/tutorials/wiki2/installation.html

ウエイトレスさんの資料を見てみると、pasteDeploy形式の「url_scheme」という項目があります。以下を development.ini に追加しようとしました。

# # #
# Wsgi server configuration
# # #

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

しかし、pserve コマンドを実行すると、http 接続をリッスンしているようです。

$ 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

ドキュメントの場所を教えていただければ助かります。どうもありがとうございました!

4

1 に答える 1

9

ウェイトレスは実際には https リクエストのデコードをサポートしていません。https をサポートする唯一の方法は、ウェイトレスを nginx などのリバース プロキシの背後に配置することです。次に、nginx がリクエストを復号化してウェイトレスに渡すことを許可します。ここでの問題は、ウェイトレスが http リクエストを処理していると考えるようになったことです。このurl_scheme設定は、ウェイトレスに着信するすべてのリクエストが実際には https であることをウェイトレスに伝えるためのものであり、それをアプリケーションに転送できます。アプリケーションはその事実を利用して、アプリケーションが http の代わりに https スキームを使用して URL を生成できるようにします。

うまくいけばそれは理にかなっていますが、どちらの方法でも、ペーストのどこにも実際に証明書または秘密鍵を作成していない場合、https セットアップが機能しないことは明らかです。

于 2013-10-20T18:58:36.660 に答える