summaryrefslogtreecommitdiff
blob: 5f701668efa9d312f19459983eccbf7550088fe1 (plain) (blame)
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
## Proxy options
proxy_buffering           on;
#  proxy_cache_min_uses       3;
proxy_cache_path          /var/nginx/proxy-cache/ levels=1:2 keys_zone=cache:10m inactive=10m max_size=1000M;
proxy_cache_valid         any 10m;
proxy_ignore_client_abort off;
proxy_intercept_errors    on;
proxy_next_upstream       error timeout invalid_header;
proxy_redirect            off;
proxy_set_header          Host $host;
proxy_set_header          X-Forwarded-For $remote_addr;
proxy_connect_timeout     60;
proxy_send_timeout        60;
proxy_read_timeout        60;

# We used to use this header when we ran dual http/https stacks to verify
# user login pages were being only requested over https, but now we forward
# every site to https, so we can assume our schemes are aligned to our interests
# (as long as all our backend code stopped checking for X-Forwarded-Proto too).
#proxy_set_header          X-Forwarded-Proto $scheme;

## Size Limits
# May need to override these (server or location blocks) if doing large uploads.
# Setting to zero disables any size checking.
client_body_buffer_size   16k;
client_max_body_size      15m;

# If clients send headers larger than 1k,
# they get upgraded to large_client_header_buffers.
client_header_buffer_size 1k;
large_client_header_buffers 32 64k;

## Timeouts
client_body_timeout   5s;
client_header_timeout 5s;
keepalive_timeout     5s 5s;
#keepalive_timeout 0;
send_timeout          5s;

## General Options
ignore_invalid_headers   on;
recursive_error_pages    on;
#sendfile                 on; # enabled by top level config
server_name_in_redirect off;
server_tokens           off;

# For per-client rate limiting, see config options at:
# https://nginx.org/en/docs/http/ngx_http_limit_conn_module.html

## Compression
#gzip              on; # enabled by top level config
gzip_static       on;
gzip_buffers      16 32k;
gzip_comp_level   6;
gzip_http_version 1.0;
gzip_min_length   500;
gzip_types        text/plain application/x-javascript text/xml text/css image/x-icon application/xml application/xml+rss text/javascript application/javascript application/json image/svg+xml font/truetype font/opentype application/vnd.ms-fontobject;
gzip_vary         on;
gzip_proxied      any;  # required for cloudfront to receive a gzip'd response

## Filesystem Operation Cache (caches fds, sizes, times, errors, etc)
open_file_cache          max=6000 inactive=5m;
open_file_cache_valid    2m;
open_file_cache_min_uses 1;
open_file_cache_errors   on;

# For reading a response from disk
output_buffers 32 32k;

## Optimize Large File Transfers (can be overriden in hosts and locations)
aio threads; # use default thread pool, create thread pools: threads=NAME;
aio_write on; # use threaded writes for temporary files and proxied data

# For files larger than 8 MB, use O_DIRECT instead of sendfile()
directio 8m;
directio_alignment 512; # if using XFS, set as 4096

## Access Log Caches
open_log_file_cache max=64 inactive=20s min_uses=1 valid=1m;

log_format  main  '$remote_addr - $remote_user [$time_local] "$request" '
                  '$status $body_bytes_sent "$http_referer" '
                  '"$http_user_agent" "$http_x_forwarded_for"';
Powered by cgit v1.2.3 (git 2.41.0)