@k3499

Почему Nginx отдает вместо статики 403 ошибку в Next.js?

Вероятно проблема в nginx с путями, но все вроде перепроверил. Все пути правильные.

6454e7a2c8f34134695704.jpeg

6454e7ed51218718717788.png

nginx config

server {
    server_name example.com www.example.com;

    root /root/promo/nextjs-coupon/public;

    location /_next/static/ {
        alias /root/promo/nextjs-coupon/.next/static;
        expires 1d;
        add_header Cache-Control "public, immutable";
    }

    location / {
    proxy_pass http://localhost:3000;
        proxy_http_version 1.1;
        proxy_set_header Upgrade $http_upgrade;
        proxy_set_header Connection 'upgrade';
        proxy_set_header Host $host;
        proxy_cache_bypass $http_upgrade;
    }

    location ~* \.(js|css|png|jpg|jpeg|gif|ico)$ {
        expires 1d;
        add_header Cache-Control "public, immutable";
        try_files $uri =404;
    }

    error_page 404 /404.html;
    location = /404.html {
        internal;
    }
    
    listen 443 ssl; # managed by Certbot
    ssl_certificate /etc/letsencrypt/live/example.com/fullchain.pem; # managed by Certbot
    ssl_certificate_key /etc/letsencrypt/live/example.com/privkey.pem; # managed by Certbot
    include /etc/letsencrypt/options-ssl-nginx.conf; # managed by Certbot
    ssl_dhparam /etc/letsencrypt/ssl-dhparams.pem; # managed by Certbot
}


server {
        server_name admin.example.com www.admin.example.com;

        location / {
           proxy_pass http://example.com:1337;
           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;
       }
}

server {
    if ($host = www.example.com) {
        return 301 https://$host$request_uri;
    } # managed by Certbot


    if ($host = example.com) {
        return 301 https://$host$request_uri;
    } # managed by Certbot


    server_name example.com www.example.com;
    listen 80;
    return 404; # managed by Certbot
}
  • Вопрос задан
  • 302 просмотра
Решения вопроса 1
@dodo512
Кроме переноса сайта из /root/ в /var/www/ нужно еще поправить тут:
location /_next/static/ {
    alias /var/www/promo/nextjs-coupon/.next/static;

В location добавить ^~ и в alias добавить /
location ^~ /_next/static/ {
    alias /var/www/promo/nextjs-coupon/.next/static/;
Ответ написан
Пригласить эксперта
Ответы на вопрос 1
karabanov
@karabanov
Системный администратор
Загляни в error.log и узнаешь ответ.

spoiler
Не хватает прав на чтение.
Ответ написан
Ваш ответ на вопрос

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

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