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 相关文章推荐
Apache站点配置SSL强制跳转443
Mar 09 Servers
JVM上高性能数据格式库包Apache Arrow入门和架构详解(Gkatziouras)
May 26 Servers
Nginx源码编译安装过程记录
Nov 17 Servers
Nginx实现负载均衡的项目实践
Mar 18 Servers
Z-Order加速Hudi大规模数据集方案分析
Mar 31 Servers
基于Apache Hudi在Google云构建数据湖平台的思路详解
Apr 07 Servers
Windows Server 2019 配置远程控制以及管理方法
Apr 28 Servers
Win10 Anaconda安装python-pcl
Apr 29 Servers
聊聊配置 Nginx 访问与错误日志的问题
May 25 Servers
使用Apache Camel表达REST服务的方法
Jun 10 Servers
windows server 2016 域环境搭建的方法步骤(图文)
Jun 25 Servers
apache虚拟主机配置的三种方式(小结)
Jul 23 Servers
Nginx+SpringBoot实现负载均衡的示例
win10安装配置nginx的过程
Filebeat 采集 Nginx 日志的方法
如何利用map实现Nginx允许多个域名跨域
Mar 31 #Servers
Nginx 过滤静态资源文件的访问日志的实现
Mar 31 #Servers
Nginx的反向代理实例详解
nginx反向代理时如何保持长连接
Mar 31 #Servers
You might like
将数字格式的计算结果转为汉字格式
2006/10/09 PHP
mysql_num_rows VS COUNT 效率问题分析
2011/04/23 PHP
PHP跨时区(UTC时间)应用解决方案
2013/01/11 PHP
laravel 多图上传及图片的存储例子
2019/10/14 PHP
js类后台管理菜单类-MenuSwitch
2007/09/12 Javascript
20款超赞的jQuery插件 Web开发人员必备
2011/02/26 Javascript
jQuery 一个图片切换的插件
2011/10/09 Javascript
JavaScript高级程序设计(第3版)学习笔记3 js简单数据类型
2012/10/11 Javascript
js获取单选框或复选框值及操作
2012/12/18 Javascript
理解Javascript闭包
2013/11/01 Javascript
javascript写的异步加载js文件函数(支持数组传参)
2014/06/07 Javascript
jQuery扁平化风格下拉框美化插件FancySelect使用指南
2015/02/10 Javascript
NodeJS学习笔记之Module的简介
2017/03/24 NodeJs
基于hover的用法实例(推荐)
2017/07/04 Javascript
es6在react中的应用代码解析
2017/11/08 Javascript
详解Vue CLI 3.0脚手架如何mock数据
2018/11/23 Javascript
JS/HTML5游戏常用算法之碰撞检测 地图格子算法实例详解
2018/12/12 Javascript
如何在Vue中使用CleaveJS格式化你的输入内容
2018/12/14 Javascript
详解js获取video任意时间的画面截图
2019/04/17 Javascript
vue实现codemirror代码编辑器中的SQL代码格式化功能
2019/08/27 Javascript
JavaScript进阶(一)变量声明提升实例分析
2020/05/09 Javascript
利用Pandas读取文件路径或文件名称包含中文的csv文件方法
2018/07/04 Python
python GUI库图形界面开发之PyQt5时间控件QTimer详细使用方法与实例
2020/02/26 Python
Python运行异常管理解决方案
2020/03/09 Python
Python生成器实现简单"生产者消费者"模型代码实例
2020/03/27 Python
Anaconda+VSCode配置tensorflow开发环境的教程详解
2020/03/30 Python
Python库skimage绘制二值图像代码实例
2020/04/10 Python
HTML5图片预览实例分享
2014/06/04 HTML / CSS
Free People中国官网:波西米亚风格女装服饰
2016/08/30 全球购物
小学国庆节活动方案
2014/02/11 职场文书
酒店员工检讨书
2014/02/18 职场文书
公司合作协议书范本
2014/04/18 职场文书
股东出资证明书范例
2014/10/04 职场文书
2014年质检工作总结
2014/11/26 职场文书
Nginx域名转发使用场景代码实例
2021/03/31 Servers
Java的Object类的九种方法
2022/04/13 Java/Android