Open In App

How to Set Nginx Max Open Files in Linux

Last Updated : 13 Dec, 2023
Improve
Improve
Like Article
Like
Save
Share
Report

In Linux, the Nginx depends on the system limits for maximum open files to efficiently handle the parallel connections and to serve the web content. The maximum open file limit determines the number of files, which includes the sockets, that Nginx can simultaneously have opened. We can adjust this limit as per the necessity to accommodate the increased traffic or optimization purposes. In this article, we will see the steps to set nginx max open files in Linux.

What is Ngnix Max Open Files Limit?

The Nginx maximum open files limit refers to the maximum number of files, including sockets, that the Nginx process can have open simultaneously. This limit is determined by the system-wide file descriptor limit set by the operating system. File descriptors are used to represent open files, sockets, or other I/O resources.

For Nginx, a high maximum open file limit is essential, especially in scenarios with high traffic or many concurrent connections. This limit impacts the web server’s ability to efficiently handle multiple requests concurrently. If the limit is too low, it may lead to connection issues, dropped requests, or sub-optimal performance.

How to Set Nginx Max Open Files in Linux

In this section, we will see the detailed steps to set Nginx Max open files in Linux. So follow the below steps along with command execution to set Nginx Max open files in Linux:

Step 1: Open the Terminal

Firstly, we need to launch the terminal on our Linux system, we can launch by using the Application Menu or by using the Keyboard Shortcut as “CTRL + ALT + T“.

Open the Terminal

Open the Terminal

Step 2: Check Nginx Configuration

Once the terminal is been launched, we need to identify the user under which the Nginx is running. We can get this information in the Nginx configuration file. So, execute the below command to get the user information.

cat /etc/nginx/nginx.conf | grep user
Check Nginx Configuration

Check Nginx Configuration

Step 3: Check Current Limits

Firstly, we will check the current limits for the Nginx user. We can use the ulimit command.

ulimit -n

We can see the current limit is 1024, which we will be examining in the below steps.

Check Current Limits

Check Current Limits

Step 4: Update Limits for the User

Now, we need to edit the user’s limits configuration file. This file is usually located in /etc/security/limits.conf. If the file does not exist, we can also manually create it.

sudo nano /etc/security/limits.conf
Update Limits for the User

Update Limits for the User

Step 5: Add the below Lines

Once the file is been opened, we need to add the below-specified lines. Make sure to replace the username as per your actual user.

nginxuser soft nofile 4096
nginxuser hard nofile 8192
  • soft refers to the soft limit, and hard refers to the hard limit.
  • nofile is the maximum number of file descriptors (open files)
Add the below Lines

Add the below Lines

Step 6: Save the File

Save the changes to the configuration file. In Nano, you can do this by pressing Ctrl+O, then press Enter, and finally, press Ctrl+X to exit.

Save the File

Save the File

Step 7: Update PAM Configuration

Now, we need to update the PAM (Pluggable Authentication Modules) configuration to ensure the limits are applied. Edit the /etc/pam.d/common-session file. So execute the below command to edit the file.

sudo nano /etc/pam.d/common-session

Add the below line at the end of the file:

session required pam_limits.so
Update PAM Configuration

Update PAM Configuration

Step 8: Add Below Lines

Apply the changes by restarting the Nginx service. The below command restarts the Nginx service to apply the new configuration with root privileges.

sudo systemctl restart nginx
Add Below Lines

Add Below Lines

Step 9: Verify Changes

Now once again we will execute the ulimit -n command to ensure that the limit to open files in Linux is been increased. So execute the below command:

ulimit -n

We can see that the limit is been increased from 1024 to 4096. We can adjust this value based on our requirements.

Verify Changes

Verify Changes

Conclusion

In conclusion, adjusting the maximum open files limit for Nginx in Linux involves identifying the user running Nginx, and updating the user’s limits in the /etc/security/limits.conf file, and potentially modifying the PAM configuration. These changes are crucial for optimizing Nginx’s performance, especially in scenarios with a high number of concurrent connections. By carefully following the provided steps, users can ensure that the specified soft and hard limits are applied, ultimately enhancing the scalability and reliability of their Nginx web server.


Like Article
Suggest improvement
Share your thoughts in the comments

Similar Reads