Nginx代理同域名前后端分离项目的完整步骤


Posted in Servers onMarch 31, 2021

前后端分离项目,前后端共用一个域名。通过域名后的 url 前缀来区别前后端项目。

以 vue + php 项目为例。直接上 server 模块的 nginx 配置。

server
 {
 listen 80;
 #listen [::]:80 default_server ipv6only=on;
 server_name demo.com; # 配置项目域名
 index index.html index.htm index.php;

 # 1.转给前端处理
 location /
 {
  # 前端打包后的静态目录
  alias /home/wwwroot/default/vue-demo/dist/;
 }

 # 2.转给后端处理
 location /api/ {
  try_files $uri $uri/ /index.php?$query_string;
 }

 # 3.最终php在这里转给fpm
 location ~ [^/]\.php(/|$)
 {
  # 后端项目目录
  root /home/wwwroot/default/demo/public/;
  #fastcgi_pass 127.0.0.1:9000;
  fastcgi_pass unix:/tmp/php-cgi.sock;
  fastcgi_index index.php;
  include fastcgi.conf;
  include pathinfo.conf;
 }

 # 4.处理后端的静态资源
 location /public/ {
  alias /home/wwwroot/default/demo/public/uploads/;
 }

 #error_page 404 /404.html;

 access_log /home/wwwlogs/access.log main;
}

简单解释

  • 当域名后存在 /api/ 前缀时,将转给后端处理;
  • 当域名后存在 /uploads/ 前缀时,访问后端的静态资源。
  • 由于 location 精准匹配的原则,除以上之外的访问都会被转到第一处 location 访问前端页面。

例如:

访问文章列表接口

GET https://demo.com/api/posts

访问上传的图片

GET https://demo.com/uploads/xxx.jpg

访问前端首页

GET https://demo.com/

访问文章页面

GET https://demo.com/posts

PS:alias 路径末尾一定要有 / 。

总结

到此这篇关于Nginx代理同域名前后端分离项目的文章就介绍到这了,更多相关Nginx代理同域名前后端分离项目内容请搜索三水点靠木以前的文章或继续浏览下面的相关文章希望大家以后多多支持三水点靠木!

Servers 相关文章推荐
Nginx的rewrite模块详解
Mar 31 Servers
nginx里的rewrite跳转的实现
Mar 31 Servers
Nginx工作原理和优化总结。
Apr 02 Servers
centos8安装nginx1.9.1的详细过程
Aug 02 Servers
图文详解Nginx版本平滑升级方案
Sep 15 Servers
详解Nginx 被动检查服务器的存活状态
Oct 16 Servers
Nginx+Tomcat负载均衡集群的实现示例
Oct 24 Servers
Linux下使用C语言代码搭建一个简单的HTTP服务器
Apr 13 Servers
永中文档在线转换预览基于nginx配置部署方案
Jun 10 Servers
Win Server2016远程桌面如何允许多用户同时登录
Jun 10 Servers
openEuler 搭建java开发环境的详细过程
Jun 10 Servers
彻底卸载VMware虚拟机的超详细步骤记录
Jul 15 Servers
Nginx+SpringBoot实现负载均衡的示例
win10安装配置nginx的过程
Filebeat 采集 Nginx 日志的方法
如何利用map实现Nginx允许多个域名跨域
Mar 31 #Servers
Nginx 过滤静态资源文件的访问日志的实现
Mar 31 #Servers
Nginx的反向代理实例详解
nginx反向代理时如何保持长连接
Mar 31 #Servers
You might like
用 php 编写的日历
2006/10/09 PHP
php5.2 Json不能正确处理中文、GB编码的解决方法
2014/03/28 PHP
php中json_encode处理gbk与gb2312中文乱码问题的解决方法
2014/07/10 PHP
一款简单实用的php操作mysql数据库类
2014/12/08 PHP
PHP生成及获取JSON文件的方法
2016/08/23 PHP
解决laravel id非自增 模型取回为0 的问题
2019/10/11 PHP
javascript编程起步(第一课)
2007/01/10 Javascript
实现连缀调用的map方法(prototype)
2009/08/05 Javascript
js onload事件不起作用示例分析
2013/10/09 Javascript
js中apply方法的使用详细解析
2013/11/04 Javascript
基于jquery实现下拉框美化特效
2016/02/02 Javascript
基于JavaScript实现智能右键菜单
2016/03/02 Javascript
基于Vue.js的表格分页组件
2016/05/22 Javascript
原生js轮播特效
2017/05/18 Javascript
老生常谈js中的MVC
2017/07/25 Javascript
JS实现点击拉拽轮播图pc端移动端适配
2018/09/05 Javascript
微信小程序外卖选购页实现切换分类与数量加减功能案例
2019/01/15 Javascript
[02:51]DOTA2战队出征照拍摄花絮 TI3明星化身时尚男模
2013/07/22 DOTA
使用python编写脚本获取手机当前应用apk的信息
2014/07/21 Python
python 判断网络连通的实现方法
2018/04/22 Python
python可视化实现KNN算法
2019/10/16 Python
解决django中form表单设置action后无法回到原页面的问题
2020/03/13 Python
微信端html5页面调用分享接口示例
2018/03/14 HTML / CSS
斯洛伐克家具和时尚装饰品购物网站:Butlers.sk
2019/09/08 全球购物
机械工程师求职自我评价
2013/09/23 职场文书
高三语文教学反思
2014/01/15 职场文书
房地产营销策划方案
2014/02/08 职场文书
党课知识竞赛主持词
2014/04/01 职场文书
共产党员公开承诺践诺书
2014/05/28 职场文书
八荣八耻的活动方案
2014/08/16 职场文书
学生党员批评与自我批评
2014/10/15 职场文书
经理聘任证明
2015/03/02 职场文书
入党积极分子培养人意见
2015/06/02 职场文书
怎样写观后感
2015/06/19 职场文书
Pytorch实现图像识别之数字识别(附详细注释)
2021/05/11 Python
为什么MySQL不建议使用SELECT *
2022/04/03 MySQL