2017-07-27 14 views
0

私はDjango/Pythonアプリケーションをホモログ環境にデプロイしました。アプリケーションはDjango Rest Frameworkを使用してRESTを実装します。Django Rest Frameworkはlocalhostでのパッチングで正常に動作しますが、ホモログ環境では失敗します

私はホモログ環境をテストしており、部分的に更新したいリソースには少し問題があります。しかし、localhostのテストアプリはうまく動作します。

ローカルホスト: 私はhttpieを使用してAPIリソースを消費しています。以下のコマンドは、ローカルホストでオブジェクトexperimentにPATCHを送信します。

http -a lab1:'nep-lab1' PATCH http://127.0.0.1:8000/api/experiments/11/ status='to_be_analysed' 

とそのすべての権利は、PATCHが正常に行われています。

ホモログ: ホモログ環境では、同じコマンドが失敗します。

http -a lab1:'nep-lab1' PATCH http://myhomologenv.com.br/api/experiments/11/ status='to_be_analysed' 

エラー:

HTTP/1.0 400 Bad Request 
Connection: close 
Content-Length: 2065 
Content-Type: text/html 
Date: Thu, 27 Jul 2017 18:48:48 GMT 
Server: squid/2.7.STABLE9 
Via: 1.0 athena.ime.usp.br:3128 (squid/2.7.STABLE9) 
X-Cache: MISS from athena.ime.usp.br 
X-Cache-Lookup: NONE from athena.ime.usp.br:3128 
X-Squid-Error: ERR_INVALID_REQ 0 

<html><head> 
<meta http-equiv="Content-Type" content="text/html; charset=utf-8"> 
<title>ERROR: The requested URL could not be retrieved</title> 
<style type="text/css"><!-- 
%l 

body 
:lang(fa) { direction: rtl; font-size: 100%; font-family: Tahoma, Roya, sans-serif; float: right; } 
:lang(he) { direction: rtl; } 
--></style> 
</head><body id="ERR_INVALID_REQ"> 
<div id="titles"> 
<h1>ERROR</h1> 
<h2>The requested URL could not be retrieved</h2> 
</div> 
<hr> 

<div id="content"> 
<p><b>Invalid Request</b> error was encountered while trying to process the request:</p> 

<blockquote id="data"> 
<pre>PATCH /api/experiments/12 HTTP/1.1 
Host: portal-dev.numec.prp.usp.br 
Connection: keep-alive 
Accept-Encoding: gzip, deflate 
Accept: application/json, */* 
User-Agent: HTTPie/0.9.8 
Content-Type: application/json 
Content-Length: 28 
Authorization: Basic bGFiMTpuZXAtbGFiMQ== 

{&quot;status&quot;: &quot;to_be_analysed&quot;}</pre> 
</blockquote> 

<p>Some possible problems are:</p> 
<ul> 
<li id="missing-method"><p>Missing or unknown request method.</p></li> 
<li id="missing-url"><p>Missing URL.</p></li> 
<li id="missing-protocol"><p>Missing HTTP Identifier (HTTP/1.0).</p></li> 
<li><p>Request is too large.</p></li> 
<li><p>Content-Length missing for POST or PUT requests.</p></li> 
<li><p>Illegal character in hostname; underscores are not allowed.</p></li> 
<li><p>HTTP/1.1 <q>Expect:</q> feature is being asked from an HTTP/1.0 software.</p></li> 
</ul> 

<p>Your cache administrator is <a href="mailto:webmaster">webmaster</a>.</p> 
<br> 
</div> 

<script language="javascript"> 
if ('[unknown method]' != '[unknown method]') document.getElementById('missing-method').style.display = 'none'; 
if ('[no URL]' != '[no URL]') document.getElementById('missing-url').style.display = 'none'; 
if ('[unkown protocol]' != '[unknown protocol]') document.getElementById('missing-protocol').style.display = 'none'; 
</script> 

<hr> 
<div id="footer"> 
<p>Generated Thu, 27 Jul 2017 18:48:48 GMT by athena.ime.usp.br (squid/2.7.STABLE9)</p> 
<!-- ERR_INVALID_REQ --> 
</div> 
</body></html> 

私はオブジェクトurl年代を作るためにDefaultRouterを使用しています。 ローカルホスト:使用するツールとパッケージについて

続きを

  • sqlite3の
  • 仮想サーバー
  • Debianの9

ホモログ:

  • のPostgres 9.4.6
  • のApache/2.4.10(Debianの)
  • のDebian 8.3

両方:

  • ジャンゴ== 1.11.2
  • djangorestframework = = 3.6.3
  • コアアピ== 2.3.1

答えて

0

応答としては、システム管理者に確認してください。 このレスポンスはSquidから生成されるので、Djangoプロジェクトにも到達しません。

関連する問題