@zalarudo

Почему Laravel 8 все маршруты вызывают nginx 404 кроме /?

У меня проблемы с развертыванием проекта laravel 8 на сервере продукта. После установки, миграции и т.д. все мои маршруты возвращают 404 ошибку nginx, кроме "/". Вот структура моих папок
htdocs
--public
    --app
    --bottstrap
    --public            
    --etc.


Я предполагаю, что эта проблема может быть вызвана nginx.conf, но очень трудно понять, где именно проблема.

Моя конфигурация nginx
Эту конфигурацию предоставили админы сервера
server {
    listen 80;
    server_name domain.com www.domain.com;

    include letsencrypt.conf;
    root  /srv/www/domain.com/htdocs/public/public;
    index index.php index.html index.htm;
    
    location / {
        try_files $uri $uri/ /index.php$is_args$args;
    }

    access_log off;
    error_log /srv/www/domain.com/logs/domain.com-err;
}

server {
    listen 443 ssl;
    server_name domain.com www.domain.com;
    #charset    utf-8;
    server_name_in_redirect off;

    if ($host ~ www.domain.com) { rewrite ^ https://domain.com$request_uri? permanent; }

    ssl_certificate /etc/letsencrypt/live/domain.com/fullchain.pem;
    ssl_certificate_key /etc/letsencrypt/live/domain.com/privkey.pem;

    access_log off;
    #access_log /srv/www/domain.com/logs/domain.com-acc main;
    error_log /srv/www/domain.com/logs/domain.com-err;

    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    Host $host;

    set $proxyserver    "http://127.0.0.1:8080";
    set $imcontenttype  "text/html; charset=utf-8";
    set $docroot        "/srv/www/domain.com/htdocs/public/public";

    index index.php;
    root /srv/www/domain.com/htdocs/public/public;

    # Include parameters common to all websites
    include bx/bitrix.conf;
}


Пробовал менять location / на try_files $uri $uri/ /index.php?$query_string; , но результата не дало к сожалению
  • Вопрос задан
  • 100 просмотров
Пригласить эксперта
Ответы на вопрос 1
SignFinder
@SignFinder
Wintel\Unix Engineer\DevOps
У вас:
1. проксирование в laravel не включено.
location / {
	proxy_pass http://127.0.0.1:8080;
    }


2. Если вы проксируете всю корневую location - директиву root нужно убрать.
3. Location должны быть в обоих блоках server.
Ответ написан
Комментировать
Ваш ответ на вопрос

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

Похожие вопросы