36 lines
970 B
Bash
36 lines
970 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
|