Исключить определенные URL-адреса из перенаправления nginx
Я пытаюсь исключить два URL-адреса из перенаправления nginx (http на https). Трафик из Nginx отправляется в guincorn, а URL-адреса динамически генерируются в представлении Django.
Моя текущая базовая конфигурация nginx для сайта приведена ниже. Все запросы, отличные от http, отправляются по протоколу https, используя это.
server {
listen 80;
listen [::]:80 default_server;
server_name mydomain.org;
return 301 https://$server_name$request_uri;
}
server {
listen 443 ssl default_server;
listen [::]:443 ssl default_server;
ssl_certificate ....;
ssl_certificate_key ....;
root /app/ioc;
server_name mydomain.org;
location = /favicon.ico { access_log off; log_not_found off; }
location /static/ {
alias /path/static/;
}
location / {
proxy_pass http://unix:/run/gunicorn.sock;
proxy_set_header Host $http_host;
proxy_set_header X-Forwarded-Proto $scheme;
proxy_set_header X-Forwarded-For $remote_addr;
proxy_redirect off;
}
}
Теперь я пытаюсь исключить как this/endpoint1.txt
, так и this/endpoint2.txt
из перенаправлений. endpoint1.txt
и endpoint1.txt
динамически генерируются в представлении django, поэтому они не являются фактическими текстовыми файлами на сервере.
Попытка сделать что-то подобное приводит к ошибке 404
location /this/endpoint1.txt {
root /path/app;
add_header Content-Type text/plain;
}
Кроме того, когда я делаю что-то вроде этого:
location /this/endpoint1.txt {
proxy_pass http://127.0.0.1:80;
}
Я получаю сообщение об ошибке тайм-аута шлюза 504.
Я связываю gunicorn вот так "0.0.0.0:8000"