36 lines
976 B
Bash
36 lines
976 B
Bash
#!/bin/bash
|
|
|
|
# Define the log format (all on one line)
|
|
LOG_FORMAT="log_format domain_combined '$host \$remote_addr - \$remote_user [\$time_local] \"\$request\" \$status \$body_bytes_sent \"\$http_referer\" \"\$http_user_agent\"';"
|
|
|
|
# Check if we're root
|
|
if [ "$EUID" -ne 0 ]; then
|
|
echo "Please run as root"
|
|
exit 1
|
|
fi
|
|
|
|
# Backup the original config
|
|
if ! cp /etc/nginx/nginx.conf /etc/nginx/nginx.conf.bak; then
|
|
echo "Failed to create backup"
|
|
exit 1
|
|
fi
|
|
|
|
# Check if format already exists
|
|
if grep -q "log_format domain_combined" /etc/nginx/nginx.conf; then
|
|
echo "domain_combined format already exists"
|
|
exit 0
|
|
fi
|
|
|
|
# Add the format after the first 'http {' line
|
|
sed -i "/^http {/a \ ${LOG_FORMAT}" /etc/nginx/nginx.conf
|
|
|
|
# Test the nginx config
|
|
nginx -t
|
|
|
|
if [ $? -eq 0 ]; then
|
|
echo "Successfully added domain_combined log format"
|
|
else
|
|
echo "Error in nginx config, reverting..."
|
|
mv /etc/nginx/nginx.conf.bak /etc/nginx/nginx.conf
|
|
exit 1
|
|
fi
|