-
-
Notifications
You must be signed in to change notification settings - Fork 1
/
Copy pathnginx.conf.template
137 lines (107 loc) · 3.58 KB
/
nginx.conf.template
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
# Copyright 2020 the .NET Foundation
# Licensed under the MIT License
#
# Useful links:
#
# https://nginx.org/en/docs/http/ngx_http_core_module.html#variables
# https://nginx.org/en/docs/http/ngx_http_map_module.html
# https://nginx.org/en/docs/http/ngx_http_rewrite_module.html#rewrite
user nginx;
worker_processes auto;
error_log /var/log/nginx/error.log warn;
pid /var/run/nginx.pid;
events {
worker_connections 1024;
}
http {
include /etc/nginx/mime.types;
default_type application/octet-stream;
types {
application/x-wtml wtml;
text/html aspx;
}
log_format main '$remote_addr - $remote_user [$time_local] "$request" '
'$status $body_bytes_sent "$http_referer" '
'"$http_user_agent" "$http_x_forwarded_for"';
access_log /var/log/nginx/access.log main;
sendfile on;
#tcp_nopush on;
keepalive_timeout 65;
#gzip on;
map_hash_bucket_size 128;
map $uri $rw_temp_path {
default "none";
include /etc/nginx/temporary_redirects.map;
}
map $uri $rw_perm_path {
default "none";
include /etc/nginx/permanent_redirects.map;
}
# The default vhost for worldwidetelescope.org and all requests that don't
# match any other vhost.
server {
listen 80;
root /usr/share/nginx/html;
# Set up to redirect properly. See the README for a bit on the motivation
# -- we need to handle several combinations to support both local Docker
# testing and production deployment behind an SSL terminating gateway.
# Note that (1) environment variables are substituted into this file
# literally using `envsubst` (see `Dockerfile`) (2) nginx's `if` syntax is
# very limited, disallowing nesting and comparison of literals.
set $pfdn "${PUBLIC_FACING_DOMAIN_NAME}";
set $redir_scheme $scheme;
if ($http_x_forwarded_proto != "") {
set $redir_scheme "$http_x_forwarded_proto";
}
set $redir_prefix "$redir_scheme://$http_host";
if ($pfdn != "") {
set $redir_prefix "$redir_scheme://$pfdn";
}
location = / {
# We use a cookie named "homepage" to set where visitors to the
# / path should be routed. In the ASP.NET server the value of
# this cookie is just used as the redirect path, but we tighten
# things up to only recognize the special case of "home".
if ($cookie_homepage = "home") {
rewrite ^ "$redir_prefix/home/" redirect;
}
rewrite ^ "$redir_prefix/webclient/" redirect;
}
if ($rw_perm_path ~ "^http") {
rewrite ^ "$rw_perm_path" permanent;
}
if ($rw_perm_path != "none") {
rewrite ^ "$redir_prefix$rw_perm_path" permanent;
}
if ($rw_temp_path ~ "http") {
rewrite ^ "$rw_temp_path" redirect;
}
if ($rw_temp_path != "none") {
rewrite ^ "$redir_prefix$rw_temp_path" redirect;
}
#error_page 404 /404.html;
# redirect server error pages to the static page /50x.html
error_page 500 502 503 504 /50x.html;
location = /50x.html {
root /usr/share/nginx/html;
}
}
# Utility vhost: redirecting our old forum(s).wwt.o to the new forums.
server {
listen 80;
server_name forum.worldwidetelescope.org forums.worldwidetelescope.org;
rewrite ^ "https://wwt-forum.org/" permanent;
}
# Utility vhost: redirecting our old binder.wwt-forum.org to mybinder.
server {
listen 80;
server_name binder.wwt-forum.org;
rewrite ^/(.*)$ "https://mybinder.org/$1" permanent;
}
# Utility vhost: the root wwtassets.org
server {
listen 80;
server_name wwtassets.org;
rewrite ^ "https://www.worldwidetelescope.org/" permanent;
}
}