接手一坨缩进、格式乱七八糟的Nginx 配置,简直要命。想起golang 有一个gofmt,动手做一个简单的ngxfmt。
Nginx 的配置语法比较简单,分为块配置和简单配置,例如:
server { # simple reverse-proxy
listen 80;
server_name domain2.com www.domain2.com;
access_log logs/domain2.access.log main;
# serve static files
location ~ ^/(/images|javascript|js|css|flash|media|static)/ {
root /var/www/virtual/big.server.com/htdocs;
expires 30d;
}
# pass requests for dynamic content to rails/turbogears/zope, et al
location / {
proxy_pass http://127.0.0.1:8080;
}
}
listen
, server_name
这种是简单配置,以分号结尾;server
,locaiton
这种为块配置,带一对小括号。写过nginx 插件或者看过ngx_conf_parse 对nginx 的配置加载会更了解一点。
毕业快3年,忽然十分想念编译原理老师,语法分析,词法分析,LR,yacc,lex 什么的。然而编译原理龙书早被我卖了,买鸡肉卷吃。听说快乐基倒闭了??可惜可惜。
只能非常不优雅的解决,从上往下手动撸,处理好缩进,清楚多余的空格,再整一下左对齐就好了。吃一个鸡肉卷的时间就能撸好🐔 。
log_format
这换行可以说是非常舒服了😌 ,gzip_types
这对齐能让人高潮🎆 。
在前公司曾经三个产品线要写到一个server 里面,server_name
长到让人绝望😭 ,而且偶尔还得改改,这样换行就清爽多了🍃 。
相邻的配置项如果一样,对所有的值都进行左对齐处理,像这样⬇️ :
源代码🐙 :fangpsh/ngxfmt,
有点乱,回头再看估计会被恶心到,就像一次性吃了3个鸡肉卷。
其他: