0

私は、開発者と多くの文書化されていない情報を失ったサイトを再び機能させようとしています-助けを切望しています。サイトは以下の構成で動作しており、cherrypy(cherryd?)が正常に起動していないように感じます。

サイトは名前ベースの仮想ホストを使用していません。すべてがIPアドレスを使用して正常に実行されています。私たちはmod_pythonを使用しておらず、cherrypyはapacheで始まりません。

.htaccessの書き換えルールを介していくつかのリクエストをcherrypyにルーティングしています

RewriteRule ^ip/(.*) http://127.0.0.1:8081/$1 [proxy]

構成ファイル:(cpconfig.conf)

[global]
server.socket_port = 8081

私のために機能していないcherrydを開始するコマンド:

cherryd -d -i imageproc -c cpconfig.conf

Cherrypyが開始するようです:

ENGINE Listening for SIGHUP.
ENGINE Listening for SIGTERM.
ENGINE Listening for SIGUSR1.
ENGINE Bus STARTING
ENGINE Started monitor thread '_TimeoutMonitor'.
ENGINE Started monitor thread 'Autoreloader'.
ENGINE Serving on 127.0.0.1:8081
ENGINE Bus STARTED

そして、私たちのアプリのほとんどは正常に動作します。このアプリは、入力と画像のアップロードを使用して画面上に画像をレンダリングする設計ツールです。テキスト入力は正常に機能します。ただし、アプリのファイルアップロード部分を使用すると、ファイルはアップロードされているように見え(chromeの進行状況インジケーターによる)、待機してタイムアウトし、最終的に502プロキシエラーを返しますか?

この待機/タイムアウト時間の間、他のテキスト入力などを使用でき、cherrypyサーバーは迅速に応答します。画像が詰まっているだけです。

これがApacheが示すものです。長いエンコードされたURLは、キャンバス上の画像への変更を表し、すべてOKを返します。しかし、ファイルのアップロードは失敗します。

