Problem polega na tym, że NGINX nie jest skonfigurowany do obsługi statycznych plików z katalogu /home/www/NAZWA_KLIENTA/media pod ścieżką /media. Obecnie wszystkie żądania (w tym te do /media) są przekazywane do aplikacji działającej na 127.0.0.1:8080, która nie obsługuje listowania plików i przekierowuje do strony logowania.
Trzeba dodać nową lokalizację (location) w konfiguracji NGINX, która będzie obsługiwała żądania do /media bezpośrednio z systemu plików, zamiast przekazywania ich do aplikacji.
Otwórz plik konfiguracyjny NGINX (np. /etc/nginx/sites-available/app.avlab.pl lub /etc/nginx/conf.d/app.conf) i dodaj następującą sekcję wewnątrz bloku server dla domeny app.avlab.pl:
nginxserver { listen 80; listen [::]:80; server_name app.avlab.pl; # ... (istniejąca konfiguracja SSL, jeśli jest używana) # Obsługa statycznych plików dla /media location /media/ { alias /home/www/NAZWA_KLIENTA/media/; autoindex on; # Włącz listowanie katalogów (opcjonalnie) try_files $uri =404; } # Przekierowanie pozostałych żądań do aplikacji Docker location / { proxy_pass http://127.0.0.1:8080; 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 /media/: Definiuje, że wszystkie żądania zaczynające się od /media/ będą obsługiwane przez NGINX, a nie przekazywane do aplikacji.alias /home/www/NAZWA_KLIENTA/media/: Mapuje ścieżkę /media na fizyczny katalog na serwerze.autoindex on;: Włącza listowanie plików w katalogu (jeśli chcesz, aby użytkownicy widzieli listę plików). Możesz to pominąć, jeśli nie jest potrzebne.try_files $uri =404;: Sprawdza, czy plik istnieje. Jeśli nie, zwraca błąd 404.Przed restartem NGINX sprawdź, czy konfiguracja jest poprawna:
bashsudo nginx -t
Jeśli nie ma błędów, zrestartuj NGINX:
bashsudo systemctl restart nginx
Upewnij się, że:
/home/www/NAZWA_KLIENTA/media istnieje.www-data lub nginx), ma uprawnienia do odczytu tego katalogu:
bashsudo chown -R www-data:www-data /home/www/NAZWA_KLIENTA/media sudo chmod -R 755 /home/www/NAZWA_KLIENTA/media
test.jpg) powinien być dostępny pod:https://app.avlab.pl/media/test.jpgautoindex jest włączony, lista plików powinna być widoczna pod:https://app.avlab.pl/media/Jeśli aplikacja w kontenerze Docker może obsługiwać statyczne pliki, możesz zamiast tego:
/home/www/NAZWA_KLIENTA/media:
bashln -s /home/www/NAZWA_KLIENTA/media /path/do/katalogu/aplikacji/static/media
/media jako statyczne pliki.location /media/ w NGINX i ustaw alias na katalog SFTP.https://app.avlab.pl/media/.Czy masz dostęp do pliku konfiguracyjnego NGINX, aby wprowadzić te zmiany?