现在很多项目都是前后端分离,在前端与后端不是一个人开发,或者本身并非相同的项目。以前项目较小时,前端的资源文件和后台代码都是放在一块,进行 调试基本上都是启动后台服务就可以进行前端访问。但随着前端技术的成熟与庞大,更多的项目都有一套完整的开发工具与环境,而前端的项目往往都会有一套比较完整的体系,不可能将其拷贝到后台的模块中进行访问,这样调试起来非常不方便,同时会有很多依赖的环境无法满足。
现在可以通过nginx去实现前后端分离时,前端代码对后台的访问。在没有nginx时,我们可能会将前端代码部署到一个类似于apache的服务器中,通过配置端口访问,比如http://localhost:8080进行访问,而后台代码又要启动,此时不可能使用相同的端口,比如8082,那么在前台调用后台接口时,由于ip相同端口不同,则存在跨域问题。
通过nginx配置:
server{
listen 80;
server_name localhost;
location / {
root D:/file/front-proj;#前端静态页面路径
index index.html index.htm;#默认起始页
}
location /api { #后台接口
proxy_pass http://localhost:8081/;
}
}
这样我们在前端调地址变成了:localhost/xxx,调用后台的接口变成了localhost/api/xxx