2024-10-25 22:57:10 -04:00
|
|
|
worker_processes 1;
|
2025-01-10 19:41:03 -05:00
|
|
|
|
2024-10-25 22:57:10 -04:00
|
|
|
events {
|
|
|
|
worker_connections 1024;
|
|
|
|
}
|
|
|
|
|
|
|
|
http {
|
|
|
|
include /etc/nginx/mime.types;
|
|
|
|
default_type application/octet-stream;
|
|
|
|
|
|
|
|
sendfile on;
|
|
|
|
keepalive_timeout 65;
|
|
|
|
|
2024-12-01 09:52:34 -05:00
|
|
|
client_max_body_size 100M;
|
|
|
|
|
2024-10-25 22:57:10 -04:00
|
|
|
upstream django {
|
2025-05-31 21:36:23 -04:00
|
|
|
server 127.0.0.1:8000;
|
2024-10-25 22:57:10 -04:00
|
|
|
}
|
|
|
|
|
|
|
|
server {
|
2025-01-18 17:03:03 -05:00
|
|
|
listen 80;
|
2024-10-25 22:57:10 -04:00
|
|
|
server_name localhost;
|
|
|
|
|
|
|
|
location / {
|
2025-05-31 21:36:23 -04:00
|
|
|
proxy_pass http://django;
|
2024-10-25 22:57:10 -04:00
|
|
|
proxy_set_header Host $host;
|
|
|
|
proxy_set_header X-Real-IP $remote_addr;
|
|
|
|
proxy_set_header X-Forwarded-For $proxy_add_x_forwarded_for;
|
|
|
|
proxy_set_header X-Forwarded-Proto $scheme;
|
|
|
|
}
|
|
|
|
|
|
|
|
location /static/ {
|
2025-05-31 21:36:23 -04:00
|
|
|
alias /code/staticfiles/;
|
2024-10-25 22:57:10 -04:00
|
|
|
}
|
|
|
|
|
2025-05-31 21:36:23 -04:00
|
|
|
# Internal redirect path for protected media
|
2025-01-18 17:03:03 -05:00
|
|
|
location /protectedMedia/ {
|
2025-05-22 16:26:50 -04:00
|
|
|
internal;
|
|
|
|
alias /code/media/;
|
|
|
|
try_files $uri =404;
|
2025-05-29 18:02:05 -04:00
|
|
|
}
|
2025-05-22 16:26:50 -04:00
|
|
|
|
2025-05-31 21:36:23 -04:00
|
|
|
# Special headers for PDF responses under /protectedMedia/
|
|
|
|
location ~ ^/protectedMedia/.*\.pdf$ {
|
2025-05-31 21:08:20 -04:00
|
|
|
internal;
|
|
|
|
alias /code/media/;
|
2025-05-31 21:36:23 -04:00
|
|
|
try_files $uri =404;
|
|
|
|
|
2025-05-29 18:02:05 -04:00
|
|
|
add_header Content-Security-Policy "default-src 'self'; script-src 'none'; object-src 'none'; base-uri 'none'" always;
|
|
|
|
add_header X-Content-Type-Options nosniff always;
|
|
|
|
add_header X-Frame-Options SAMEORIGIN always;
|
|
|
|
add_header Content-Disposition "inline" always;
|
|
|
|
}
|
2024-10-25 22:57:10 -04:00
|
|
|
}
|
2025-01-18 17:03:03 -05:00
|
|
|
}
|