From 19f7d9e8d8b8830591096cf2083c6adbcfc8fa22 Mon Sep 17 00:00:00 2001 From: Wayne Witzel III Date: Mon, 12 Dec 2016 13:06:42 -0500 Subject: [PATCH] redirect if no forward-slash --- config/awx-nginx.conf | 2 + tools/docker-compose/nginx.vh.default.conf | 66 +++++++++++----------- 2 files changed, 36 insertions(+), 32 deletions(-) diff --git a/config/awx-nginx.conf b/config/awx-nginx.conf index 30806cbfe8..15e58678ba 100644 --- a/config/awx-nginx.conf +++ b/config/awx-nginx.conf @@ -87,6 +87,8 @@ http { } location / { + # Redirect if there is no forward-slash + rewrite ^(.*[^/])$ $1/ permanent; uwsgi_read_timeout 120s; uwsgi_pass uwsgi; include /etc/nginx/uwsgi_params; diff --git a/tools/docker-compose/nginx.vh.default.conf b/tools/docker-compose/nginx.vh.default.conf index 456b16953d..5cabf89bbb 100644 --- a/tools/docker-compose/nginx.vh.default.conf +++ b/tools/docker-compose/nginx.vh.default.conf @@ -7,20 +7,20 @@ upstream daphne { } server { - listen 8013 default_server; - listen [::]:8013 default_server; - return 301 https://$host:8043$request_uri; + listen 8013 default_server; + listen [::]:8013 default_server; + return 301 https://$host:8043$request_uri; } server { - listen 8043 default_server ssl; + listen 8043 default_server ssl; - # If you have a domain name, this is where to add it + # If you have a domain name, this is where to add it server_name _; - keepalive_timeout 65; + keepalive_timeout 65; - ssl_certificate /etc/nginx/nginx.crt; - ssl_certificate_key /etc/nginx/nginx.key; + ssl_certificate /etc/nginx/nginx.crt; + ssl_certificate_key /etc/nginx/nginx.key; ssl_session_timeout 1d; ssl_session_cache shared:SSL:50m; @@ -41,31 +41,33 @@ server { sendfile off; } - location /websocket { - # Pass request to the upstream alias - proxy_pass http://daphne; - # Require http version 1.1 to allow for upgrade requests - proxy_http_version 1.1; - # We want proxy_buffering off for proxying to websockets. - proxy_buffering off; - # http://en.wikipedia.org/wiki/X-Forwarded-For - proxy_set_header X-Forwarded-For $proxy_add_x_forwarded_for; - # enable this if you use HTTPS: - proxy_set_header X-Forwarded-Proto https; - # pass the Host: header from the client for the sake of redirects - proxy_set_header Host $http_host; - # We've set the Host header, so we don't need Nginx to muddle - # about with redirects - proxy_redirect off; - # Depending on the request value, set the Upgrade and - # connection headers - proxy_set_header Upgrade $http_upgrade; - proxy_set_header Connection $connection_upgrade; - } + location /websocket { + # Pass request to the upstream alias + proxy_pass http://daphne; + # Require http version 1.1 to allow for upgrade requests + proxy_http_version 1.1; + # We want proxy_buffering off for proxying to websockets. + proxy_buffering off; + # http://en.wikipedia.org/wiki/X-Forwarded-For + proxy_set_header X-Forwarded-For $proxy_add_x_forwarded_for; + # enable this if you use HTTPS: + proxy_set_header X-Forwarded-Proto https; + # pass the Host: header from the client for the sake of redirects + proxy_set_header Host $http_host; + # We've set the Host header, so we don't need Nginx to muddle + # about with redirects + proxy_redirect off; + # Depending on the request value, set the Upgrade and + # connection headers + proxy_set_header Upgrade $http_upgrade; + proxy_set_header Connection $connection_upgrade; + } - location / { + location / { + # Add trailing / if missing + rewrite ^(.*[^/])$ $1/ permanent; uwsgi_read_timeout 120s; uwsgi_pass uwsgi; - include /etc/nginx/uwsgi_params; - } + include /etc/nginx/uwsgi_params; + } }