[Tue Jan 22 19:56:11 2013] [debug] proxy_util.c(1513): [client 67.176.56.45] proxy: *: found reverse proxy worker for http://127.0.0.1:8081/render?w=805&h=470&z=0.2&l=%5B%7B%22t%22%3A%2233%22%2C%22b%22%3Afalse%2C%22i%22%3Afalse%2C%22u%22%3Afalse%2C%22a%22%3A%22c%22%2C%22fs%22%3A11%2C%22f%22%3A0%2C%22x%22%3A0%2C%22y%22%3A0%2C%22arc%22%3Afalse%2C%22o%22%3A0%2C%22r%22%3A0%2C%22cw%22%3Atrue%7D%2C%7B%22t%22%3A%22%22%2C%22b%22%3Afalse%2C%22i%22%3Afalse%2C%22u%22%3Afalse%2C%22a%22%3A%22c%22%2C%22fs%22%3A11%2C%22f%22%3A0%2C%22x%22%3A0%2C%22y%22%3A0%2C%22arc%22%3Afalse%2C%22o%22%3A0%2C%22r%22%3A0%2C%22cw%22%3Atrue%7D%2C%7B%22t%22%3A%22%22%2C%22b%22%3Afalse%2C%22i%22%3Afalse%2C%22u%22%3Afalse%2C%22a%22%3A%22c%22%2C%22fs%22%3A11%2C%22f%22%3A0%2C%22x%22%3A0%2C%22y%22%3A0%2C%22arc%22%3Afalse%2C%22o%22%3A0%2C%22r%22%3A0%2C%22cw%22%3Atrue%7D%2C%7B%22t%22%3A%22%22%2C%22b%22%3Afalse%2C%22i%22%3Afalse%2C%22u%22%3Afalse%2C%22a%22%3A%22c%22%2C%22fs%22%3A11%2C%22f%22%3A0%2C%22x%22%3A0%2C%22y%22%3A0%2C%22arc%22%3Afalse%2C%22o%22%3A0%2C%22r%22%3A0%2C%22cw%22%3Atrue%7D%2C%7B%22t%22%3A%22%22%2C%22b%22%3Afalse%2C%22i%22%3Afalse%2C%22u%22%3Afalse%2C%22a%22%3A%22c%22%2C%22fs%22%3A11%2C%22f%22%3A0%2C%22x%22%3A0%2C%22y%22%3A0%2C%22arc%22%3Afalse%2C%22o%22%3A0%2C%22r%22%3A0%2C%22cw%22%3Atrue%7D%2C%7B%22t%22%3A%22%22%2C%22b%22%3Afalse%2C%22i%22%3Afalse%2C%22u%22%3Afalse%2C%22a%22%3A%22c%22%2C%22fs%22%3A11%2C%22f%22%3A0%2C%22x%22%3A0%2C%22y%22%3A0%2C%22arc%22%3Afalse%2C%22o%22%3A0%2C%22r%22%3A0%2C%22cw%22%3Atrue%7D%5D&g=%5B%5D&b=, referer: http://97.107.141.248/design/new/1209
[Tue Jan 22 19:56:11 2013] [debug] mod_proxy.c(993): Running scheme http handler (attempt 0)
[Tue Jan 22 19:56:11 2013] [debug] mod_proxy_http.c(1940): proxy: HTTP: serving URL http://127.0.0.1:8081/render?w=805&h=470&z=0.2&l=%5B%7B%22t%22%3A%2233%22%2C%22b%22%3Afalse%2C%22i%22%3Afalse%2C%22u%22%3Afalse%2C%22a%22%3A%22c%22%2C%22fs%22%3A11%2C%22f%22%3A0%2C%22x%22%3A0%2C%22y%22%3A0%2C%22arc%22%3Afalse%2C%22o%22%3A0%2C%22r%22%3A0%2C%22cw%22%3Atrue%7D%2C%7B%22t%22%3A%22%22%2C%22b%22%3Afalse%2C%22i%22%3Afalse%2C%22u%22%3Afalse%2C%22a%22%3A%22c%22%2C%22fs%22%3A11%2C%22f%22%3A0%2C%22x%22%3A0%2C%22y%22%3A0%2C%22arc%22%3Afalse%2C%22o%22%3A0%2C%22r%22%3A0%2C%22cw%22%3Atrue%7D%2C%7B%22t%22%3A%22%22%2C%22b%22%3Afalse%2C%22i%22%3Afalse%2C%22u%22%3Afalse%2C%22a%22%3A%22c%22%2C%22fs%22%3A11%2C%22f%22%3A0%2C%22x%22%3A0%2C%22y%22%3A0%2C%22arc%22%3Afalse%2C%22o%22%3A0%2C%22r%22%3A0%2C%22cw%22%3Atrue%7D%2C%7B%22t%22%3A%22%22%2C%22b%22%3Afalse%2C%22i%22%3Afalse%2C%22u%22%3Afalse%2C%22a%22%3A%22c%22%2C%22fs%22%3A11%2C%22f%22%3A0%2C%22x%22%3A0%2C%22y%22%3A0%2C%22arc%22%3Afalse%2C%22o%22%3A0%2C%22r%22%3A0%2C%22cw%22%3Atrue%7D%2C%7B%22t%22%3A%22%22%2C%22b%22%3Afalse%2C%22i%22%3Afalse%2C%22u%22%3Afalse%2C%22a%22%3A%22c%22%2C%22fs%22%3A11%2C%22f%22%3A0%2C%22x%22%3A0%2C%22y%22%3A0%2C%22arc%22%3Afalse%2C%22o%22%3A0%2C%22r%22%3A0%2C%22cw%22%3Atrue%7D%2C%7B%22t%22%3A%22%22%2C%22b%22%3Afalse%2C%22i%22%3Afalse%2C%22u%22%3Afalse%2C%22a%22%3A%22c%22%2C%22fs%22%3A11%2C%22f%22%3A0%2C%22x%22%3A0%2C%22y%22%3A0%2C%22arc%22%3Afalse%2C%22o%22%3A0%2C%22r%22%3A0%2C%22cw%22%3Atrue%7D%5D&g=%5B%5D&b=
[Tue Jan 22 19:56:11 2013] [debug] proxy_util.c(1999): proxy: HTTP: has acquired connection for (*)
[Tue Jan 22 19:56:11 2013] [debug] proxy_util.c(2055): proxy: connecting http://127.0.0.1:8081/render?w=805&h=470&z=0.2&l=%5B%7B%22t%22%3A%2233%22%2C%22b%22%3Afalse%2C%22i%22%3Afalse%2C%22u%22%3Afalse%2C%22a%22%3A%22c%22%2C%22fs%22%3A11%2C%22f%22%3A0%2C%22x%22%3A0%2C%22y%22%3A0%2C%22arc%22%3Afalse%2C%22o%22%3A0%2C%22r%22%3A0%2C%22cw%22%3Atrue%7D%2C%7B%22t%22%3A%22%22%2C%22b%22%3Afalse%2C%22i%22%3Afalse%2C%22u%22%3Afalse%2C%22a%22%3A%22c%22%2C%22fs%22%3A11%2C%22f%22%3A0%2C%22x%22%3A0%2C%22y%22%3A0%2C%22arc%22%3Afalse%2C%22o%22%3A0%2C%22r%22%3A0%2C%22cw%22%3Atrue%7D%2C%7B%22t%22%3A%22%22%2C%22b%22%3Afalse%2C%22i%22%3Afalse%2C%22u%22%3Afalse%2C%22a%22%3A%22c%22%2C%22fs%22%3A11%2C%22f%22%3A0%2C%22x%22%3A0%2C%22y%22%3A0%2C%22arc%22%3Afalse%2C%22o%22%3A0%2C%22r%22%3A0%2C%22cw%22%3Atrue%7D%2C%7B%22t%22%3A%22%22%2C%22b%22%3Afalse%2C%22i%22%3Afalse%2C%22u%22%3Afalse%2C%22a%22%3A%22c%22%2C%22fs%22%3A11%2C%22f%22%3A0%2C%22x%22%3A0%2C%22y%22%3A0%2C%22arc%22%3Afalse%2C%22o%22%3A0%2C%22r%22%3A0%2C%22cw%22%3Atrue%7D%2C%7B%22t%22%3A%22%22%2C%22b%22%3Afalse%2C%22i%22%3Afalse%2C%22u%22%3Afalse%2C%22a%22%3A%22c%22%2C%22fs%22%3A11%2C%22f%22%3A0%2C%22x%22%3A0%2C%22y%22%3A0%2C%22arc%22%3Afalse%2C%22o%22%3A0%2C%22r%22%3A0%2C%22cw%22%3Atrue%7D%2C%7B%22t%22%3A%22%22%2C%22b%22%3Afalse%2C%22i%22%3Afalse%2C%22u%22%3Afalse%2C%22a%22%3A%22c%22%2C%22fs%22%3A11%2C%22f%22%3A0%2C%22x%22%3A0%2C%22y%22%3A0%2C%22arc%22%3Afalse%2C%22o%22%3A0%2C%22r%22%3A0%2C%22cw%22%3Atrue%7D%5D&g=%5B%5D&b= to 127.0.0.1:8081
[Tue Jan 22 19:56:11 2013] [debug] proxy_util.c(2153): proxy: connected /render?w=805&h=470&z=0.2&l=%5B%7B%22t%22%3A%2233%22%2C%22b%22%3Afalse%2C%22i%22%3Afalse%2C%22u%22%3Afalse%2C%22a%22%3A%22c%22%2C%22fs%22%3A11%2C%22f%22%3A0%2C%22x%22%3A0%2C%22y%22%3A0%2C%22arc%22%3Afalse%2C%22o%22%3A0%2C%22r%22%3A0%2C%22cw%22%3Atrue%7D%2C%7B%22t%22%3A%22%22%2C%22b%22%3Afalse%2C%22i%22%3Afalse%2C%22u%22%3Afalse%2C%22a%22%3A%22c%22%2C%22fs%22%3A11%2C%22f%22%3A0%2C%22x%22%3A0%2C%22y%22%3A0%2C%22arc%22%3Afalse%2C%22o%22%3A0%2C%22r%22%3A0%2C%22cw%22%3Atrue%7D%2C%7B%22t%22%3A%22%22%2C%22b%22%3Afalse%2C%22i%22%3Afalse%2C%22u%22%3Afalse%2C%22a%22%3A%22c%22%2C%22fs%22%3A11%2C%22f%22%3A0%2C%22x%22%3A0%2C%22y%22%3A0%2C%22arc%22%3Afalse%2C%22o%22%3A0%2C%22r%22%3A0%2C%22cw%22%3Atrue%7D%2C%7B%22t%22%3A%22%22%2C%22b%22%3Afalse%2C%22i%22%3Afalse%2C%22u%22%3Afalse%2C%22a%22%3A%22c%22%2C%22fs%22%3A11%2C%22f%22%3A0%2C%22x%22%3A0%2C%22y%22%3A0%2C%22arc%22%3Afalse%2C%22o%22%3A0%2C%22r%22%3A0%2C%22cw%22%3Atrue%7D%2C%7B%22t%22%3A%22%22%2C%22b%22%3Afalse%2C%22i%22%3Afalse%2C%22u%22%3Afalse%2C%22a%22%3A%22c%22%2C%22fs%22%3A11%2C%22f%22%3A0%2C%22x%22%3A0%2C%22y%22%3A0%2C%22arc%22%3Afalse%2C%22o%22%3A0%2C%22r%22%3A0%2C%22cw%22%3Atrue%7D%2C%7B%22t%22%3A%22%22%2C%22b%22%3Afalse%2C%22i%22%3Afalse%2C%22u%22%3Afalse%2C%22a%22%3A%22c%22%2C%22fs%22%3A11%2C%22f%22%3A0%2C%22x%22%3A0%2C%22y%22%3A0%2C%22arc%22%3Afalse%2C%22o%22%3A0%2C%22r%22%3A0%2C%22cw%22%3Atrue%7D%5D&g=%5B%5D&b= to 127.0.0.1:8081
[Tue Jan 22 19:56:11 2013] [debug] proxy_util.c(2308): proxy: HTTP: fam 2 socket created to connect to *
[Tue Jan 22 19:56:11 2013] [debug] proxy_util.c(2414): proxy: HTTP: connection complete to 127.0.0.1:8081 (127.0.0.1)
[Tue Jan 22 19:56:11 2013] [debug] mod_proxy_http.c(1723): proxy: start body send
[Tue Jan 22 19:56:11 2013] [debug] mod_proxy_http.c(1816): proxy: end body send
[Tue Jan 22 19:56:11 2013] [debug] proxy_util.c(2017): proxy: HTTP: has released connection for (*)
[Tue Jan 22 19:56:21 2013] [debug] proxy_util.c(1513): [client 67.176.56.45] proxy: *: found reverse proxy worker for http://127.0.0.1:8081/upload, referer: http://97.107.141.248/design/new/1209
[Tue Jan 22 19:56:21 2013] [debug] mod_proxy.c(993): Running scheme http handler (attempt 0)
[Tue Jan 22 19:56:21 2013] [debug] mod_proxy_http.c(1940): proxy: HTTP: serving URL http://127.0.0.1:8081/upload
[Tue Jan 22 19:56:21 2013] [debug] proxy_util.c(1999): proxy: HTTP: has acquired connection for (*)
[Tue Jan 22 19:56:21 2013] [debug] proxy_util.c(2055): proxy: connecting http://127.0.0.1:8081/upload to 127.0.0.1:8081
[Tue Jan 22 19:56:21 2013] [debug] proxy_util.c(2153): proxy: connected /upload to 127.0.0.1:8081
[Tue Jan 22 19:56:21 2013] [debug] proxy_util.c(2308): proxy: HTTP: fam 2 socket created to connect to *
[Tue Jan 22 19:56:21 2013] [debug] proxy_util.c(2414): proxy: HTTP: connection complete to 127.0.0.1:8081 (127.0.0.1)
[Tue Jan 22 20:01:22 2013] [error] [client 67.176.56.45] (70007)The timeout specified has expired: proxy: error reading status line from remote server 127.0.0.1, referer: http://97.107.141.248/design/new/1209
[Tue Jan 22 20:01:22 2013] [debug] mod_proxy_http.c(1401): [client 67.176.56.45] proxy: read timeout, referer: http://97.107.141.248/design/new/1209
[Tue Jan 22 20:01:22 2013] [error] [client 67.176.56.45] proxy: Error reading from remote server returned by /ip/upload, referer: http://97.107.141.248/design/new/1209
[Tue Jan 22 20:01:22 2013] [debug] proxy_util.c(2017): proxy: HTTP: has released connection for (*)

