-
Notifications
You must be signed in to change notification settings - Fork 1
/
nginx.conf
225 lines (168 loc) · 6.39 KB
/
nginx.conf
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
145
146
147
148
149
150
151
152
153
154
155
156
157
158
159
160
161
162
163
164
165
166
167
168
169
170
171
172
173
174
175
176
177
178
179
180
181
182
183
184
185
186
187
188
189
190
191
192
193
194
195
196
197
198
199
200
201
202
203
204
205
206
207
208
209
210
211
212
213
214
215
216
217
218
219
220
221
222
223
224
225
# HTTPS redirect for arx-libertatis.org (allow HTTP for downloads)
server {
listen [::]:80;
server_name arx-libertatis.org;
include arx-libertatis.org.private.conf;
# Downloads
location /files/ {
root /var/www/arx-libertatis.org/htdocs;
# Redirect requests for with only filename to the appropriate subdirectory
rewrite "/files/([a-z\-]+\-\d+\.[\d\.]+(?:-rc\d+|-dev(?:-\d+)+))((?:-[a-z\d-]+)?[\.][^/\d][^/]*)"
"/files/snapshots/$1/$1$2" permanent;
rewrite "/files/([a-z\-]+\-\d+\.[\d\.]+)((?:-[a-z\d-]+)?[\.][^/\d][^/]*)"
"/files/$1/$1$2" permanent;
}
location @use_https {
return 301 https://arx-libertatis.org$request_uri;
}
error_page 403 404 @use_https;
include errors.conf;
}
# Main Arx Libertatis website
server {
listen [::]:443 ssl http2;
server_name arx-libertatis.org;
include arx-libertatis.org.private.conf;
root /var/www/arx-libertatis.org/htdocs;
# Custom not found / forbidden error page
error_page 403 404 /404;
# Temporary downloads
location /temp/ {
types { }
default_type application/octet-stream;
}
# Build logs
location /buildlogs/ {
autoindex on;
try_files $uri $uri.html $uri/ =404;
}
# IRC logs
location /irclogs/ {
autoindex on;
}
# Downloads
location /files/ {
autoindex on;
# Redirect requests for with only filename to the appropriate subdirectory
rewrite "/files/([a-z\-]+\-\d+\.[\d\.]+(?:-rc\d+|-dev(?:-\d+)+))((?:-[a-z\d-]+)?[\.][^/\d][^/]*)"
"/files/snapshots/$1/$1$2" redirect;
rewrite "/files/([a-z\-]+\-\d+\.[\d\.]+)((?:-[a-z\d-]+)?[\.][^/\d][^/]*)"
"/files/$1/$1$2" redirect;
}
location / {
# Strip query parameters - they aren't needed for static pages, only kill cache,
# and duplicate urls
if ($args) {
rewrite ^ $uri? permanent;
}
try_files $uri $uri.html $uri/ =404;
}
include https-only-headers.conf;
include static-expiry-https-only.conf;
include errors.conf;
}
server {
listen [::]:443 ssl http2;
server_name openpgpkey.arx-libertatis.org;
location /.well-known/ {
root /var/www/arx-libertatis.org/htdocs;
}
location / {
return 301 https://arx-libertatis.org$request_uri;
}
}
# Arx Libertatis regexp-based URL shortener
server {
listen [::]:443 ssl http2;
server_name arx.vg;
include arx.vg.private.conf;
# Short links used in AL
rewrite ^/data$ "https://wiki.arx-libertatis.org/Getting_the_game_data" permanent;
rewrite ^/demo-data$ "https://wiki.arx-libertatis.org/Getting_the_game_data#Demo" permanent;
rewrite ^/install-data$ "https://wiki.arx-libertatis.org/Installing_the_game_data_under_Linux" permanent;
rewrite ^/paths$ "https://wiki.arx-libertatis.org/Data_directories" permanent;
rewrite ^/bugs$ "https://bugs.arx-libertatis.org/" permanent;
rewrite ^/bug$ "https://bugs.arx-libertatis.org/arx/issues/new" permanent;
rewrite ^/dl$ "https://arx-libertatis.org/download" permanent;
# Patch
rewrite ^/ArxFatalis_1.21_MULTILANG.exe$
https://cdn.bethsoft.com/arxfatalis/patches/1.21/ArxFatalis_1.21_MULTILANG.exe
permanent;
rewrite ^/arx_jpn_patch_1.02j.exe$
https://web.archive.org/web/http://www.capcom.co.jp/pc/arx/patch/arx_jpn_patch_1.02j.exe
permanent;
# Install script
rewrite ^/arx-install-data$
https://raw.githubusercontent.com/arx/ArxLibertatis/master/scripts/arx-install-data permanent;
rewrite ^/scripts/ /arx-install-data permanent;
# GitHub
rewrite "^/ref/(.*)$" /g/ArxLibertatis/ref/$1;
rewrite "^/pull/(.*)$" /g/ArxLibertatis/pull/$1;
rewrite "^/run/(.*)$" /g/ArxLibertatis/run/$1;
rewrite "^/([0-9a-f]{5,7}\^?)(\.\.[0-9a-f]{5,7})?$" /g/ArxLibertatis/$1$2;
rewrite "^/web/(.*)$" /g/arx-libertatis.org/$1;
rewrite "^/g/([^/]+)/ref/(.*)$" https://github.com/arx/$1/commits/$2 permanent;
rewrite "^/g/([^/]+)/pull/(.*)$" https://github.com/arx/$1/pull/$2 permanent;
rewrite "^/g/([^/]+)/run/(.*)$" https://github.com/arx/$1/runs/$2?check_suite_focus=true permanent;
rewrite "^/g/([^/]+)/([0-9a-f]{5,7})$" https://github.com/arx/$1/commit/$2 permanent;
rewrite "^/g/([^/]+)/([0-9a-f]{5,7}\^?)\.\.([0-9a-f]{5,7})$"
https://github.com/arx/$1/compare/$2...$3 permanent;
# AppVeyor
rewrite "^/appveyor/(.*)$" https://ci.appveyor.com/project/dscharrer/arxlibertatis/builds/$1 permanent;
# Bug tracker
rewrite ^/web-(\d+)$ https://bugs.arx-libertatis.org/website/issues/web-$1 permanent;
rewrite ^/(\d+)$ https://bugs.arx-libertatis.org/arx/issues/$1 permanent;
# Releases
rewrite ^/(\d+\.\d+(\.\d+)?)$ https://arx-libertatis.org/releases/$1 permanent;
# News
rewrite ^/(\d+-(.+)?)$ https://arx-libertatis.org/news/$1 permanent;
# Wiki
rewrite "^/([A-Z][A-Za-z0-9_:]*)$" https://wiki.arx-libertatis.org/$1 permanent;
rewrite "^/wiki$" https://wiki.arx-libertatis.org/ permanent;
rewrite "^/wiki/(\d+)$" https://wiki.arx-libertatis.org/?diff=$1 permanent;
# Development snapshots
rewrite ^/snapshots$ https://wiki.arx-libertatis.org/Development_snapshots permanent;
rewrite "^/(\d+\.\d+(\.\d+)?-dev-.*)$"
https://arx-libertatis.org/files/snapshots/arx-libertatis-$1/ permanent;
rewrite "^/(\d+\.\d+(\.\d+)?-rc.*)$"
https://arx-libertatis.org/files/snapshots/arx-libertatis-$1/ permanent;
# Files
rewrite "^/([^/]+\.(gz|xz|zip|exe))$"
https://arx-libertatis.org/files/$1 permanent;
# Redirect everything else to the main page
rewrite ^ https://arx-libertatis.org$request_uri? permanent;
include https-only-headers.conf;
include errors.conf;
}
# Arx Libertatis website API
server {
listen [::]:80;
listen [::]:443 ssl http2;
server_name api.arx-libertatis.org;
include api.arx-libertatis.org.private.conf;
location = / {
rewrite ^ https://arx-libertatis.org/;
}
location ~ \.php$ {
include fastcgi.conf;
# Use error pages generated by the fastcgi app
fastcgi_intercept_errors off;
try_files $uri =404;
fastcgi_pass php;
}
# Rewrite API URLs to internal implementation files
rewrite /([^/]+)/v([0-9]+)/(.*) /$1.$2.php?resource=$3;
include https-only-headers.conf;
}
server {
listen [::]:80;
server_name arx.parpg.net;
include arx-libertatis.org.private.conf;
return 301 https://wiki.arx-libertatis.org$request_uri;
}
server {
listen [::]:80;
server_name arxfatalis-online.de www.arxfatalis-online.de;
include arx-libertatis.org.private.conf;
return 301 http://web.archive.org/web/20060202074754/http://arxfatalis-online.de$request_uri;
}