如何在同一个域上托管laravel rest api和angular 5应用程序?

时间:2018-02-20 23:06:36

标签: php ajax laravel single-page-application angular5

我创建了一个有角度的5前端应用程序,它需要一个后端rest api来处理数据库,我用laravel创建了这个后端api,我在不同的端口上作为一个单独的域提供服务,但我需要托管它们都在同一个域上,因此angular控制路径,后端有单独的路径,例如www.mydomain.com/anything用于角度应用程序,www.mydomain.com / api / anything用于laravel后端。那么有没有办法做到这一点,如果有可能请你提一下或发布一个教程链接吗?

1 个答案:

答案 0 :(得分:4)

为实现这一目标,我建议使用像NGINX这样的网络服务器。

根路径应该为您的Angular应用程序提供服务,而/ api将代理传递给您的API。

如果您的API与角度应用程序的源文件和端口3000在同一服务器上运行,则NGINX服务器配置将如下所示:

server {
    listen 80 default_server;

    location / {
        root /path/to/angular/app;
    }

    location /api {
        proxy_pass http://localhost:3000;
    }
}

有很多关于NGINX反向代理的教程。这是一个例子:https://www.digitalocean.com/community/tutorials/understanding-nginx-http-proxying-load-balancing-buffering-and-caching

或者,您可以直接参考NGINX文档:http://nginx.org/en/docs/http/ngx_http_proxy_module.html