ログを伝達するためのより良い方法がある場合は、何が好ましいかを教えてください。

とにかく、8081で聞いているものは他にありません。

これは、画像のアップロードに関係するアプリ自体の何らかのエラーを示していますか?上記のようにcherrypy(cherryd)を強制終了して再起動し、すべてが機能する時点にアプリコードを復元しようとしましたが、それでも機能しません。

新しい情報: 私のアプリを次のように実行します:python imageproc.py

私のアプリにはクイックスタートコールがあるので、トリックを行います。ポートの問題はありません。画像がアップロードされ、すべてが機能します。しかしもちろん、用語ウィンドウを閉じるとプロセスが終了します。だから私はまだチェリーピーを地面から取り除くための適切な方法を探しています。

私がどんなポインターにも必死に言ったように..ありがとう

4

2 に答える 2

0

画像のサイズが、CherryPyによって設定されたデフォルトの許可されたリクエストエンティティサイズ(100Mb IIRC)よりも大きい可能性があります。

リクエストエンティティがしきい値よりも大きい場合、CherryPyはリクエストを中止し、413エラーコードで応答します。

グローバル設定で次の値を設定してみてください。

[global]
server.max_request_body_size = 20971520000

これにより、200Mbに設定されます。

編集: CherryPyプロセスをデーモンに変える方法は次のとおりです。

