Как настроить проект nginx laravel + vue cli - PullRequest
0 голосов
/ 12 июня 2019

Привет, я создаю laravel для BackOffice и Api для внешнего интерфейса.

Во внешнем интерфейсе я использую vuejs.

Как настроить nginx

  • если найти путь / admin -> войти в laravelproject
  • если найти путь / api -> войти в проект laravel
  • иначе просто войдите в vue project

Вот что я сейчас использую

server {
    listen 80 default_server;
    listen [::]:80 default_server;

    root /var/www/html;

    index index.html index.php  index.htm index.nginx-debian.html;

    server_name localhost;

    location / {
        // Here is working fine run index.html ( vue )
        try_files $uri $uri/ = /index.html;
    }

    location ~ \.php$ {
      // setup php version
      include snippets/fastcgi-php.conf;

      fastcgi_pass unix:/var/run/php/php7.2-fpm.sock;
   }

    location  /api {
        // I want to go in laravel path here. It's not working 
         root /var/www/html/serverside/public;
         try_files $uri $uri/ /index.php?$query_string;
    }

    location  /admin {
        // I want to go in laravel path here.It's not working 
         root /var/www/html/serverside/public;
         try_files $uri $uri/ /index.php?$query_string;
    }

}

Вот моя структура папок

/var/www/html/serverside/laravelproject ( in serverside laravel project locate here )
/var/www/html/index.html ( Here is vue js )

***** ОБНОВЛЕНИЕ *****

Вот мой laravel.conf

server {
    listen 80;
    root /var/www/html/serverside/public;
    index  index.php index.html index.htm;
    server_name  localhost;

    location / {
        try_files $uri $uri/ /index.php?$query_string;        
    }


    location ~ \.php$ {
       include snippets/fastcgi-php.conf;
       fastcgi_pass             unix:/var/run/php/php7.2-fpm.sock;
       fastcgi_param   SCRIPT_FILENAME $document_root$fastcgi_script_name;
    }

}

nginx error.log show / etc/nginx/sites-enabled/laravel.conf" failed (40: Too many levels of symbolic links) in /etc/nginx/nginx.conf: 62

1 Ответ

0 голосов
/ 12 июня 2019

Минимальный nginx vhost для laravel вот так, на сервере ubuntu правильное место для этого vhost: /etc/ngixt/sites-available.

#laravel.conf
server {
    listen 80;
    root /var/www/html/project_name/public;
    index  index.php index.html index.htm;
    server_name  api.example.com www.api.example.com;

    location / {
        try_files $uri $uri/ /index.php?$query_string;        
    }


    location ~ \.php$ {
       include snippets/fastcgi-php.conf;
       fastcgi_pass             unix:/var/run/php/php7.2-fpm.sock;
       fastcgi_param   SCRIPT_FILENAME $document_root$fastcgi_script_name;
    }

}

Минимальный nginx vhost для vuejs такой же, как ивы всегда можете использовать pm2 для запуска вашего приложения vue js в перикулярном порту, например 8080,8081, ... для передачи прокси

#vue.conf
server {
  listen 80;
  index index.html;
  server_name example.com www.example.com;

  location / {
      proxy_pass http://localhost:8080;
  }
}

Не забудьте создать символическую ссылку на включенных сайтах

# ln -s /etc/nginx/sites-enabled/laravel.conf /etc/nginx/sites-enabled/
# ln -s /etc/nginx/sites-enabled/vue.conf /etc/nginx/sites-enabled/
# service ntinx -t
# service nginx restart

Дополнительно вы можете добавить конфигурации ssl и многое другое,

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...