overleaf/server-ce/nginx/clsi-nginx.conf
Timothée Alby 1ae3061f16 Merge pull request #9972 from overleaf/jpa-fix-rate-limited-output-download
[server-ce] serve output files via nginx

GitOrigin-RevId: 0ba3b27f85f928b1d95646e663dfa42a22a9f832
2022-10-18 08:03:09 +00:00

53 lines
1.8 KiB
Text

# keep in sync with clsi-startup.sh files
# keep in sync with clsi/nginx.conf
# Changes to the above:
# - added debug header
# - remove CORS rules, Server-CE/Server-Pro runs behind a single origin
# - change /output path to /var/lib/sharelatex/data/output
server {
# Extra header for debugging.
add_header 'X-Served-By' 'clsi-nginx' always;
# Security-Headers
add_header 'X-Content-Type-Options' 'nosniff' always;
add_header 'X-Download-Options' 'noopen' always;
add_header 'X-Frame-Options' 'SAMEORIGIN' always;
add_header 'X-XSS-Protection' '1; mode=block' always;
listen 8080;
server_name clsi-nginx;
server_tokens off;
access_log off;
# Ignore symlinks possibly created by users
disable_symlinks on;
# enable compression for tex auxiliary files, but not for pdf files
gzip on;
gzip_types text/plain;
gzip_proxied any;
types {
text/plain log blg aux stdout stderr;
application/pdf pdf;
}
# handle output files for specific users
location ~ ^/project/([0-9a-f]+)/user/([0-9a-f]+)/build/([0-9a-f-]+)/output/output\.([a-z]+)$ {
alias /var/lib/sharelatex/data/output/$1-$2/generated-files/$3/output.$4;
}
# handle output files for anonymous users
location ~ ^/project/([0-9a-f]+)/build/([0-9a-f-]+)/output/output\.([a-z]+)$ {
alias /var/lib/sharelatex/data/output/$1/generated-files/$2/output.$3;
}
# PDF range for specific users
location ~ ^/project/([0-9a-f]+)/user/([0-9a-f]+)/content/([0-9a-f-]+/[0-9a-f]+)$ {
# Cache for one day
expires 1d;
alias /var/lib/sharelatex/data/output/$1-$2/content/$3;
}
# PDF range for anonymous users
location ~ ^/project/([0-9a-f]+)/content/([0-9a-f-]+/[0-9a-f]+)$ {
# Cache for one day
expires 1d;
alias /var/lib/sharelatex/data/output/$1/content/$2;
}
}