Saltstack Official Nginx Formula
You can not select more than 25 topics Topics must start with a letter or number, can include dashes ('-') and can be up to 35 characters long.

config.jinja 3.3KB

10 years ago
10 years ago
10 years ago
10 years ago
10 years ago
1234567891011121314151617181920212223242526272829303132333435363738394041424344454647484950515253545556575859606162636465666768697071727374757677
  1. {% set nginx = pillar.get('nginx', {}) -%}
  2. # defaults passed via context from the map.jinja
  3. {% set user = nginx.get('user', default_user) -%}
  4. {% set group = nginx.get('group', default_group) -%}
  5. user {{ user }} {{ group }};
  6. worker_processes {{ nginx.get('worker_processes', 1) }};
  7. {% set worker_rlimit_nofile = nginx.get('worker_rlimit_nofile', '') -%}
  8. {% if worker_rlimit_nofile -%}
  9. worker_rlimit_nofile {{ worker_rlimit_nofile }};
  10. {% endif -%}
  11. {% set error_log_location = nginx.get('error_log',{}).get('location', '/var/log/nginx/error.fifo') -%}
  12. {% set error_log_level = nginx.get('error_log',{}).get('level', 'warn') -%}
  13. error_log {{ ' '.join([error_log_location, error_log_level]) }};
  14. pid {{ nginx.get('pid', '/var/run/nginx.pid') }};
  15. daemon {{ nginx.get('daemon', 'on') }};
  16. events {
  17. worker_connections {{ nginx.get('events', {}).get('worker_connections', 1024) }};
  18. {% set use = nginx.get('events', {}).get('use', '') -%}
  19. {% if use -%}
  20. use {{ use }};
  21. {% endif %}
  22. }
  23. http {
  24. {% if 'set_real_ips' in nginx -%}
  25. {% for ip in nginx.get('set_real_ips', {}).get('from_ips', []) -%}
  26. set_real_ip_from {{ ip }};
  27. {% endfor -%}
  28. real_ip_header {{ nginx.get('set_real_ips', {}).get('real_ip_header', 'X-Forwarded-For') }};
  29. {% endif -%}
  30. include /etc/nginx/mime.types;
  31. default_type {{ nginx.get('default_type', 'application/octet-stream') }};
  32. log_format main '$scheme://$host:$server_port$uri$is_args$args $remote_addr:$remote_user "$request" $request_time $request_length:$bytes_sent $status "$http_referer" "$http_user_agent" "$http_x_forwarded_for"';
  33. access_log /var/log/nginx/access.fifo main;
  34. sendfile {{ nginx.get('sendfile', 'on') }};
  35. #tcp_nopush on;
  36. keepalive_timeout {{ nginx.get('keepalive_timeout', 65) }};
  37. server_names_hash_bucket_size {{ nginx.get('server_names_hash_bucket_size', 128) }};
  38. server_names_hash_max_size {{ nginx.get('server_names_hash_max_size', 1024) }};
  39. types_hash_max_size {{ nginx.get('types_hash_max_size', 8192) }};
  40. gzip {{ nginx.get('gzip', 'on') }};
  41. gzip_vary {{ nginx.get('gzip_vary', 'on') }};
  42. gzip_proxied {{ nginx.get('gzip_proxied', 'any') }};
  43. gzip_comp_level {{ nginx.get('gzip_comp_level', 6) }};
  44. gzip_buffers {{ nginx.get('gzip_buffers', '16 8k') }};
  45. gzip_http_version {{ nginx.get('gzip_http_version', '1.1') }};
  46. gzip_types {{ nginx.get('gzip_types', ['text/plain', 'text/css', 'application/json', 'application/x-javascript', 'text/xml', 'application/xml', 'application/xml+rss', 'text/javascript'])|join(' ') }};
  47. gzip_disable "{{ nginx.get('gzip_disable', 'msie6') }}";
  48. # turn on nginx_status on localhost
  49. server {
  50. listen 127.0.0.1:80;
  51. server_name 127.0.0.1;
  52. location /nginx_status {
  53. stub_status on;
  54. access_log off;
  55. allow 127.0.0.1;
  56. deny all;
  57. }
  58. }
  59. {% if pillar['nginx'] is defined -%}
  60. {% if pillar['nginx']['redirect_numeric_ip']|default(False) -%}
  61. server {
  62. server_name {% for ip in salt['network.interfaces']()['eth0']['inet'] %}{{ ip['address'] }}:80{% if not loop.last %} {% endif %}{% endfor %};
  63. return 302 {{ pillar['nginx']['redirect_numeric_ip'] }};
  64. access_log off;
  65. }
  66. {% endif -%}
  67. {% endif %}
  68. include /etc/nginx/conf.d/*.conf;
  69. include /etc/nginx/sites-enabled/*.conf;
  70. }