Reputation: 42543
I have a python script that dynamically alters nginx config file (nginx.conf
). Since nginx configuration is not in ini
format, i currently use some regexp to parse and modify file content. Is it the only way or some better way to programmatically alter nginx configuration exist?
Upvotes: 25
Views: 20626
Reputation: 41776
You might use the PyNginxConfig Parser. http://code.google.com/p/pynginxconfig/source/browse/pynginxconfig.py#208 This implementation is close to the original one.
There is also ServerMgr. It's not really a parser, just allows for basic mappings.
Last but not least, actually first, because based on pyparsing: https://github.com/pyhedgehog/nginxparser
pip install git+https://github.com/pyhedgehog/nginxparser.git
Upvotes: 11
Reputation: 11919
Just found out about python-nginx, which works great out-of-the-box using only Python, and doesn't seem to need any C or required Python package at all! Could improve docs a bit. Maybe I'll send a pull request for that.
Upvotes: 3
Reputation: 22073
NGINX Inc started providing a library in 2017 that is a "quick and reliable way to convert NGINX configurations into JSON and back." It's called crossplan and you can get it with pip
.
pip install crossplane
With this you can parse a file to JSON, deserialize, manipulate, serialize back to JSON, and then convert back to the NGINX config file format.
Upvotes: 11
Reputation: 126425
There is now nginx-conf, an NPM module that provides programmatic access to nginx configurations.
Upvotes: -2
Reputation: 9826
There seems to exist an augeas lens supporting at least a subset of the nginx config file syntax. Augeas also has Python bindings.
Upvotes: 4