Nginx Configurations
This module includes the following parsers:
NginxConfPEG - file /etc/nginx/nginx.conf
and other Nginx configuration files
ContainerNginxConfPEG - file /etc/nginx/nginx.conf
and other Nginx configuration files of running containers
- class insights.parsers.nginx_conf.ContainerNginxConfPEG(context)[source]
Bases:
ContainerParser
,NginxConfPEG
Parser for the Nginx configuration files of running container.
- class insights.parsers.nginx_conf.NginxConfPEG(*args, **kwargs)[source]
Bases:
ConfigParser
Parse the keyword-and-value of a Nginx configuration file.
Example nginx.conf file:
user root worker_processes 5; error_log logs/error.log; pid logs/nginx.pid; worker_rlimit_nofile 8192; events { worker_connections 4096; } mail { server_name mail.example.com; auth_http localhost:9000/cgi-bin/auth; server { listen 143; protocol imap; } } http { include /etc/nginx/conf.d/*.conf index index.html index.htm index.php; default_type application/octet-stream; log_format main '$remote_addr - $remote_user [$time_local] $status ' '"$request" $body_bytes_sent "$http_referer" ' '"$http_user_agent" "$http_x_forwarded_for"'; access_log logs/access.log main; sendfile on; tcp_nopush on; server_names_hash_bucket_size 128; server { # php/fastcgi listen 80; server_name domain1.com www.domain1.com; access_log logs/domain1.access.log main; root html; location ~ \.php$ { fastcgi_pass 127.0.0.1:1025; } } server { # simple reverse-proxy listen 80; server_name domain2.com www.domain2.com; access_log logs/domain2.access.log main; location ~ ^/(images|javascript|js|css|flash|media|static)/ { root /var/www/virtual/big.server.com/htdocs; expires 30d; } location / { proxy_pass http://127.0.0.1:8080; } } map $http_upgrade $connection_upgrade { default upgrade; '' close; } upstream websocket { server 10.66.208.205:8010; } upstream big_server_com { server 127.0.0.3:8000 weight=5; server 127.0.0.3:8001 weight=5; server 192.168.0.1:8000; server 192.168.0.1:8001; } server { # simple load balancing listen 80; server_name big.server.com; access_log logs/big.server.access.log main; location / { proxy_pass http://big_server_com; } } }
Examples
>>> type(nginxconfpeg) <class 'insights.parsers.nginx_conf.NginxConfPEG'> >>> nginxconfpeg['user'][-1].value 'root' >>> nginxconfpeg['events']['worker_connections'][-1].value 4096 >>> nginxconfpeg['mail']['server'][0]['listen'][-1].value 143 >>> nginxconfpeg['http']['access_log'][-1].value 'logs/access.log main' >>> nginxconfpeg['http']['server'][0]['location'][0]['fastcgi_pass'][-1].value '127.0.0.1:1025'