summaryrefslogtreecommitdiffstats
path: root/samples/services/nginx/docker/grpc/templates/server.template
blob: c1582fa44813efc287b29d40474f78abb6671de7 (plain)
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
52
53
54
55
56
57
58
59
60
61
62
63
64
65
66
67
68
69
70
71
72
73
74
75
76
77
78
79
80
81
82
83
84
85
86
87
88
89
90
91
92
93
94
95
96
97
98
99
100
101
102
103
104
105
106
107
108
109
110
111
112
113
114
115
116
117
118
119
120
121
122
123
124
125
126
127
128
129
130
131
132
133
134
135
136
137
138
139
140
141
142
143
144
user www-data;
worker_processes auto;
pid /run/nginx.pid;

events {
    worker_connections 768;
    # multi_accept on;
}

http {

    ##
    # Basic Settings
    ##

    sendfile on;
    tcp_nopush on;
    tcp_nodelay on;
    keepalive_timeout 65;
    types_hash_max_size 2048;
    # server_tokens off;


    include /etc/nginx/mime.types;
    default_type application/octet-stream;

    ##
    # SSL Settings
    ##

    ssl_protocols TLSv1 TLSv1.1 TLSv1.2; # Dropping SSLv3, ref: POODLE
    ssl_prefer_server_ciphers on;

    ##
    # Logging Settings
    ##

    access_log /var/log/nginx/access.log;
    error_log /var/log/nginx/error.log;

    ##
    # Gzip Settings
    ##

    gzip on;
    gzip_disable "msie6";

    # gzip_vary on;
    # gzip_proxied any;
    # gzip_comp_level 6;
    # gzip_buffers 16 8k;
    # gzip_http_version 1.1;
    # gzip_types text/plain text/css application/json application/javascript text/xml application/xml application/xml+rss text/javascript;

    ##
    # Virtual Host Configs
    ##

    include /etc/nginx/conf.d/*.conf;
    #include /etc/nginx/sites-enabled/*;

        server {
            listen {{ server_port }};
            server_name {{ server_name }};
            client_max_body_size 500m;

            root {{ site_root }};
            index {{ site_index }};

            {%- for l in locations %}

            location {{ l["uri_match"] }} {
                {{ l["directive"] }};
            }

            {%- endfor %}

            location @default1 {
                 index ../index.html;
            }

            location @default2 {
                 index ../../index.html;
            }

            location @default3 {
                 index ../../../index.html;
            }

            # Use to upload files for download
            location {{ upload_path_config }} {
                # Pass altered request body to this location
                upload_pass   @return_config;

                # Store files to this directory
                upload_resumable on;
                upload_state_store /tmp/state;
                upload_store {{ site_root }}{{ upload_path_config }};

                # Allow uploaded files to be read only by user
                #upload_store_access user:r;

                # Set specified fields in request body
                upload_set_form_field $upload_field_name.name "$upload_file_name";
                upload_set_form_field $upload_field_name.content_type "$upload_content_type";
                upload_set_form_field $upload_field_name.path "$upload_tmp_path";
                upload_set_form_field $upload_field_name.server "$server_name";

                # Inform backend about hash and size of a file
                upload_aggregate_form_field "$upload_field_name.md5" "$upload_file_md5";
                upload_aggregate_form_field "$upload_field_name.size" "$upload_file_size";

                upload_pass_form_field "^submit$|^description$";

                upload_cleanup 400 404 499 500-505;
            }

            location @return_config {
                proxy_pass http://clover-controller:80;
                proxy_http_version 1.1;
            }

            # Use to upload files for performance testing
            location {{ upload_path_test }} {

                upload_pass   @return_path;

                # Store files to this directory
                upload_resumable on;
                upload_state_store /tmp/state;
                upload_store {{ site_root }}{{ upload_path_test }};

                upload_pass_form_field "^submit$|^description$";

                upload_cleanup 400 404 499 500-505;
            }

            location @return_path {
                return 204;
            }


        }
}