Search code examples
pythondjangoamazon-web-servicesamazon-s3django-staticfiles

AWS EC2 Server not serving some pages and static files propperly


I just Deployed a website on AWS EC2 from github clone. When i visit to Influencer Marketing & Career pages the server serving the static files from S3 Bucket correctly. But when i am visiting my home page & Who are We pages its not serving the static files also i am not getting these pages contents (raw data). I assume that its not serving static files its ok but where is the content of both pages gone. What i am missing here. I am new to AWS and Website deployment So if i did any mistake please let me now i will correct it. If you require any additional information i will add it.

Here you can access both home & Who we are pages -link

Configure Nginx to Proxy Pass to Gunicorn

[Unit]
Description=gunicorn daemon
Requires=gunicorn.socket
After=network.target

[Service]
User=ubuntu
Group=www-data
WorkingDirectory=/home/ubuntu/try-django-digital-marketing/try-django-digital-marketing
ExecStart=/home/ubuntu/try-django-digital-marketing/try-django-digital-marketing/env/bin/gunicorn \
          --access-logfile - \
          --workers 3 \
          --bind unix:/run/gunicorn.sock \
          BE.wsgi:application




server {
    listen 80;
    server_name 3.17.142.65;

    location = /favicon.ico { access_log off; log_not_found off; }

    location / {
        include proxy_params;
        proxy_pass http://unix:/run/gunicorn.sock;
    }
}

Bucket Policy, Cross-origin resource sharing (CORS) & User Policy

{
    "Version": "2008-10-17",
    "Statement": [
        {
            "Sid": "PublicReadGetObject",
            "Effect": "Allow",
            "Principal": {
                "AWS": "*"
            },
            "Action": [
                "s3:GetObject",
                "s3:PutObject"
            ],
            "Resource": "arn:aws:s3:::try-marketing/*"
        }
    ]
}

__________________________________________________

[
    {
        "AllowedHeaders": [
            "*"
        ],
        "AllowedMethods": [
            "POST",
            "GET",
            "PUT"
        ],
        "AllowedOrigins": [
            "*"
        ],
        "ExposeHeaders": []
    }
]

___________________________________________________

{
    "Version": "2012-10-17",
    "Statement": [
        {
            "Action": [
                "s3:PutObject",
                "s3:PutObjectAcl",
                "s3:GetObject",
                "s3:GetObjectAcl",
                "s3:AbortMultipartUpload"
            ],
            "Resource": [
                "arn:aws:s3:::try-marketing",
                "arn:aws:s3:::try-marketing/*"
            ],
            "Effect": "Allow"
        }
    ]
}

AWS Conf file

AWS_USERNAME = 'user11111'
AWS_ACCESS_KEY_ID = 'xxxxxxxxxx' 
AWS_SECRET_ACCESS_KEY = 'xxxxxxxxxxxx' 
AWS_PRELOAD_METADATA = True
AWS_QUERYSTRING_AUTH = False
AWS_S3_SIGNATURE_VERSION = "s3v4"
AWS_S3_REGION_NAME = 'us-east-2'
DEFAULT_FILE_STORAGE = 'BE.aws.utils.MediaRootS3BotoStorage'
STATICFILES_STORAGE = 'BE.aws.utils.StaticRootS3BotoStorage'
AWS_STORAGE_BUCKET_NAME = 'try-marketing'
S3DIRECT_REGION = 'us-east-2'
S3_URL = '//%s.s3.amazonaws.com/' % AWS_STORAGE_BUCKET_NAME
MEDIA_URL = '//%s.s3.amazonaws.com/media/' % AWS_STORAGE_BUCKET_NAME
MEDIA_ROOT = MEDIA_URL
STATIC_URL = S3_URL + 'static/'
ADMIN_MEDIA_PREFIX = STATIC_URL + 'admin/'
AWS_DEFAULT_ACL = None

Solution

  • I don't see the images even being requested on your home page. That indicates a problem in your HTML source (it is not interpreted correctly by the browser). I would suggest to you to fix the issues identified by the W3 validator https://validator.w3.org/nu/?doc=http%3A%2F%2F3.17.142.65%2F and see if it helps.