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.

преди 10 години
преди 10 години
преди 10 години
преди 10 години
преди 10 години
преди 10 години
преди 10 години
преди 10 години
преди 10 години
12345678910111213141516171819202122232425262728293031323334353637383940414243444546474849505152535455565758596061626364656667686970717273747576
  1. {% set nginx = pillar.get('nginx', {}) -%}
  2. {% set user = nginx.get('user', 'www-data') -%}
  3. {% set group = nginx.get('group', 'www-data') -%}
  4. user {{ user }} {{ group }};
  5. worker_processes {{ nginx.get('worker_processes', 1) }};
  6. {% set worker_rlimit_nofile = nginx.get('worker_rlimit_nofile', '') -%}
  7. {% if worker_rlimit_nofile -%}
  8. worker_rlimit_nofile {{ worker_rlimit_nofile }};
  9. {% endif -%}
  10. {% set error_log_location = nginx.get('error_log',{}).get('location', '/var/log/nginx/error.log') -%}
  11. {% set error_log_level = nginx.get('error_log',{}).get('level', 'warn') -%}
  12. error_log {{ ' '.join([error_log_location, error_log_level]) }};
  13. pid {{ nginx.get('pid', '/var/run/nginx.pid') }};
  14. daemon {{ nginx.get('daemon', 'on') }};
  15. events {
  16. worker_connections {{ nginx.get('events', {}).get('worker_connections', 1024) }};
  17. {% set use = nginx.get('events', {}).get('use', '') -%}
  18. {% if use -%}
  19. use {{ use }};
  20. {% endif %}
  21. }
  22. http {
  23. {% if 'set_real_ips' in nginx -%}
  24. {% for ip in nginx.get('set_real_ips', {}).get('from_ips', []) -%}
  25. set_real_ip_from {{ ip }};
  26. {% endfor -%}
  27. real_ip_header {{ nginx.get('set_real_ips', {}).get('real_ip_header', 'X-Forwarded-For') }};
  28. {% endif -%}
  29. include /etc/nginx/mime.types;
  30. default_type {{ nginx.get('default_type', 'application/octet-stream') }};
  31. 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"';
  32. access_log /var/log/nginx/access.fifo main;
  33. sendfile {{ nginx.get('sendfile', 'on') }};
  34. #tcp_nopush on;
  35. keepalive_timeout {{ nginx.get('keepalive_timeout', 65) }};
  36. server_names_hash_bucket_size {{ nginx.get('server_names_hash_bucket_size', 128) }};
  37. server_names_hash_max_size {{ nginx.get('server_names_hash_max_size', 1024) }};
  38. types_hash_max_size {{ nginx.get('types_hash_max_size', 8192) }};
  39. gzip {{ nginx.get('gzip', 'on') }};
  40. gzip_vary {{ nginx.get('gzip_vary', 'on') }};
  41. gzip_proxied {{ nginx.get('gzip_proxied', 'any') }};
  42. gzip_comp_level {{ nginx.get('gzip_comp_level', 6) }};
  43. gzip_buffers {{ nginx.get('gzip_buffers', '16 8k') }};
  44. gzip_http_version {{ nginx.get('gzip_http_version', '1.1') }};
  45. 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(' ') }};
  46. gzip_disable "{{ nginx.get('gzip_disable', 'msie6') }}";
  47. # turn on nginx_status on localhost
  48. server {
  49. listen 127.0.0.1:80;
  50. server_name 127.0.0.1;
  51. location /nginx_status {
  52. stub_status on;
  53. access_log off;
  54. allow 127.0.0.1;
  55. deny all;
  56. }
  57. }
  58. {% if pillar['nginx'] is defined -%}
  59. {% if pillar['nginx']['redirect_numeric_ip']|default(False) -%}
  60. server {
  61. server_name {% for ip in salt['network.interfaces']()['eth0']['inet'] %}{{ ip['address'] }}:80{% if not loop.last %} {% endif %}{% endfor %};
  62. return 302 {{ pillar['nginx']['redirect_numeric_ip'] }};
  63. access_log off;
  64. }
  65. {% endif -%}
  66. {% endif %}
  67. include /etc/nginx/conf.d/*.conf;
  68. include /etc/nginx/sites-enabled/*.conf;
  69. }