0
0
Nginxdevops~5 mins

Error log configuration in Nginx - Commands & Configuration

Choose your learning style9 modes available
Introduction
When a web server has problems, it writes messages to a file called an error log. Configuring this log helps you find and fix issues quickly by saving important error details.
When you want to record server errors to understand why a website is not working.
When you need to keep track of warnings or critical failures in your web server.
When you want to change where the error messages are saved for easier access.
When you want to control how much detail is saved in the error logs to avoid large files.
When troubleshooting slow or failing web pages to see what errors occur.
Config File - nginx.conf
nginx.conf
error_log /var/log/nginx/error.log warn;

http {
    server {
        listen 80;
        server_name example.com;

        location / {
            root /usr/share/nginx/html;
            index index.html;
        }
    }
}

error_log /var/log/nginx/error.log warn; sets the file path and minimum level of errors to log. Here, warnings and more serious messages are saved.

The http block contains server settings. Inside it, the server block defines a website listening on port 80 for example.com.

This configuration ensures error messages from this server are saved to the specified file with the chosen detail level.

Commands
This command tests the nginx configuration file for syntax errors before applying changes. It helps avoid server crashes due to bad config.
Terminal
sudo nginx -t
Expected OutputExpected
nginx: the configuration file /etc/nginx/nginx.conf syntax is ok nginx: configuration file /etc/nginx/nginx.conf test is successful
This command reloads nginx to apply the new configuration without stopping the server, so your website stays online.
Terminal
sudo systemctl reload nginx
Expected OutputExpected
No output (command runs silently)
This command shows the last 10 lines of the error log file so you can quickly see recent errors or warnings.
Terminal
tail -n 10 /var/log/nginx/error.log
Expected OutputExpected
No output (command runs silently)
-n 10 - Shows the last 10 lines of the file
Key Concept

If you remember nothing else from this pattern, remember: setting the error_log path and level controls where and how nginx records problems.

Common Mistakes
Not testing the nginx configuration with 'nginx -t' before reloading.
This can cause nginx to fail to reload if there are syntax errors, making the website unavailable.
Always run 'sudo nginx -t' to check for errors before reloading the server.
Setting the error log level too high, like 'debug', in production.
This creates very large log files and can slow down the server.
Use 'warn' or 'error' levels in production to balance detail and performance.
Not having write permission for the error log file location.
Nginx cannot write logs, so errors won't be recorded, making troubleshooting impossible.
Ensure the nginx user has write access to the error log directory and file.
Summary
Configure the error_log directive in nginx.conf to set log file path and error level.
Test the configuration with 'nginx -t' to avoid syntax errors.
Reload nginx with 'systemctl reload nginx' to apply changes without downtime.
Use 'tail' to view recent error log entries for troubleshooting.