私は答えを探しましたが、答えはかなりシンプルだと思いますが、それを見つけることができませんでした。私はnginxの知識の私の不足のためだと思う...nginx/bottle python - 別のポートへのルート要求
私は自分のnginxのインスタンスをlocalhostで実行しています:8080と私のボトルサーバーlocalhostで聞いて:8081。ブラウザからアドレスを開くと正常に動作しますが、localhost:8080で実行しているアプリケーションからアクセスしようとすると、ボトルサーバーによって生成されたリソースを取得できません。
/data/pathへのすべての呼び出しを同じドメイン(localhost)にリダイレクトするだけですが、別のポート(8081)(ボトルサーバーがリッスンしている)をリダイレクトします。ここで
はコードです: Nginxは:
server {
listen 8080;
server_name localhost;
root /Users/Diego/Desktop;
location/{
index index.html index.htm;
}
location /data/ {
proxy_pass http://127.0.0.1:8081;
}
}
ボトルサーバ:
ブラウザで呼び出す@route('/')
def printtest():
print 'success'
return 'loaded page'
@route('/<scenename>/data/<filename:path>')
def testMethod(scenename,filename):
print scenename, filename
run(host='localhost', port=8081, debug=True)
は、localhost:場合8080は、その後、私はnginxの経由で提供ページを表示しますが、 /data/directory/filename.jsonに格納されているものを取得するためのリンクを呼び出しますが、Bottleは要求を受け取っていないようです。エラーログの状態:
2013/04/16 18:50:52 [error] 3544#10612: *69 CreateFile() "C:/Users/Diego/Desktop/project1/data/directory/directory-varietal.json" failed (3: The system cannot find the path specified), client: 127.0.0.1, server: localhost, request: "GET /project1/data/directory/directory-varietal.json HTTP/1.1", host: "localhost:8081", referrer: "http://localhost:8080/project1/"
誰でもこの種のリダイレクト/ルーティングを処理する方法を教えてください。
さらに、nginxのログにフィードを印刷する方法はありますか? print_entryなどのコマンドのようなものですか?
ありがとうございます!
編集:私はこれを試みたが、結果なし... https://serverfault.com/questions/208656/routing-to-various-node-js-servers-on-same-machine
EDITました:[OK]を、いくつかの改善、私はおそらく、クエリの場所の問題であることがわかりました。このブロックを使用して.jsonファイルを要求すると、実際にボトルサーバーに照会されます。
location ~* \.(json)$ {
proxy_pass http://localhost:8081;
}
EDIT:Yeee!私は解決策を見つけました...それは場所に定義されたパスに問題があることが判明しました。自己への注意:サーバー用http://wiki.nginx.org/HttpCoreModule#location
新しいコード:マニュアルを注意深く読み、読み
server {
listen 8080;
server_name localhost;
root /Users/Diego/Desktop;
location/{
index index.html index.htm;
}
location ~* /data/ {
proxy_pass http://localhost:8081;
}
}
をとにかく誰もがよりよい解決策を持っているか、いずれかの提案がより多くが、その後貢献することを歓迎されます。
あなたの意見を聞いてうれしいです。解決策を投稿するために戻ってきてくれてありがとう! –
@Dieghito、あなたのアップデートを適切な回答として投稿してください。あなた自身の質問に答えてもよい。 – Rod
ありがとう@Rod、done。 – Dieghito