1. cat-nginx
#!/bin/bash
_DEF="\\x1b[0m"
_RED="\\x1b[31m"
_GRN="\\x1b[32m"
_ORG="\\x1b[33m"
_BLU="\\x1b[34m"
_MGT="\\x1b[35m"
_CYN="\\x1b[36m"
filename=$1
tempfile=$(mktemp)
cat "$filename" > "$tempfile"
# Colorize
sed -Ei 's/(server_name\\s*)([a-z\\.]+)(\\s*;)/\\1'"${_ORG}"'\\2'"${_DEF}"'\\3/g' "$tempfile"
sed -Ei 's/(listen[^0-9]+)([0-9]+)([^0-9]*)(;)/\\1'"${_ORG}"'\\2'"${_DEF}"'\\3\\4/g' "$tempfile"
sed -Ei 's/(root|index|server_name|location|include)\\s/'"${_CYN}"'\\1 '"${_DEF}"'/g' "$tempfile"
sed -Ei 's/(ssl_certificate|ssl_certificate_key|ssl_dhparam)\\s/'"${_CYN}"'\\1 '"${_DEF}"'/g' "$tempfile"
sed -Ei 's/(return|rewrite|proxy_pass|try_files)\\s/'"${_RED}"'\\1 '"${_DEF}"'/g' "$tempfile"
sed -Ei 's/(listen)\\s/'"${_GRN}"'\\1 '"${_DEF}"'/g' "$tempfile"
sed -Ei 's/(\\$[a-zA-Z0-9_]+)([^a-zA-Z0-9_])/'"${_MGT}"'\\1'"${_DEF}"'\\2/g' "$tempfile"
#sed -Ei 's/([\\{\\}])/'"${_MGT}"'\\1 '"${_DEF}"'/g' "$tempfile"
cat "$tempfile"
rm "$tempfile"
2. 예제 파일(test.conf)
server {
listen 80 ;
listen [::]:80 ;
root /var/www/html;
index index.html index.htm index.nginx-debian.html;
server_name example.myserver.com;
location / {
try_files $uri $uri/ =404;
}
listen [::]:443 ssl ;
listen 443 ssl;
ssl_certificate /etc/letsencrypt/live/$server_name/fullchain.pem;
ssl_certificate_key /etc/letsencrypt/live/$server_name/privkey.pem;
include /etc/letsencrypt/options-ssl-nginx.conf;
ssl_dhparam /etc/letsencrypt/ssl-dhparams.pem;
}
3. 결과 예시
./cat-nginx test.conf