前言
前端单独放了一个网站里(用的一级域名 => 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