A very powerful and friendly nginx base on lua-nginx-module( openresty ) which provide WAF, Control Panel, and Dashboards.
VeryNginx is a very powerful and friendly nginx .
After v0.2 , The entry uri of control panel was moved to
VeryNginx is based on
lua_nginx_module(openrestry). It implements advanced firewall(waf), access statistics and some other features. It strengthens the Nginx's functions, and provides a friendly Web interface.
User / Password: verynginx / verynginx
The full version of config guide can be found on: VeryNginx Wiki .
VeryNginx supports custom actions, which can do a lot of things.
Custom action consists of two parts,
Matcheris used to test whether a request meets the rule，
Actionis the logic you want to run.
The advantage of this design is that theMatcherincludes all select rule, and can be reused, making use of rules to describe a very complex logic possible.
Matcheris used to select a part of all requests, a
Matchermay contain one or more condition. The following conditions are currently supported:
When a request does not conflict with any of the conditions of the Matcher, the request will be selected by the
Actionrefers to a
Matcher, and will run on the requests selected by the
Now we have these
Matcher can select requests by multiple conditions, so with Filter Action, we got a powerful waf. The waf can filter requests with complex rules and return special status code when it block a request.
VeryNginx presets some simple filter rules, which can prevent simple SQL injection, Git and SVN file disclosure, directory traversal attacks and common scanning tool.
Backendrefers to a
Matcher，and will handle the requests selected by the
Now we have these
VeryNginx can record the request of URI, include these data of every URI:
VeryNginx is based on OpenResty, so you need to install it first. But don't warry, VeryNginx gives a script to do it automatically.
python install.py install
Just run this command, openresty and verynginx will be installed automatically.
VeryNginx can install openresty automatically so that you needn't install nginx(openresty) manually.
But if you want use a nginx compiled by you self, that also ok. You can see that for some help
The configuration file of VeryNginx is
/opt/verynginx/openresty/nginx/conf/nginx.conf, that's a demo. It just can let verynginx run so that you can see the dashboard of verynginx. If you want do something really useful, you need edit that file and add your own nginx configuration into it.
This configuration file add threeincludecommand to embeded verynginx into original nginx( openresty )
- include /opt/verynginx/verynginx/nginxconf/inexternal.conf;
- include /opt/verynginx/verynginx/nginxconf/inhttp_block.conf;
- include /opt/verynginx/verynginx/nginxconf/inserver_block.conf;
Theseincludecommand were placed outside a block, block http internal configuration, server configuration block inside, Remenber keep these three line when modifying. If you add a new Server configuration block or http configuration block, also need add suitableincludeline into it.
#Start Service /opt/verynginx/openresty/nginx/sbin/nginx
#Stop Service /opt/verynginx/openresty/nginx/sbin/nginx -s stop
#Restart Service /opt/verynginx/openresty/nginx/sbin/nginx -s reload
After the service begin running, you can see server status and do config on dashboard.
The address of dashboard is
Default user and password is
verynginx. You should be able to work through all the options now.
The full version of config guide can be found in VeryNginx Wiki .
If you have any problems during installation / configuration / use , you can refer the Trouble Shooting document.
New configs will be effective immediately upon saving. It's not necessary to restart or reload nginx.
When you save config, VeryNginx will write all configs to
If the chat in status page is stuck, you can click the gear icon in the upper right corner to turn off animation
If you lock yourself out of VeryNginx by doing something stupid, you can always delete
config.jsonto revert VeryNginx to its default.
Over time, VeryNginx own will evolve, and can also support newer version of OpenResty. New version of VeryNginx might support some new features or fix some old bugs. If you want to update locally installed VeryNginx, you just need pull the latest code from github to local, and run the following commands:
#Update VeryNginx python install.py update verynginx
#Update OpenResty python install.py update openresty
install.py will keep the old config.json and nginx.conf during update. So that you will not lost configuration after update.
After cloning code to your local filesystem, you can run the following commands:
docker build -t verynginx . docker run verynginx
Then you can navigate to your browser
Optionally you can run
docker run -p xxxx:80 verynginxto map your container port 80 to your host's xxxx port
If you like VeryNginx, you can donate to support my development VeryNginx. With your support, I will be able to make VeryNginx better 😎.
Scan the QRcode to support VeryNginx.
[^openresty]: OpenResty Openresty is a enhanced nginx，bundle standard nginx core and lots of 3rd-party nginx module.