-
Notifications
You must be signed in to change notification settings - Fork 1
/
nginx.conf.erb
118 lines (98 loc) · 3.67 KB
/
nginx.conf.erb
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
daemon off;
# Heroku dynos have at least 4 cores.
worker_processes <%= ENV['NGINX_WORKERS'] || 4 %>;
events {
use epoll;
accept_mutex on;
worker_connections <%= ENV['NGINX_WORKER_CONNECTIONS'] || 1024 %>;
}
http {
gzip on;
gzip_comp_level 2;
gzip_min_length 512;
server_tokens off;
access_log <%= ENV['NGINX_ACCESS_LOG_PATH'] || 'logs/nginx/access.log' %>;
error_log <%= ENV['NGINX_ERROR_LOG_PATH'] || 'logs/nginx/error.log' %>;
include mime.types;
default_type application/octet-stream;
sendfile on;
# Must read the body in 5 seconds.
client_body_timeout 5;
# Disable request size checking for all requests. Default value: 1m
#
# NOTE: If you want to enable this for the storefront,
# add this setting with a different value to the appropriate location section.
# Do not activate it here, because this is the global setting and will be checked first.
client_max_body_size 0;
upstream app_server {
server unix:/tmp/nginx.socket fail_timeout=0;
}
server {
listen <%= ENV["PORT"] %>;
server_name _;
keepalive_timeout 5;
# # Enable this part if you want to use error page failover
# proxy_busy_buffers_size 512k;
# proxy_buffers 4 512k;
# proxy_buffer_size 256k;
# proxy_intercept_errors on;
# recursive_error_pages on;
location / {
# Redirect all traffic to HTTPS
if ($http_x_forwarded_proto != "https") {
return 301 https://$host$request_uri;
}
# Enable password protection
if (-f "/app/config/.htpasswd") {
set $auth_basic "Access Restricted";
}
if (!-f "/app/config/.htpasswd") {
set $auth_basic off;
}
auth_basic $auth_basic;
auth_basic_user_file /app/config/.htpasswd;
# # Enable error_page if you want to use error page failover
# error_page 404 500 501 502 503 504 505 506 507 508 510 511 = @failover_target;
proxy_set_header Host $http_host;
proxy_set_header X-Real-IP $http_x_real_ip;
proxy_set_header X-Forwarded-For $proxy_add_x_forwarded_for;
proxy_set_header X-Forwarded-Proto $http_x_forwarded_proto;
proxy_set_header HTTPS $http_https;
proxy_set_header Accept-Encoding "gzip,deflate";
proxy_set_header Connection "";
proxy_set_header Proxy "";
proxy_set_header X-Country-Code $http_x_country_code;
proxy_redirect off;
proxy_pass http://app_server;
# # Enable request size checking for the storefront to prevent data flooding.
# client_max_body_size 1m;
}
location ~ '/sitemap\.xml$' {
proxy_set_header Host <%= ENV["MAKAIRA_API_URL"].dup.sub!(/^https\:\/\//, "") %>;
proxy_set_header X-Real-IP $http_x_real_ip;
proxy_set_header X-Forwarded-For $proxy_add_x_forwarded_for;
proxy_set_header X-Forwarded-Proto $http_x_forwarded_proto;
proxy_set_header HTTPS $http_https;
proxy_set_header Connection "";
proxy_set_header Proxy "";
proxy_redirect off;
proxy_pass <%= ENV["MAKAIRA_API_URL"] %>;
}
# # Failover target
# location @failover_target {
# proxy_pass http://example.com; # Please put the url of your shop system here
# proxy_read_timeout 120s;
# proxy_connect_timeout 15s;
# proxy_send_timeout 90s;
# proxy_set_header Host "SHOP.makria.io"; # Please put the address of this storefront here
# proxy_set_header X-Real-IP $http_x_real_ip;
# proxy_set_header X-Forwarded-For $proxy_add_x_forwarded_for;
# proxy_set_header X-Forwarded-Proto $http_x_forwarded_proto;
# proxy_set_header HTTPS $http_https;
# }
# # Custom location with direct failover
# location ~* ^(/api/) {
# try_files /dev/null @failover_target;
# }
}
}