nextcloud 2.4 KB

123456789101112131415161718192021222324252627282930313233343536373839404142434445464748495051525354555657585960616263646566676869707172737475
  1. upstream nextcloud_upstream {
  2. server 172.19.0.3:80; # Die IP wird später durch die tatsächliche Container-IP ersetzt
  3. }
  4. server {
  5. listen 80;
  6. server_name cloud.mrx8086.com;
  7. # Redirect HTTP to HTTPS
  8. return 301 https://$host$request_uri;
  9. }
  10. server {
  11. listen 443 ssl;
  12. server_name cloud.mrx8086.com;
  13. # SSL Configuration
  14. ssl_certificate /etc/nginx/ssl/mrx8086.com/fullchain.pem;
  15. ssl_certificate_key /etc/nginx/ssl/mrx8086.com/privkey.pem;
  16. ssl_session_timeout 1d;
  17. ssl_session_tickets off;
  18. # Modern SSL configuration
  19. ssl_protocols TLSv1.2 TLSv1.3;
  20. ssl_ciphers ECDHE-ECDSA-AES128-GCM-SHA256:ECDHE-RSA-AES128-GCM-SHA256:ECDHE-ECDSA-AES256-GCM-SHA384:ECDHE-RSA-AES256-GCM-SHA384:ECDHE-ECDSA-CHACHA20-POLY1305:ECDHE-RSA-CHACHA20-POLY1305:DHE-RSA-AES128-GCM-SHA256:DHE-RSA-AES256-GCM-SHA384;
  21. ssl_prefer_server_ciphers off;
  22. # Security headers
  23. add_header X-Content-Type-Options nosniff always;
  24. add_header X-XSS-Protection "1; mode=block" always;
  25. add_header X-Frame-Options SAMEORIGIN always;
  26. add_header Strict-Transport-Security "max-age=31536000; includeSubDomains" always;
  27. # Content Security Policy für Nextcloud
  28. add_header Content-Security-Policy "frame-ancestors 'self'; default-src 'self'; script-src 'self' 'unsafe-inline' 'unsafe-eval'; style-src 'self' 'unsafe-inline'; img-src 'self' data: blob:; font-src 'self' data:; connect-src 'self'; media-src 'self';" always;
  29. # Proxy settings
  30. proxy_set_header X-Real-IP $remote_addr;
  31. proxy_set_header X-Forwarded-For $proxy_add_x_forwarded_for;
  32. proxy_set_header X-Forwarded-Proto $scheme;
  33. proxy_set_header X-Forwarded-Host $host;
  34. proxy_set_header X-Forwarded-Port 443;
  35. proxy_set_header Host $host;
  36. proxy_http_version 1.1;
  37. # Nextcloud specific settings
  38. client_max_body_size 512M;
  39. fastcgi_buffers 64 4K;
  40. # Root location
  41. location / {
  42. proxy_pass http://nextcloud_upstream;
  43. # WebSocket support
  44. proxy_set_header Upgrade $http_upgrade;
  45. proxy_set_header Connection "upgrade";
  46. # Timeouts
  47. proxy_connect_timeout 60s;
  48. proxy_send_timeout 60s;
  49. proxy_read_timeout 60s;
  50. }
  51. # Block sensitive paths
  52. location ~ ^/(?:build|tests|config|lib|3rdparty|templates|data)(?:$|/) {
  53. deny all;
  54. return 404;
  55. }
  56. # Deny access to hidden files
  57. location ~ /\. {
  58. deny all;
  59. return 404;
  60. }
  61. }