# Increasing Client_max_body_size in Nginx Conf on Aws Elastic Beanstalk

To increase the `client_max_body_size` directive in Nginx configuration on an AWS Elastic Beanstalk environment, you need to modify the Nginx configuration used by the Elastic Beanstalk environment. Elastic Beanstalk manages Nginx configurations in a way that allows customization while maintaining the environment's stability.

Here’s how you can increase `client_max_body_size` on AWS Elastic Beanstalk:

### **1. Create a `.ebextensions` Directory**

If you don’t already have an `.ebextensions` directory in your application source bundle, create one. This directory is used to store configuration files that customize the Elastic Beanstalk environment.

### **2. Add a Configuration File**

Inside the `.ebextensions` directory, create a configuration file. For example, you can name it `nginx.config`.

### **3. Define Nginx Configuration in the `.ebextensions` File**

In the `nginx.config` file, specify the configuration changes you want to apply. This file will include commands to create or modify Nginx configuration files and adjust settings such as `client_max_body_size`.

**Example `nginx.config` file:**

```yaml
files:
  "/etc/nginx/conf.d/custom_client_max_body_size.conf":
    mode: "000644"
    owner: root
    group: root
    content: |
      client_max_body_size 100M;

```

**Explanation:**

- **`/etc/nginx/conf.d/custom_client_max_body_size.conf`**: This file will be created in the Nginx configuration directory. The `.conf` extension is important as it is a common convention for Nginx configuration files.
- **`client_max_body_size 100M;`**: Sets the maximum allowed size of the client request body to 100 megabytes. Adjust this value according to your needs.

### **4. Deploy Your Application**

Package your application with the `.ebextensions` directory and deploy it to Elastic Beanstalk.

**Deploy Command:**

```bash
eb deploy
```

### **5. Verify the Changes**

After deploying, verify that the changes have taken effect:

1. **Check Elastic Beanstalk Logs:**
    - Go to the Elastic Beanstalk management console.
    - Navigate to your environment.
    - Check the logs to ensure there are no errors related to the Nginx configuration.
2. **Test File Uploads:**
    - Try uploading a file larger than the previous limit to ensure that the new limit is in effect.

### **6. Monitor and Troubleshoot**

If the changes do not take effect, verify the following:

- **Configuration Syntax:** Ensure that the syntax in your `.ebextensions` configuration file is correct.
- **Nginx Errors:** Check the Nginx error logs in the Elastic Beanstalk logs for any errors related to the configuration.

**Access Logs via AWS Management Console:**

1. **Navigate to your Elastic Beanstalk Environment.**
2. **Go to Logs > Request Logs.**
3. **Review the logs for any issues.**

### **Summary**

To increase the `client_max_body_size` in Nginx on AWS Elastic Beanstalk:

1. **Create a `.ebextensions` Directory:** If it doesn’t already exist in your application source bundle.
2. **Add a Configuration File:** Create a file (e.g., `nginx.config`) in `.ebextensions` to adjust Nginx settings.
3. **Deploy Your Application:** Upload the updated source bundle to Elastic Beanstalk.
4. **Verify Changes:** Ensure the new settings are applied and functioning correctly.
5. **Monitor and Troubleshoot:** Check logs and configuration for any issues.

By following these steps, you can effectively increase the `client_max_body_size` limit for Nginx on your AWS Elastic Beanstalk environment, allowing for larger file uploads.