| 123456789101112131415161718192021222324252627282930313233343536373839404142434445464748495051525354555657585960616263646566676869707172737475 |
- upstream nextcloud_upstream {
- server 172.19.0.3:80; # Die IP wird später durch die tatsächliche Container-IP ersetzt
- }
- server {
- listen 80;
- server_name cloud.mrx8086.com;
-
- # Redirect HTTP to HTTPS
- return 301 https://$host$request_uri;
- }
- server {
- listen 443 ssl;
- server_name cloud.mrx8086.com;
- # SSL Configuration
- ssl_certificate /etc/nginx/ssl/mrx8086.com/fullchain.pem;
- ssl_certificate_key /etc/nginx/ssl/mrx8086.com/privkey.pem;
- ssl_session_timeout 1d;
- ssl_session_tickets off;
- # Modern SSL configuration
- ssl_protocols TLSv1.2 TLSv1.3;
- 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;
- ssl_prefer_server_ciphers off;
- # Security headers
- add_header X-Content-Type-Options nosniff always;
- add_header X-XSS-Protection "1; mode=block" always;
- add_header X-Frame-Options SAMEORIGIN always;
- add_header Strict-Transport-Security "max-age=31536000; includeSubDomains" always;
-
- # Content Security Policy für Nextcloud
- 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;
- # Proxy settings
- 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;
- proxy_set_header X-Forwarded-Host $host;
- proxy_set_header X-Forwarded-Port 443;
- proxy_set_header Host $host;
- proxy_http_version 1.1;
- # Nextcloud specific settings
- client_max_body_size 512M;
- fastcgi_buffers 64 4K;
-
- # Root location
- location / {
- proxy_pass http://nextcloud_upstream;
-
- # WebSocket support
- proxy_set_header Upgrade $http_upgrade;
- proxy_set_header Connection "upgrade";
-
- # Timeouts
- proxy_connect_timeout 60s;
- proxy_send_timeout 60s;
- proxy_read_timeout 60s;
- }
- # Block sensitive paths
- location ~ ^/(?:build|tests|config|lib|3rdparty|templates|data)(?:$|/) {
- deny all;
- return 404;
- }
- # Deny access to hidden files
- location ~ /\. {
- deny all;
- return 404;
- }
- }
|