upstream redmine { server unix:/opt/redmine/tmp/sockets/redmine.sock fail_timeout=0; } server { listen 80; server_name redmine_test.com; return 301 https://$host$request_uri; } server { listen 443 ssl http2; server_name redmine_test.com; charset utf-8; client_max_body_size 1G; ssl_session_timeout 90m; access_log /opt/redmine/log/nginx.access.log main; error_log /opt/redmine/log/nginx.error.log; ssl_certificate /etc/nginx/ssl/redmine_test.com.crt; ssl_certificate_key /etc/nginx/ssl/redmine_test.com.key; # rewrite ^/articles/show$ /knowledgebase/articles/$arg_article_id; location / { root /opt/redmine/public; try_files $uri /maintenance.html @redmine; expires 7d; } location ~* \.(xml|json)$ { root /opt/redmine/public; try_files $uri /maintenance.html @redmine; } location ^~ /attachments/download { proxy_set_header X-Sendfile-Type X-Accel-Redirect; proxy_set_header X-Accel-Mapping /opt/redmine/files=/files; proxy_pass http://redmine; proxy_redirect off; proxy_set_header Host $host; proxy_set_header X-Forwarded-For $proxy_add_x_forwarded_for; proxy_set_header X-Forwarded-Proto https; proxy_read_timeout 1800; proxy_buffer_size 16k; proxy_buffers 32 16k; } location ^~ /files { root /opt/redmine; internal; } location @redmine { proxy_pass http://redmine; proxy_redirect off; proxy_set_header Host $host; proxy_set_header X-Forwarded-For $proxy_add_x_forwarded_for; proxy_set_header X-Forwarded-Proto https; proxy_read_timeout 1800; proxy_buffer_size 16k; proxy_buffers 32 16k; } error_page 500 502 503 504 /500.html; }