import cherrypy

class Root(object):
    @cherrypy.expose
    def index(self):
        return "hello world"

if __name__ == '__main__':
    cherrypy.config.update({'server.socket_port': 8081,
                            'server.socket_host': '0.0.0.0'})

    from cherrypy.process.plugins import Daemonizer
    cherrypy.config.update({'log.screen': False})
    Daemonizer(cherrypy.engine).subscribe()

    cherrypy.quickstart(Root())
于 2013-01-23T13:26:53.713 に答える
0

私が残した唯一の残りの質問は元の質問に関連していないので、私はこの質問に答えています。

私のアプリはcherrypy.quickstartを呼び出していたので、次のコマンドでアプリを起動する必要がありました。

python appname.py&

したがって、cherrydを使用することは間違ったアプローチであり、上記の奇妙なポート/プロキシ関連のエラーが発生しました。

初心者として、コマンドの最後に「&」を追加するとアプリがバックグラウンドで実行され、ターミナルウィンドウを閉じることができることを理解するのに少し時間がかかりました。

この組み合わせにより、事態が悪化する前に、このプロジェクトの元の場所に戻ることができました。

私の残りの質問は、cherrypyサービスをcronで稼働させ続けることについてですが、それは私がさらに調査する別の質問です。

于 2013-01-23T18:49:28.320 に答える