events { worker_connections 1024; } http { # Browser preferred language detection (does NOT require AcceptLanguageModule) map $http_accept_language $accept_language { ~*^fr fr; ~*^en en; } types { module js; } include /etc/nginx/mime.types; server { listen 80; server_name codiki.org; root /usr/share/nginx/html; # Fallback to default language if no preference defined by browser if ($accept_language ~ "^$") { set $accept_language "fr"; } location ~ ^/$ { # Redirect "/" to Angular app in browser's preferred language rewrite ^/$ /$accept_language permanent; proxy_set_header Host $host:$server_port; proxy_set_header X-Forwarded-Host $server_name; proxy_set_header X-Real-IP $remote_addr; proxy_set_header X-Forwarded-For $proxy_add_x_forwarded_for; } # Everything under the Angular app is always redirected to Angular in the correct language location ~ ^/fr/ { alias /usr/share/nginx/html/fr/; try_files $uri /fr/index.html?$args; proxy_set_header Host $host:$server_port; proxy_set_header X-Forwarded-Host $server_name; proxy_set_header X-Real-IP $remote_addr; proxy_set_header X-Forwarded-For $proxy_add_x_forwarded_for; } location ~ ^/en/ { alias /usr/share/nginx/html/en/; try_files $uri /en/index.html?$args; proxy_set_header Host $host:$server_port; proxy_set_header X-Forwarded-Host $server_name; proxy_set_header X-Real-IP $remote_addr; proxy_set_header X-Forwarded-For $proxy_add_x_forwarded_for; } location ~ ^/api { proxy_pass http://192.168.0.153:50011; proxy_set_header Host $host:$server_port; proxy_set_header X-Forwarded-Host $server_name; proxy_set_header X-Real-IP $remote_addr; proxy_set_header X-Forwarded-For $proxy_add_x_forwarded_for; } } }