wwt-nginx-core/nginx.conf.template

138 строки
3.6 KiB
Plaintext
Исходник Постоянная ссылка Обычный вид История

2020-03-27 17:54:11 +03:00
# 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
2020-03-27 17:54:11 +03:00
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;
}
2020-03-27 17:54:11 +03:00
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.
2020-03-27 17:54:11 +03:00
server {
listen 80;
root /usr/share/nginx/html;
2020-03-27 17:54:11 +03:00
# 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;
2020-03-27 17:54:11 +03:00
}
#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;
}
2020-03-27 17:54:11 +03:00
}