問題描述
對於 Nginx 配置文件的修改或增加,通常是在命令行中是通過 vim 編輯器完成的。
但是,最痛苦的事情就是配置文件的格式化,即配置行的縮進。由於 vim 不會自動縮進 Nginx 配置行,在經過日積月累的修改后,Nginx 配置文件的格式亂七八糟,可讀性極低,維護這種配置文件極易出錯。
該筆記將記錄:如何格式化 Nginx 配置文件,以及常見問題的處理。
解決方案
命令行工具
1)Nginx Formatter,這是目前(05/22/2019)能找到的、Star 比較多的項目(使用 Python 開發),也是我們正在使用的工具:
git clone https://github.com/slomkowski/nginx-config-formatter.git
conf_folder='/etc/nginx/conf.d/' # 針對 CentOS RHEL 發行版
conf_folder='/etc/nginx/sites-available/' # 針對 Debian Ubuntu 發行版
# 格式化配置文件,同時備份
nginx-config-formatter/nginxfmt.py \
-v --backup-original --indent 4 \
$conf_folder/*.conf
# 如果生成的配置文件符合預期,則進行清理工作(使用 mv 替代 rm 是個好習慣)
find $conf_folder -type f -name '*.conf~' -exec mv -v {} /tmp \;
2)nginxbeautifier,需要使用 NodeJS 環境來安裝運行。但是,我們沒有使用該工具,因為在我們的場景中,我們不會為了格式化 Nginx 配置而在主機中安裝 NodeJS 環境,否則就把問題搞復雜了。
3)conffmt,該項目比較久,所以我們也沒有使用該工具。
在線工具
格式化 Nginx 配置文件這個問題的本質:實質是對配置行的正確縮進:-),我們僅需合適的縮進工具即可。
因此我們完全能夠借助其他代碼格式化工具:
1)Online JavaScript beautifier
參考文獻
Is there a formatter/beautifier for NGINX config files?
