2017-09-21 5 views
0

私はDjango Webアプリケーションの1つをホスティングするためにWebfactionを使用しています。私はシンボリックリンクアプリを使って自分のメディアにサービスを提供しています。最近私はすべての画像に有効期限のヘッダーを設定する.htaccessファイルを設定しようとしていますが、.htaccessファイルは機能していません。私はWebfactionのサポートに連絡し、彼らはこれに答えた:Apache2設定ファイルに別名を追加するときのエラー

「あなたは、あなたのApacheのスタックからfeature_homemobile_fieldagent.jpgのようなファイルを提供していないので、あなたのファイルにタグを満了した表示されない/ホーム/ doc4designの下にあるすべてのものを。/webapps/django_2016/doc4_2016/media /ディレクトリは、symlinkアプリケーションの後にフロントエンドのnginxサーバによってサービスされています私たちのnginxサーバはあなたの設定を認識していませんので、このようなタグは設定されていません これを行うには、シンボリックリンクのアプリケーションを削除し、適切なエイリアスとロケーションスタンザでhttpd.confを更新するか、設定を完全に制御できる独自のnginxサーバを構築して設定する必要があります。

は、私は私のApache2の構成ファイルに新しいエイリアスを追加しようとしましたが、私はこのエラーを取得しています

Invalid command 'Allow', perhaps misspelled or defined by a module not included in the server configuration 

私はApache2.4であることが分かった

UPDATEはそれことを意味しますもはや「すべて許可」ではなく、「すべて許可」となりました。私はサーバをリセットし、すべてがスムーズに進んだので、Webfactionを通じて私のWebサイトからSymlinkアプリケーションを一時的に削除しました。すべての画像が表示されなくなり、自分のサイトに表示されなくなりました。私は10分待ったが、何も変わらなかった。私はいくつか余分なステップがありますか?私はあなたがまだ戦っている参照

のApache2のhttpd.conf

ServerRoot "/home/doc4design/webapps/django_2016/apache2" 

LoadModule authz_core_module modules/mod_authz_core.so 
LoadModule dir_module  modules/mod_dir.so 
LoadModule env_module  modules/mod_env.so 
LoadModule log_config_module modules/mod_log_config.so 
LoadModule mime_module  modules/mod_mime.so 
LoadModule rewrite_module modules/mod_rewrite.so 
LoadModule setenvif_module modules/mod_setenvif.so 
LoadModule wsgi_module  modules/mod_wsgi.so 
LoadModule unixd_module  modules/mod_unixd.so 
LoadModule headers_module modules/mod_headers.so 
LoadModule expires_module modules/mod_expires.so 
LoadModule filter_module  modules/mod_filter.so 
LoadModule deflate_module modules/mod_deflate.so 
#LoadModule pagespeed_module modules/mod_pagespeed_ap24.so 

<Directory /home/doc4design/webapps/django_2016/doc4_2016> 
    AllowOverride All 
</Directory> 

Alias /media/ /home/doc4design/webapps/django_2016/doc4_2016/media 

<Directory /home/doc4design/webapps/django_2016/doc4_2016/media> 
Allow from all 
</Directory> 

LogFormat "%{X-Forwarded-For}i %l %u %t \"%r\" %>s %b \"%{Referer}i\" \"%{User-Agent}i\"" combined 
CustomLog /home/doc4design/logs/user/access_django_2016.log combined 
ErrorLog /home/doc4design/logs/user/error_django_2016.log 

Listen 30651 
KeepAlive Off 
SetEnvIf X-Forwarded-SSL on HTTPS=1 
ServerLimit 1 
StartServers 1 
MaxRequestWorkers 5 
MinSpareThreads 1 
MaxSpareThreads 3 
ThreadsPerChild 5 

WSGIDaemonProcess django_2016 processes=2 threads=12 maximum-requests=100 python-path=/home/doc4design/webapps/django_2016:/home/doc4design/webapps/django_2016/doc4_2016:/home/doc4design/webapps/django_2$ 
WSGIProcessGroup django_2016 
WSGIRestrictEmbedded On 
WSGILazyInitialization On 
WSGIScriptAlias//home/doc4design/webapps/django_2016/doc4_2016/webapp/wsgi.py 

答えて

1

注:HTTPキャッシュヘッダーの場合、expires max, when you create a Webfaction Static app [oficial Webfaction docs]を指定できます。しかし、将来的に有効期限を長く設定するため、最大期限が切れると、クライアントブラウザにファイルが変更されたことを伝えることができなくなります。あなたは

enter image description here

Webfaction support should be able to set it for youすでに静的アプリ(ないシンボリックリンクアプリ)を作成した場合...ファイル(imageV1.jpg)の名前を変更する必要があります。

独自のApacheインスタンスを使用して静的にサービスできる必要があります。あなたは正しくApache 2.4のためにあなたがを設定する必要があると言いました。すべてを要求しますが、あなたのhttpd.confにはあなたがまだ使用しているのがわかりますすべて許可します

セクションの単純化した表現はApache 2.4を使用してDjangoのアプリケーションを提供するために必要がある:

Alias /media/ /path/to/mysite.com/media/ 
Alias /static/ /path/to/mysite.com/static/ 

<Directory /path/to/mysite.com/static> 
Require all granted 
</Directory> 

<Directory /path/to/mysite.com/media> 
Require all granted 
</Directory> 

WSGIScriptAlias//path/to/mysite.com/mysite/wsgi.py 

<Directory /path/to/mysite.com/mysite> 
<Files wsgi.py> 
Require all granted 
</Files> 
</Directory> 

またoficial Djangoのドキュメントから、Django Apache Serving Filesを確認することができます。

静的資産を提供する際に発生した1つの問題は、アクセス許可があることでした。あなたがイメージにアクセスしようとするとwww.yoursite.com/media/file.jpg

Goが、あなたはどのようなHTTPエラーコードを得るのですか?あなたは403を取得する場合
、これを試してみてください。

chmod 710 $HOME/webapps/django_2016/doc4_2016/media/file.jpg 
setfacl -m u:apache:r-x $HOME/webapps/django_2016/doc4_2016/media/file.jpg 

幸運を!

+0

Haはまだ戦っています。私が尋ねた質問の数は大きく増えており、すべてのApacheまたはApacheモジュールをベースにしています。それのプラス面は、私はたくさんのことを学んでいます。私はこれを試してみましょう。ありがとうございましたionescu77 – JBT

+0

また、私のApacheサーバー経由でファイルを提供できるように、Webfactionに「静的専用」アプリケーションを作成する必要がありますか、まったく必要ありませんか? – JBT

+0

スタティックのみを作成する場合は、スタティックおよびメディア用にApacheが必要ありません。 Webfaction djangoの設定(プロジェクト/ webiste): - 私はWFパネルにdjangoアプリケーションを作成します(これはmod_wsgiでApacheインスタンスを実際にインストールし、$ HOME/webapps/yourAppに事前設定されたdjangoプロジェクトをインストールします)。 Django動的ページを提供する - 私はメディアのための静的なアプリケーションを作成する(私はここに画像を入れていたが、djangoはあなたのウェブサイト/プロジェクトを通してアップロードされたファイルのためだけにメディアを使用している) - 私は静的(jpg、css 、jsすべてのdjangoはSTATICに店舗を持っています) これは役に立ちます。がんばろう – ionescu77

関連する問題