67 lines
1.9 KiB
Bash
67 lines
1.9 KiB
Bash
|
|
#!/usr/bin/env bash
|
||
|
|
|
||
|
|
export CONTAINER_ROLE="httpd_only"
|
||
|
|
|
||
|
|
if [ -z "$environment" ]; then
|
||
|
|
environment="PROD"
|
||
|
|
fi
|
||
|
|
|
||
|
|
# Generate self-signed SSL cert if not already present
|
||
|
|
if [ ! -f /etc/pki/tls/certs/localhost.crt ]; then
|
||
|
|
openssl req -newkey rsa:2048 -nodes \
|
||
|
|
-keyout /etc/pki/tls/private/localhost.key \
|
||
|
|
-x509 -days 3650 -subj "/CN=localhost" \
|
||
|
|
-out /etc/pki/tls/certs/localhost.crt
|
||
|
|
fi
|
||
|
|
|
||
|
|
# Create log directory
|
||
|
|
mkdir -p /var/log/httpd
|
||
|
|
|
||
|
|
# Remove default configs that conflict
|
||
|
|
rm -f /etc/httpd/conf.d/userdir.conf
|
||
|
|
|
||
|
|
# Configure RemoteIP for Docker network
|
||
|
|
docker_network=$(ip addr show | grep eth0 | grep inet | awk -F " " '{print $2}')
|
||
|
|
if [ -n "$docker_network" ]; then
|
||
|
|
echo "RemoteIPInternalProxy $docker_network" >> /etc/httpd/conf.d/remoteip.conf
|
||
|
|
fi
|
||
|
|
|
||
|
|
# Detect memory and calculate Apache MPM tuning
|
||
|
|
source /scripts/detect-memory.sh
|
||
|
|
echo "Container memory: ${CONTAINER_MEMORY_MB}MB | Apache workers=${APACHE_MAX_REQUEST_WORKERS} | Role=${CONTAINER_ROLE}"
|
||
|
|
|
||
|
|
# Generate MPM tuning config
|
||
|
|
/scripts/create-apache-mpm-config.sh
|
||
|
|
|
||
|
|
# Write SSL global config (matches standalone CAC behavior)
|
||
|
|
cat <<'EOF' > /etc/httpd/conf.d/ssl-global.conf
|
||
|
|
Listen 443 https
|
||
|
|
SSLPassPhraseDialog exec:/usr/libexec/httpd-ssl-pass-dialog
|
||
|
|
SSLSessionCache shmcb:/run/httpd/sslcache(512000)
|
||
|
|
SSLSessionCacheTimeout 300
|
||
|
|
SSLCryptoDevice builtin
|
||
|
|
EOF
|
||
|
|
|
||
|
|
# Disable the default ssl.conf if present (we use per-vhost SSL)
|
||
|
|
if [ -f /etc/httpd/conf.d/ssl.conf ]; then
|
||
|
|
mv /etc/httpd/conf.d/ssl.conf /etc/httpd/conf.d/ssl.conf.bak
|
||
|
|
fi
|
||
|
|
|
||
|
|
# Ensure vhosts directory exists and is included
|
||
|
|
mkdir -p /etc/httpd/conf.d/vhosts
|
||
|
|
if ! grep -q 'IncludeOptional conf.d/vhosts/' /etc/httpd/conf/httpd.conf; then
|
||
|
|
echo 'IncludeOptional conf.d/vhosts/*.conf' >> /etc/httpd/conf/httpd.conf
|
||
|
|
fi
|
||
|
|
|
||
|
|
# Start Apache
|
||
|
|
/usr/sbin/httpd -k start
|
||
|
|
|
||
|
|
# Start cron for log rotation
|
||
|
|
/usr/sbin/crond
|
||
|
|
|
||
|
|
# Tail Apache logs (becomes PID 1 process)
|
||
|
|
touch /var/log/httpd/error_log
|
||
|
|
tail -f /var/log/httpd/*
|
||
|
|
|
||
|
|
exit 0
|