@Evtera

Как хостить картинки через nginx?

Здравствуйте. Ситуация следующая. Есть vps, где в home директории есть папка assets. В этой папке множество других папок с динамическим названием. В данном случае, это айдишники. Внутри уже этих папок лежат картинки.

Итого: Ссылка domain-name/assets-static/services/list/180/img8.png должна открывать картинку, но вместо этого я закономерно получаю 404

пробовал такой конфиг
server {
    listen 80;
    listen 443 ssl http2;
    server_name project-name.fun www.project-name.fun;
    ssl_certificate /etc/letsencrypt/live/project-name.fun/fullchain.pem;
    ssl_certificate_key /etc/letsencrypt/live/project-name.fun/privkey.pem;
    ssl_protocols TLSv1.2 TLSv1.3;
    ssl_session_timeout 1d;
    ssl_session_tickets off;
    gzip on;
    gzip_disable "msie6";
    gzip_vary on;
    gzip_proxied any;
    gzip_comp_level 6;
    gzip_buffers 16 8k;
    gzip_http_version 1.1;
    gzip_min_length 256;
    gzip_types
        application/atom+xml
        application/geo+json
        application/javascript
        application/x-javascript
        application/json
        application/ld+json
        application/manifest+json
        application/rdf+xml
        application/rss+xml
        application/xhtml+xml
        application/xml
        font/eot
        font/otf
        font/ttf
        image/svg+xml
        text/css
        text/javascript
        text/plain
        text/xml;
    # This is a cache for SSL connections
    # ssl_session_cache shared:le_nginx_SSL:1m;
    # ssl_session_timeout 1440m;
    rewrite ^/(.*) /$1 break;


     location /assets-static/ {
         root   /home/username/project-name/assets/images
     }

    location / {
        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;
        proxy_redirect          off;
        proxy_buffering         on;
        proxy_cache_valid   200 1d;
        proxy_cache_use_stale   error timeout invalid_header updating http_500 http_502 http_503 http_504;
        proxy_pass              http://127.0.0.1:3000;
        proxy_read_timeout  1m;
        proxy_connect_timeout   1m;
        proxy_http_version 1.1;
        proxy_set_header Connection "";
    }

    location ~^/api/v1 {
        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;
        proxy_redirect          off;
        proxy_buffering         on;
        proxy_cache_valid   200 1d;
        proxy_cache_use_stale   error timeout invalid_header updating http_500 http_502 http_503 http_504;
        proxy_pass              http://127.0.0.1:8000;
        proxy_read_timeout  1m;
        proxy_connect_timeout   1m;
    }



}
}
, но толку нет
  • Вопрос задан
  • 326 просмотров
Решения вопроса 1
Daemon23RUS
@Daemon23RUS
Ваш конфиг выглядит адекватно, до тех пор, пока мы не знаем реальный путь к картинке на хостинге и реальный адрес http чтобы получить эту картинку. Дополните информацию, дополню ответ.

UPD: В комментах выяснили, что файл лежит в /home/username/projectname/assets/images/services/list/180/img8.png
Ответ: для этого конфига должен лежать в /home/username/projectname/assets/images/assets-static/services/list/180/img8.png
UPD2: Важно!! После публикации в ответе полного конфига rewrite ^/(.*) /$1 break; правило тоже убрали
Ответ написан
Пригласить эксперта
Ваш ответ на вопрос

Войдите, чтобы написать ответ

Войти через центр авторизации
Похожие вопросы