2017-06-22 17 views
0

私はdjangoアプリケーション用の静的ファイルとメディアファイルにaws s3を使用しています。アプリケーションとプロキシサーバーにはGunicornとNginxが使用されています。aws s3の静的ファイルとメディアファイルのためのNginxの設定

nginxの設定:

server { 
    listen 80; 
    server_name sitename.com; 

    location/{ 
     include proxy_params; 
     proxy_pass http://unix:/home/SiteNameDjango/myproject/myproject.sock; 
    } 
} 

私は私の静的な場所のnginxのを設定する方法を、私の静的およびメディアファイルをAWS S3を使用しておりますので?静的ファイルとメディアファイルを設定する必要はありませんか?

STATICFILES_LOCATION = 'static' 
MEDIAFILES_LOCATION = 'media' 
STATICFILES_STORAGE = 'myproject.custom_storages.StaticStorage' 
DEFAULT_FILE_STORAGE = 'myproject.custom_storages.MediaStorage' 
AWS_STORAGE_BUCKET_NAME = "django-bucket" 
AWS_S3_CUSTOM_DOMAIN = AWS_STORAGE_BUCKET_NAME + ".s3.amazonaws.com" 
STATIC_URL = "https://" + AWS_STORAGE_BUCKET_NAME + ".s3.amazonaws.com/" 
MEDIA_URL = STATIC_URL + "media/" 
ADMIN_MEDIA_PREFIX = STATIC_URL + "admin/" 

例えばURL:

https://django-bucket.s3.amazonaws.com/media/user_image/1497598249_49.jpeg 

答えて

-1

nginxのではとしてみてください:Djando設定で

location /static { 
     alias /path/to/your/static; 
    } 

を、それが助け場合

、ここでのAWS S3のためのDjangoのプロジェクト設定であります.py使用:

あなたは、次のコマンドを実行して、フォルダ内の静を収集する必要があり、この後0

python manange.py collectstatic 

Djangoは指定されたパス内のすべての静的ファイルを保存します、今nginxのは、URL

せずに静的ファイルをロードします
0

アプリケーションサーバーを使用して静的ファイルを提供している場合は、mattiaが述べたようにnginxを設定する必要があります。

ただし、s3パスを使用している場合は、実際には同じものは必要ありません。あなたの設定がcollectstaticのときに自動的にあなたのファイルをs3に同期させる必要があります。

s3を使用するビューでは、パフォーマンスを向上させるためにs3をCloudfrontとサーバーのコンテンツの背後に置くことができます。

2

S3の場合、nginxは静的ファイルとメディアファイルを提供する責任がなく、何も設定する必要はありません。

関連する問題