私はMongoバックエンドを備えたDjangoシステムに取り組んでおり、このセットアップを初めて試しています。かなり標準的な nginx-hands-off-to-Apache-for-python サーバーのセットアップがあります。これはすべて、同じサーバー上のより標準的な Django-MySQL アプリで機能するようです。
私の Django-Mongo アプリでは、「python manage.py shell」を使用すると、次のようになります。
from django.test.client import Client
client = Client()
response = client.get('/')
response.status_code
200
response.content
'<html>\n <head>\n <link href="/static/blog.css" rel="stylesheet" type="text/css">\n <title>Worldmaker</title>\n </head>\n <body>\n <ul>\n <li><a href="sourcedoc/create/">New Sourcedoc</a></li>\n <li><a href="sourcedoc/list/">All Sourcedocs</a></li>\n <li><a href="noun/create/">New Noun</a></li>\n <li><a href="noun/list/">All Nouns</a></li>\n </ul>\n <h1>Worldmaker</h1>\n \n\n </body>\n</html>\n\n'
ただし、http://www.mydomain.com/gogoworld/を参照すると、nginx 504 ページが表示されます。
504 ゲートウェイ タイムアウト nginx/1.4.1
私の /etc/nginx/sites-enabled/vhost にはこれが含まれています:
location /gogoworld/ {
proxy_pass http://127.0.0.1:84;
include /etc/nginx/proxy.conf;
}
私の /etc/apache2/httpd.conf にはこれが含まれています:
<Directory "/home/rosshartshorn/htdocs/gogoworld">
WSGIScriptAlias /gogoworld /home/rosshartshorn/htdocs/gogoworld/wsgi.py
WSGIPythonPath /home/rosshartshorn/htdocs/ordinarymysqlapp:/home/rosshartshorn/htdocs/worldmaker:/home/rosshartshorn/htdocs/gogoworld
私のurls.py
from django.conf.urls import patterns, include, url
from sourcedocs import views
urlpatterns = patterns('',
url(r'^$', views.index),
)
私の混乱は、django.text.client の使用と、Web ブラウザーでサイトに ping を実行することの違いです。同じことだと思っていたのですが、一方が応答を返し、もう一方が応答を返さないので、明らかに間違っています。違いはApacheおよび/またはnginxレベルでのみですか、それともdjango機構の一部も異なりますか? これがdjangoシェルでは機能するがブラウザ経由では機能しない理由を確認するためにどこを見るべきかについてのアイデアはありますか?
編集:これが私のサイト利用可能/ rosshartshornにあるものです:
Listen 84
<IfModule mod_ssl.c>
Listen 443
</IfModule>
<IfModule mod_gnutls.c>
Listen 443
</IfModule>
<VirtualHost *:84>
ServerName www.rosshartshorn.net
ServerAlias rosshartshorn.net
DocumentRoot /home/rosshartshorn/htdocs
<Directory /home/rosshartshorn/htdocs>
AllowOverride All
allow from all
</Directory>
</VirtualHost>