前言
前端单独放了一个网站里(用的一级域名 => abc.com);
后端Laravel框架写的API接口也单独放了一个网站里(用的二级域名 => like.abc.com);
都是放在一个服务器里面的;
但是这么部署的话会有一个问题: 就是前端文件在本地的时候你可以直接代理API那里, 但是发布到线上abc.com那里后, 代理就失效了, 线上直接访问变成了 abc.com/api/list, 但是接口在like.abc.com/api/list里面, 这可怎么拿到数据呢?
方案

点击abc.com这个网站配置一个nginx, 代理到like.abc.com这个网站上
#代理请求地址
location ^~/api/
{
proxy_pass http://like.abc.com;
add_header 'Access-Control-Allow-Origin' '*'; #解决跨域
#rewrite ^/api/(.*)$ /$1 break; #删除配置前缀
}
#这是laravel部署nginx服务器配置的文件
location / {
try_files $uri $uri/ /index.php?$query_string;
}
配置完后需要重启nginx服务
然后应该就可以了
解析

二. 部署之后发布命令
安装(在laravel目录里面, 上面有个终端 ,在那里执行终端命令)

1. 安装组件:(针对服务器)
COMPOSER_MEMORY_LIMI-1 composer install
2. 创建 '.env':
cd .env.example .env
修改.env的配置, 主要是数据库配置
3. 发布DingoAPi配置
php artisan vendor:publish --provider="Dingo\Api\Provider\LaravelServiceProvider"
4. 发布JWT配置
php artisan vendor:publish --provider="Tymon\JWTAuth\Providers\LaravelServiceProvider"
5. 生成JWT TOKEN:
php artisan jwt:secret
6. 生成迁移文件
php artisan migrate
6. 生成权限迁移文件
php artisan vendor:publish --provider="Spatie\Permission\PermissionServiceProvider" --tag="migrations"
7. 发布权限相关配置
php artisan vendor:publish --provider="Spatie\Permission\PermissionServiceProvider" --tag="config"
8. 运行迁移同时填充数据
php artisan migrate --seed

本文介绍了在前后端分离的项目中,如何解决线上环境前端调用后端API接口的问题。通过在前端网站配置nginx代理,将abc.com的/api/请求转发到like.abc.com,实现跨域访问。同时提供了详细的Laravel项目上线部署步骤,包括环境配置、组件安装、数据库迁移、JWT和权限配置等。
925

被折叠的 条评论
为什么被折叠?



